• 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:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-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:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”下“PortNumber”的键值。
                Write-Host
                # 输入指定的端口号并修改RDP默认端口
                $PortNumber=Read-Host "现在请输入要指定的端口号(范围:1024~65535)"
                $original=Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -Name 'portnumber'
                Write-Host 当前RDP默认端口为$original.PortNumber
                $result=Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-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:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-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端口的执行效果如下所示:

    image

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

     image

    作者: 付海军
    出处:http://fuhj02.cnblogs.com
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接且保证内容完整!否则必究法律责任!
    个人网站: http://www.fuhaijun.com/

  • 相关阅读:
    grub
    init
    内核的ramdisk
    kernel信息及其相关命令
    mvc和mvvm模式
    vue从零开始(一)
    echarts自动播放图形
    echarts自定义悬浮框的显示
    typescript入门
    echarts的最外层配置项
  • 原文地址:https://www.cnblogs.com/fuhj02/p/3348911.html
Copyright © 2020-2023  润新知