欢迎来到四川泊祎废旧物资回收有限公司官方网站,全川咨询服务热线:1388-0022-916
您的位置: 首页 > 回收百科 > 如何通过PowerShell修改远程桌面RDP端口

如何通过PowerShell修改远程桌面RDP端口

发布时间:2023-10-7 7:02:18   作者:佚名

通过PowerShell修改远程桌面(RemoteDesktop)端口的脚本,不复杂,启动脚本后有两个选项:1.自定义远程桌面;2.回复远程桌面的默认端口3389发出来给有用的兄弟。

由于这里向防火墙增加和删除例外是使用Windows8和Windows2012内置的Cmdlet:New-NetFirewallRule和Remove-NetFirewallRule。所以本脚本当前仅适用于Windows8和Windows2012以上版本的Windows操作系统,使用时请注意适用的范围。如果想兼容其他版本的windows系统,请将对应的cmdlet替换为netsh命令,具体的使用方法请参见以下帮助文档http://technet.microsoft.com/library/hh831755.aspx

在修改RDP端口的过程中,首先修改注册表“HKLM:\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp”下“PortNumber”的键值为指定的端口,接下来重启RemoteDesktopServices服务,并将该端口对应的防火墙入站请求添加到防火墙例外中。

在恢复默认RDP端口的过程中,首先将之前添加的防火墙例外清理掉,然后将注册表中对应键值的端口改回3389,最后重启RemoteDesktopServices服务。

需要强调的是重启远程桌面服务的过程中远程桌面将会短时间中断,需要重新连接,并将该端口对应的防火墙入站请求添加到防火墙例外中,此处添加的仅仅是操作系统层面的防火墙例外,如果读者使用的是类似WindowsAzure之类的虚拟化方案一定要对应的增加外部防火墙的例外,否则修改后的RDP端口将会无法从外部连接。

废话不多说,上代码:

Clear

Write-Host

Write-Host1、自定义远程桌面端口-ForegroundColor10

Write-Host2、恢复系统默认的远程桌面端口-ForegroundColor11

Write-Host

Write-Host

Write-Host"请从上面的列表选择一个选项...[1-2]“

$opt=Read-Host

Switch($opt)

{

1{

Write-Host

Write-Host修改远程桌面(RemoteDesktop)的默认端口...-ForegroundColorRed

Write-Host

Write-Host下来将会提示输入要指定的端口号,请参考端口范围输入一个指定的端口号(范围:1024~65535)

Write-Host该脚本修改注册表“HKLM:\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp”下“PortNumber”的键值。

Write-Host

#输入指定的端口号并修改RDP默认端口

$PortNumber=Read-Host"现在请输入要指定的端口号(范围:1024~65535)"

$original=Get-ItemProperty-Path'HKLM:\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp'-Name'portnumber'

Write-Host当前RDP默认端口为$original.PortNumber

$result=Set-ItemProperty-Path'HKLM:\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp'-Name'portnumber'-Value$PortNumber

if($result.PrimaryStatus-eq'OK')

{

Write-Host已经完成RDP端口的修改!-ForegroundColorGreen

}

else

{

Write-Host修改RDP端口失败!-ForegroundColorRed

}

#重启远程桌面服务

Write-Host正在重启RemoteDesktopServices...-ForegroundColorDarkYellow

Restart-Servicetermservice-Force

#允许自定义端口通过防火墙

Write-Host添加防火墙策略,允许现有RDP端口$PortNumber入站。

$result=New-NetFirewallRule-DisplayName"AllowCustomRDPPortNumber"-DirectionInbound-ProtocolTCP-LocalPort$PortNumber-ActionAllow

if($result.PrimaryStatus-eq'OK')

{

Write-Host已经完成RDP端口对应防火墙策略的添加!-ForegroundColorGreen

}

else

{

Write-Host添加RDP端口对应防火墙策略失败!-ForegroundColorRed

}

Write-Host

Write-Host完成RDP端口修改!

}

2{

Write-Host

Write-Host正在恢复系统默认端口...

Set-ItemProperty-Path'HKLM:\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp'-Name'portnumber'-Value3389

Write-Host正在重启RemoteDesktopServices...

Restart-Servicetermservice-Force

Write-Host正在删除防火墙设置...

Remove-NetFirewallRule-DisplayName"AllowCustomRDPPortNumber"

write-host完成恢复!

}

}

修改RDP端口的执行效果如下所示:

恢复RDP默认端口的执行效果如下图所示:

Readmore:PowerShell自定义修改远程桌面RDP端口.


下一篇:   上一篇:

成功案例