如何检测RDS(远程桌面服务)是否启用?

问题描述 投票:0回答:1

我正在寻找一种方法来检测Windows 10 / 11客户端上是否启用了RDS(远程桌面服务)。 google 查到的结果不行。

Path: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

Value: fDenyTSConnections

有什么想法吗?

c# detection remote-desktop
1个回答
1
投票

正如 @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;
© www.soinside.com 2019 - 2024. All rights reserved.