如果是在本地登陆执行的(包括vnc等工具),则不会断开,如果是在远程桌面(包括/admin)登录执行的,而且修改后的端口与之前的端口不一致,远程桌面就会断开,需要用新端口登陆。
bat脚本
@echo off&color 0D&MODE con: COLS=100 LINES=25
title 远程桌面端口修改程序(win2003专用)
for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber') do set/a a=%%a
:getport
set/p getport=当前远程桌面端口:%a%,请输入需设定远程桌面的端口号:
if "%getport%"=="" (Goto noset) else goto setport
:setport
for %%a in (ControlSet001 ControlSet002 CurrentControlSet) do for %%b in (Wds\rdpwd\Tds\tcp WinStations\RDP-Tcp) do reg add "HKLM\SYSTEM\%%a\Control\Terminal Server\%%b" /v PortNumber /t REG_DWORD /d %getport% /f
echo 远程桌面端口已设置为:%getport%,如果已启用防火墙,请将此端口添加进例外。
echo 按任意键系统将注销所有远程登陆会话,使配置立即生效;如果关闭此窗口,配置将在系统重启后生效......
pause>nul
logoff rdp-tcp
echo 配置已生效,按任意键退出!
pause>nul&exit
:noset
echo 输入值为空,端口未改变,按任意键退出!
pause>nul
顺便提一下,下面这个命令也有重启3389的功能,但是关键的是如果是在远程登陆中执行的,它将无法生效。。。
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f