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

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

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

答案1

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d <newportnumber>

需要注意以下几点:

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

相关内容