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

      应朋友的要求写了一个经过PowerShell修改远程桌面(Remote Desktop)端口的脚本,不复杂,启动脚本后有两个选项:1.自定义远程桌面;2.回复远程桌面的默认端口3389windows

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

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

      在恢复默认RDP端口的过程当中,首先将以前添加的防火墙例外清理掉,而后将注册表中对应键值的端口改回3389,最后重启Remote Desktop Services服务。操作系统

      须要强调的是重启远程桌面服务的过程当中远程桌面将会短期中断,须要从新链接,并将该端口对应的防火墙入站请求添加到防火墙例外中,此处添加的仅仅是操做系统层面的防火墙例外,若是读者使用的是相似Windows Azure之类的虚拟化方案必定要对应的增长外部防火墙的例外,不然修改后的RDP端口将会没法从外部链接。3d

废话很少说,上代码:blog

Clear
Write-Host
Write-Host 一、自定义远程桌面端口 -ForegroundColor 10
Write-Host 二、恢复系统默认的远程桌面端口 -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端口的执行效果以下所示:get

image

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

 image

 

做者: 付海军
出处:http://fuhj02.blog.51cto.com
版权:本文版权归做者和51cto共有
转载:欢迎转载,为了保存做者的创做热情,请按要求【转载】,谢谢
要求:未经做者赞成,必须保留此段声明;必须在文章中给出原文链接且保证内容完整!不然必究法律责任!
我的网站: http://www.fuhaijun.com/it

相关文章
相关标签/搜索