我正在寻找一种方法来检测Windows 10 / 11客户端上是否启用了RDS(远程桌面服务)。 google 查到的结果不行。
Path: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server
Value: fDenyTSConnections
有什么想法吗?
正如 @Uwe Keim 评论的那样,您可以使用 Microsoft 的 ServiceController 包检查远程桌面服务是否正在运行:https://www.nuget.org/packages/System.ServiceProcess.ServiceController/7.0.0?_src=template
远程桌面服务的“服务名称”是 TermService,“显示名称”是远程桌面服务。检查这些属性,然后检查服务是否正在运行。
using System.Linq;
using System.ServiceProcess;
bool IsRemoteDesktopServiceRunning() {
ServiceController[] serviceControllers = ServiceController.GetServices();
return serviceControllers.FirstOrDefault((serviceController) => {
if (serviceController.ServiceName != "TermService")
return false;
if (serviceController.DisplayName != "Remote Desktop Services")
return false;
if (serviceController.Status != ServiceControllerStatus.Running)
return false;
return true;
}) != null;
}
Console.WriteLine("IsRemoteDesktopServiceRunning: " + IsRemoteDesktopServiceRunning());
或者,如果您想实际检查它是否刚刚启用,请检查 StartType 属性是否为
ServiceStartMode.Disabled
:
if (serviceController.StartType == ServiceStartMode.Disabled)
return false;