找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3424|回复: 0

[安全] BAT修改3389端口,防止忘记添加端口导致无法远程

[复制链接]
Seven 发表于 2012-2-14 09:58:34 | 显示全部楼层 |阅读模式
以下是bat全文,保存为bat运行即可,十分方便

我喜欢在windows2003开防火墙,但是修改远程端口后经常忘记在防火墙添加相应的端口,有了这个代码之后就不怕了。
  1. @echo off

  2. rem 查找端口号
  3. for /f "skip=4 tokens=3 delims= " %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber') do (set value16=%%i)
  4. set value=%value16:~2%
  5. rem echo %value%
  6. setlocal EnableDelayedExpansion
  7. set "str=0123456789ABCDEF"
  8. for /l %%a in (0 1 15) do (
  9.    set -%%a=!str:~%%a,1!
  10.    set -!str:~%%a,1!=%%a
  11. )

  12. for /l %%a in (0 1 100) do (
  13. if not "!value:~%%a,1!"=="" (
  14. call set sun=%%-!value:~%%a,1!%% !sun!
  15. ))
  16. rem echo !sun!
  17. set /a nnn=1,num=0
  18. for %%a in (!sun!) do (
  19. rem set num0=!num!
  20. set /a num=%%a*nnn+num
  21. rem echo num = %%a*!nnn! + !num0! = !num!
  22. set /a nnn*=16
  23. )
  24. rem echo 当前远程桌面端口号为十六进制: %value16% 即 %value%
  25. echo 当前远程桌面端口号为十进制: !num!
  26. rem setlocal DisableDelayedExpansion


  27. rem 以下是系统默认
  28. goto xiugai
  29. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  30. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List" /v 3389:TCP /t REG_SZ /d 3389:TCP:*:Enabled:@xpsp2res.dll,-22009 /f

  31. :xiugai
  32. set PortNumber=
  33. set /p PortNumber=输入即将修改的十进制端口号(1024-65535):
  34. rem if "%PortNumber%"=="" exit
  35. if not defined PortNumber (set /a PortNumber=3389 & echo 未输入端口号,即将修改为默认值!PortNumber! & pause)
  36. echo %PortNumber%|findstr "^[0-9]*$" >nul || (echo 必须纯数字! & goto xiugai)
  37. if %PortNumber% lss 1024 (echo 端口号不能小于1024 & goto xiugai)
  38. if %PortNumber% gtr 65535 (echo 端口号不能大于65535 & goto xiugai)
  39. echo %PortNumber%

  40. rem 修改端口后开启
  41. rem 总开关
  42. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  43. rem 修改端口号,默认会直接修改十进制值,注意:范围在1024到65535,而且不能冲突,事实上,只修改第二处WinStations那一个也是可以的。

  44. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d %PortNumber% /f
  45. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d %PortNumber% /f
  46. @reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List /v !num!:TCP /f
  47. @reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List" /v %PortNumber%:TCP /t REG_SZ /d %PortNumber%:TCP:*:Enabled:@xpsp2res.dll,-22009 /f
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表