如何通过PowerShell修改远程桌面RDP端口
通过powershell修改远程桌面(remote desktop)端口的脚本,不复杂,启动脚本后有两个选项: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\terminal server\winstations\rdp-tcp”下“portnumber”的键值为指定的端口,接下来重启remote desktop services服务,并将该端口对应的防火墙入站请求添加到防火墙例外中。
在恢复默认rdp端口的过程中,首先将之前添加的防火墙例外清理掉,然后将注册表中对应键值的端口改回3389,最后重启remote desktop services服务。
需要强调的是重启远程桌面服务的过程中远程桌面将会短时间中断,需要重新连接,并将该端口对应的防火墙入站请求添加到防火墙例外中,此处添加的仅仅是操作系统层面的防火墙例外,如果读者使用的是类似windows azure之类的虚拟化方案一定要对应的增加外部防火墙的例外,否则修改后的rdp端口将会无法从外部连接。
废话不多说,上代码:
clear
write-host
write-host 1、自定义远程桌面端口 -foregroundcolor 10
write-host 2、恢复系统默认的远程桌面端口 -foregroundcolor 11
write-host
write-host
write-host "请从上面的列表选择一个选项...[1-2]“
$opt=read-host
switch ($opt)
{
1 {
write-host
write-host 修改远程桌面(remote desktop)的默认端口... -foregroundcolor red
write-host
write-host 下来将会提示输入要指定的端口号,请参考端口范围输入一个指定的端口号(范围:1024~65535)
write-host 该脚本修改注册表“hklm:\system\currentcontrolset\control\terminal server\winstations\rdp-tcp”下“portnumber”的键值。
write-host
# 输入指定的端口号并修改rdp默认端口
$portnumber=read-host "现在请输入要指定的端口号(范围:1024~65535)"
$original=get-itemproperty -path 'hklm:\system\currentcontrolset\control\terminal server\winstations\rdp-tcp' -name 'portnumber'
write-host 当前rdp默认端口为$original.portnumber
$result=set-itemproperty -path 'hklm:\system\currentcontrolset\control\terminal server\winstations\rdp-tcp' -name 'portnumber' -value $portnumber
if($result.primarystatus -eq 'ok')
{
write-host 已经完成 rdp 端口的修改! -foregroundcolor green
}
else
{
write-host 修改rdp 端口失败! -foregroundcolor red
}
#重启远程桌面服务
write-host 正在重启 remote desktop services ... -foregroundcolor darkyellow
restart-service termservice -force
#允许自定义端口通过防火墙
write-host 添加防火墙策略,允许现有 rdp 端口 $portnumber 入站。
$result=new-netfirewallrule -displayname "allow custom rdp portnumber" -direction inbound -protocol tcp -localport $portnumber -action allow
if($result.primarystatus -eq 'ok')
{
write-host 已经完成 rdp 端口对应防火墙策略的添加! -foregroundcolor green
}
else
{
write-host 添加rdp 端口对应防火墙策略失败! -foregroundcolor red
}
write-host
write-host 完成 rdp 端口修改!
}
2 {
write-host
write-host 正在恢复系统默认端口...
set-itemproperty -path 'hklm:\system\currentcontrolset\control\terminal server\winstations\rdp-tcp' -name 'portnumber' -value 3389
write-host 正在重启 remote desktop services...
restart-service termservice -force
write-host 正在删除防火墙设置...
remove-netfirewallrule -displayname "allow custom rdp portnumber"
write-host 完成恢复!
}
}
修改rdp端口的执行效果如下所示:
恢复rdp默认端口的执行效果如下图所示:
read more: powershell自定义修改远程桌面rdp端口.
推荐阅读
-
通过软件修改Win2008默认远程桌面连接端口3389
-
linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙
-
如何修改服务器远程桌面的远程的3389端口
-
通过软件修改Win2003默认远程桌面连接端口3389
-
如何通过PowerShell修改远程桌面RDP端口
-
通过软件修改Win2008默认远程桌面连接端口3389
-
如何修改服务器远程桌面的远程的3389端口
-
linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙
-
如何通过PowerShell修改远程桌面RDP端口
-
通过软件修改Win2003默认远程桌面连接端口3389