内容全是ai填写的 很好用,可以自动添加防火墙规则,和自动重启远程桌面服务,修改后立刻生效,无需重启
需要用管理员模式打开
@echo off
setlocalecho.
echo =========================================
echo 远程桌面端口修改脚本 - 优化版
echo =========================================
echo.:INPUT_PORT
set /p new_port="请输入新的远程桌面端口号 (例如: 33890): "
echo.rem 检查输入的端口号是否为数字
echo %new_port%| findstr /r "^[0-9][0-9]*$" >nul
if %errorlevel% neq 0 (
echo 错误: 输入的不是有效的端口号,请重新输入。
echo.
goto INPUT_PORT
)rem 检查端口号范围 (1024-65535)
if %new_port% LSS 1024 (
echo 错误: 端口号必须大于1024。请重新输入。
echo.
goto INPUT_PORT
)
if %new_port% GTR 65535 (
echo 错误: 端口号必须小于65535。请重新输入。
echo.
goto INPUT_PORT
)echo.
echo 正在修改远程桌面端口为: %new_port%
echo.rem 修改注册表中的端口号
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d %new_port% /fif %errorlevel% neq 0 (
echo 错误: 修改注册表失败,请确保以管理员身份运行此脚本。
pause
exit /b 1
)echo 注册表修改成功。
echo.rem 检查Windows防火墙服务状态
sc query MpsSvc | find "STATE" | find "RUNNING" >nul
if %errorlevel% == 0 (
echo 检测到Windows防火墙服务已启动,正在配置防火墙规则...
rem 自动配置Windows防火墙
netsh advfirewall firewall delete rule name="RDP_New_Port" >nul
netsh advfirewall firewall add rule name="RDP_New_Port" dir=in action=allow protocol=TCP localport=%new_port%
echo 防火墙规则已更新。
) else (
echo 检测到Windows防火墙服务未运行,跳过防火墙配置步骤。
)
echo.rem 重启远程桌面服务
echo 正在重启远程桌面服务...
net stop TermService
net start TermServiceif %errorlevel% neq 0 (
echo 警告: 重启远程桌面服务失败。可能需要手动重启或检查权限。
pause
exit /b 1
)echo.
echo 远程桌面端口修改完成!
echo.
echo 新的远程桌面端口是: %new_port%
echo.
pause
exit /b 0