检查Windows机器是否可以作为RDP连接中的主机

Check if Windows machine can act as a host in RDP connection

本文关键字:连接 RDP 主机 机器 Windows 是否 检查      更新时间:2023-10-16

我正在写一个程序,我想确保它只运行在Windows机器上,可以作为RDP连接的主机。例如,一些Windows版本不能做这样的事情-例如win7 basic, win7 home, win8。
我可以检查Windows版本并将其与rdp主机兼容的版本列表进行比较,但我想知道是否有更常见的方法来检查此功能。也许是一些WinAPI方法或一个特殊的注册表项。有什么建议吗?

据我所知,MSDN远程桌面服务管理功能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)

就像David Heffernan建议的那样,版本检查是硬编码的。