如何通过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端口.
相关文章

电脑提示找不到libcef.dll无法继续执行代码怎么办? libcef.dll丢失修复
在使用电脑的过程中,你可能会突然遇到诸如“找不到libcef.dll”或者“由于缺少libcef.dll,程序无法启动”之类的恼人提示,下面我们就来看看详细解决办法2025-04-23
电脑提示由于找不到d3dx9_43.dll如何解决? d3dx9_43.dll文件丢失修复技
在使用Windows操作系统运行某些应用程序(尤其是游戏或图形密集型软件)时,用户可能会遇到“d3dx9_43.dll文件丢失”的错误提示,这一错误不仅影响程序的正常启动,还可能2025-04-23
在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何从根本上解决电脑2025-04-16
今天我来分享一下如何用USB线把台式电脑连接到手机的网络上,其实操作非常简单,只需要几步就搞定了,让我们一起来看看吧2025-04-15
分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿
分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我决定整理一下,给大家分享一下我的理解2025-04-03
你是否曾想过,为什么键盘上的空格键有时并不能满足我们的需求?其实,空格键输入的空格分为全角和半角两种2025-03-31
mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法
最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢?别担心,本文将详细介绍mss32.dll文件的作用和丢失原因2025-03-26
电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法
openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到过这个问题,但你知道该如何解决吗?详细请看下文介绍2025-03-26
电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技
电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解决方法,手把手教你如何搞定win32spl.dll丢失的问题,让你轻松恢复打印机连2025-03-26
电脑提示binkw32.dll缺失怎么办? 教你轻松解决binkw32.dll丢失问题修复
电脑上玩游戏时,突然弹出“计算机丢失binkw32.dll”的错误提示,是不是让你瞬间抓狂?别担心,今天就来手把手教你如何解决这个问题2025-03-26








最新评论