欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 查看 远程桌面服务禁用 是否禁用状态 AG chatgpt 有大用 有大大用

检查远程桌面服务 (RDP) 是否禁用的 Python 代码

在 Windows 系统中,可以通过以下几种方法检查远程桌面服务是否被禁用:

方法1:检查注册表项

python
import winreg def is_rdp_enabled():    try:        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Control\Terminal Server")        value, _ = winreg.QueryValueEx(key, "fDenyTSConnections")        return value == 0    except WindowsError:        return False if is_rdp_enabled():    print("远程桌面服务(RDP)已启用") else:    print("远程桌面服务(RDP)已禁用")

方法2:使用 WMI 查询服务状态   # OK 有大用

python
import wmi def check_rdp_service():    c = wmi.WMI()    services = c.Win32_Service(Name="TermService")        if services:        service = services[0]        print(f"服务状态: {service.State}")        print(f"启动模式: {service.StartMode}")        return service.State == "Running" and service.StartMode.lower() == "auto"    return False if check_rdp_service():    print("远程桌面服务正在运行且设置为自动启动") else:    print("远程桌面服务未运行或未设置为自动启动")

方法3:使用 PowerShell 命令

python
import subprocess def check_rdp_via_powershell():    cmd = "powershell Get-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server' -Name 'fDenyTSConnections'"    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)    return "fDenyTSConnections : 0" in result.stdout if check_rdp_via_powershell():    print("远程桌面服务已启用") else:    print("远程桌面服务已禁用")

注意事项

  1. 这些脚本需要管理员权限才能运行

  2. 方法1和方法3检查的是是否允许远程连接,而方法2检查的是TermService服务是否运行

  3. 在某些情况下,即使服务运行,防火墙设置也可能阻止RDP连接

您可以根据需要选择其中一种方法来检查远程桌面服务的状态。


普通分类: