我试过了,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 服务器。执行此操作的命令取决于您的防火墙和路由器,并且从脚本执行操作可能不切实际。