我正在編寫一個程序,並且我想確保它只能在可充當RDP連接主機的Windows機器上運行。例如,一些Windows版本不能做這樣的事情 - 例如win7基本,win7主頁,win8。
我可以檢查Windows版本並將其與RDP主機兼容版本列表進行比較,但我不知道是否有更常用的方法來檢查此功能。也許一些WinAPI方法或特殊的註冊表項。 有什麼建議嗎?檢查Windows機器是否可以充當RDP連接的主機
回答
像David Heffernan建議的版本檢查是硬編碼的。
據我瞭解MSDN Remote Desktop Services Administration功能NetServerGetInfo應該給你你想要的信息。
LPSERVER_INFO_101 pSI = NULL;
if(NetServerGetInfo(NULL, 101, (LPBYTE*)&pSI) == NErr_Success) {
const bool bIsTerminalServer = pSI->sv101_type & SV_TYPE_TERMINALSERVER;
NetApiBufferFree(pSI);
}
其他新聞組帖子建議檢查服務TermService
運行(您可以使用QueryServiceStatusEx
爲)。
不錯,但似乎這種方法只適用於特殊配置的服務器,不是嗎?我可以通過RDP連接到使用Win8.1 Pro的工作計算機,但bIsTerminalServer == false。 –
@nnatarr我更新了我的答案。在我的Windows 7上,服務沒有運行(遠程桌面被禁用),當我啓用遠程桌面服務啓動時。但是當我再次禁用遠程桌面時,服務仍在運行。也許它仍然有幫助。 –
我需要知道Windows版本是否支持RDP主機。所以,我想,我會遵循David Heffernan的建議。謝謝你的幫助! –
- 1. 如何檢查/查詢ec2機器的活動rdp連接?
- 2. 如何檢查主機是否可達?
- 3. 檢查主機是否接受https連接
- 4. 如何檢查手機是否連接?
- 5. 確定遠程機器連接是否斷開(RDP或RDCMan)
- 6. 我可以檢測主機是否是虛擬機?
- 7. 有沒有辦法檢查RDP連接是否可能?
- 8. 是否可以使用WebRTC連接到特定的主機?
- 9. 連接從Windows主機
- 10. 可以的Acunetix連接本地主機
- 11. 檢查mysql連接到遠程主機
- 12. 在Windows中訪問虛擬主機Linux主機像RDP
- 13. 檢查主機是否可以在特定的網絡接口上訪問
- 14. 檢測到機器是否連接/可用?
- 15. 檢查用戶是否連接到機器人
- 16. Rails檢查請求主機是否與本地主機相同
- 17. 如何獲取連接的Windows RDP用戶的IP或主機名?
- 18. 是否可以限制遠程機器連接到NamedPipeServerStream?
- 19. SFTP:如何知道我是否連接到unix或windows主機?
- 20. 檢查是否可以從C#獲得3270連接到大型機?
- 21. 連接到虛擬機從Windows機器
- 22. 是否可以訪問Windows中的主機保護區?
- 23. Windows Phone - 是否可以更改手機上的主題顏色?
- 24. 如何檢查網站是否可以搜索機器人
- 25. 檢查用戶機器是否可以訪問Facebook
- 26. 檢測RDP連接
- 27. 是否有可能劫持遠程主機上的TCP連接?
- 28. 當連接到遠程主機時,mysql是否正常緩慢?
- 29. 如何檢查瘦主機在Windows機器上?
- 30. 如何檢查當前主機名是否與鏈接點擊的主機名匹配
是否想知道Windows版本是否支持此操作,或者RDP服務是否正在偵聽連接? –
@DavidHeffernan第一個。 –
我認爲你最好的選擇是硬編碼版本檢查 –