Как автоматически включить службу удаленного рабочего стола
Нынешний код не включает службу удаленного рабочего стола код:
import subprocess
# включение удаленного рабочего стола
subprocess.call("reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f", shell=True)
# перезапуск службы удаленного рабочего стола
subprocess.call("net stop TermService", shell=True)
subprocess.call("net start TermService", shell=True)
как можно это исправить? может быть нужно использовать другую библиотеку?
Ответы (1 шт):
Автор решения: AnnaBazueva
→ Ссылка
Использование winreg: это более безопасный и надежный способ работы с реестром в Windows,
чем использование командной строки.
Попробуйте так:
import subprocess
import winreg
def enable_remote_desktop():
try:
# Включение удаленного рабочего стола
reg_key = winreg.OpenKey(
winreg.HKEY_LOCAL_MACHINE,
r"SYSTEM\CurrentControlSet\Control\Terminal Server",
0, winreg.KEY_SET_VALUE)
winreg.SetValueEx(reg_key, "fDenyTSConnections", 0, winreg.REG_DWORD, 0)
winreg.CloseKey(reg_key)
# Перезапуск службы удаленного рабочего стола
subprocess.call("net stop TermService", shell=True)
subprocess.call("net start TermService", shell=True)
print("Удаленный рабочий стол включен успешно.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
enable_remote_desktop()
И помните, что запускать скрипт надо с правами администратора,
иначе изменения в реестре не будут применены.