From 275af9eae9cb911f1943713db34d5dad37e3914e Mon Sep 17 00:00:00 2001 From: bin456789 Date: Mon, 14 Oct 2024 22:01:32 +0800 Subject: [PATCH] =?UTF-8?q?windows:=20=E4=BF=AE=E5=A4=8D=E6=9E=81=E7=AB=AF?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E6=97=A0=E6=B3=95=E9=87=8D=E5=90=AF?= =?UTF-8?q?=20rdp=20=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- windows-change-rdp-port.bat | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/windows-change-rdp-port.bat b/windows-change-rdp-port.bat index 6a097ea..102f824 100644 --- a/windows-change-rdp-port.bat +++ b/windows-change-rdp-port.bat @@ -18,16 +18,6 @@ rem v2.33|Action=Allow|Active=TRUE|Dir=In|Protocol=17|LPort=3389|App=%SystemRoot rem 设置端口 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d %RdpPort% /f -rem 重启服务 -rem 可以用 sc 或者 net -rem UmRdpService 依赖 TermService -rem sc stop 不能处理依赖关系,因此 sc stop TermService 前需要 sc stop UmRdpService -rem net stop 可以处理依赖关系 -rem sc stop 是异步的,rem net stop 不是异步,但有 timeout 时间 -rem TermService 运行后,UmRdpService 会自动运行 -net stop TermService /y -net start TermService - rem 设置防火墙 rem 各个版本的防火墙自带的 rdp 规则略有不同 rem 全部版本都有: program=%SystemRoot%\system32\svchost.exe service=TermService @@ -43,5 +33,25 @@ for %%a in (TCP, UDP) do ( localport=%RdpPort% ) -rem 删除此脚本 +rem 家庭版没有 rdp 服务 +sc query TermService +if %errorlevel% == 1060 goto :del + +rem 重启服务 可以用 sc 或者 net +rem UmRdpService 依赖 TermService +rem sc stop 不能处理依赖关系,因此 sc stop TermService 前需要 sc stop UmRdpService +rem net stop 可以处理依赖关系 +rem sc stop 是异步的,rem net stop 不是异步,但有 timeout 时间 +rem TermService 运行后,UmRdpService 会自动运行 + +rem 如果刚好系统在启动 rdp 服务,则会失败,因此要用 goto 循环 +rem The Remote Desktop Services service could not be stopped. + +:restartRDP +net stop TermService /y && net start TermService || ( + timeout 5 + goto :restartRDP +) + +:del del "%~f0"