如何使用 .bat 文件更改远程桌面的端口号?

Ngu*_*hoa 2 remote-desktop windows-registry batch-file cmd.exe windows-10

我试过了,reg add但它一直说invalid syntax。有谁知道如何使用.bat文件编辑注册表?

CBH*_*ing 5

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d <newportnumber>
Run Code Online (Sandbox Code Playgroud)

需要注意的几点:

  • 如何更改远程桌面的侦听端口错误地提供了路径。它将值名称指定为键的一部分。
  • 键路径包含一个空格。因此,键名需要被引用(或以其他方式转义)。如果不这样做,将导致reg.exe将其Server\WinStations\RDP-Tcp视为另一个参数,而没有必需的参数标志,这可能是导致您出错的原因。
  • 即使该值已存在,也必须指定REG_DWORD为类型,否则将被覆盖为REG_SZ (string)
  • reg.exe工具似乎默认使用十六进制,而不是十进制。我不确定,如果您要指定 的端口2000,它是否会将其视为十进制20000x2000(十进制 8192)。如果您在数字前加上0x,它可能只使用十六进制,但您应该进行试验。
  • 非管理员不可写入此注册表项。您将需要运行提升的脚本,除非您更改密钥的权限。
  • 更改端口后,您将需要重新启动终端服务服务以及可能的一些相关服务。
    • 用于此的命令行是sc stop <servicename> && sc start <servicename>.
    • 更简单的方法可能只是重新启动,即shutdown /g.
      • /g在重新引导装置并回到当前用户和潜在一些当前方案; 使用/r,而不是一个简单的重新启动。
      • 默认情况下,shutdown在机器关闭/重新启动之前为您提供 30 秒,如果任何程序拒绝关闭(可能是因为未保存的文件),也不会重新启动。您可以使用该/t <seconds>参数告诉它在其他几秒钟后重新启动,并且/f即使程序不想退出,您也可以使用它来强制它重新启动。使用/t大于 0 的任何秒数也意味着/f
  • 更改 RDP 端口后,您可能需要更新防火墙和/或端口转发规则,否则将无法访问 RDP 服务器。执行此操作的命令取决于您的防火墙和路由器,从脚本执行此操作可能不切实际。