当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

作者:精品下载站 日期:2024-12-14 12:12:54 浏览:16 分类:玩电脑

如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处


本指南介绍了在 Windows 计算机上更改 RDP 端口(远程桌面端口)的不同方法,例如 SCCM (ConfigMgr) CMPivot、PowerShell 和 Windows 注册表。

当您使用远程桌面客户端连接到计算机(Windows 客户端或 Windows Server)时,计算机上的远程桌面功能将通过指定端口 3389 侦听连接请求。 Windows 上的远程桌面端口(RDP 端口)3389 是黑客的热门目标。因此,更改 RDP 端口可能有意义。

更改 RDP 端口后,下次使用远程桌面连接连接到此计算机时,必须键入新端口。如果您使用防火墙,请确保将防火墙配置为允许连接到新端口号。

请注意,选择非标准 RDP 端口时不应使用端口 1-1023,因为这些端口是已知端口,但端口 49152-65535 是动态或私有端口。任何服务或应用程序均未使用的端口。例如,您可以将 RDP 端口从 3389 更改为 33091

  • 如何在 Windows 11 上关闭或禁用远程桌面
  • 如何使用组策略 (GPO) 启用远程桌面
  • 使用 Intune (MEM) 禁用远程桌面访问
  • 使用 SCCM 部署远程桌面客户端 |配置管理器

为什么要更改 RDP 端口号?

Microsoft 使用端口 3389 进行所有外部通信。黑客经常使用自动密码猜测技术通过 3389 侦听端口连接到远程计算机。此类攻击(如微软刚刚发现的攻击)被称为暴力攻击和密码喷射攻击。

毫无疑问,这种严重的安全缺陷会使您的远程计算机面临危险。许多管理员决定将 RDP 端口号从 3389 更改为任何其他可用端口来绕过此漏洞,这使得黑客更难找出侦听端口。

除了防御黑客之外,管理员还可以更改 RDP 端口号以绕过防火墙。出于安全考虑,某些系统的防火墙设置为分别阻止传入和传出端口 3389 的消息。这种方法的目的不是为了阻止远程访问,而是为了阻止黑客通过端口进入系统。更改 RDP 端口有助于降低端口扫描程序和 RDP 漏洞的风险。

使用 PowerShell 检查 RDP 端口号

在任何 Windows 计算机上,您可以通过运行以下 PowerShell 命令来检查 RDP 端口号。

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber"

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

我们看到给定计算机上的 RDP 端口号是 3389。

PortNumber   : 3389
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
               Server\WinStations\RDP-Tcp
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
               Server\WinStations
PSChildName  : RDP-Tcp
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

使用注册表更改 RDP 端口

您可以使用注册表更改计算机上远程桌面的侦听端口。请确保在进行任何更改之前备份注册表。

  • 启动注册表编辑器。 (在搜索框中键入 regedit。)
  • 导航到以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • 找到 PortNumber 注册表项,其默认值为 3389。

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

  • 右键单击端口号键并选择修改。在编辑 DWORD(32 位)值上,选择“十进制”并键入新的端口号,然后单击确定。关闭注册表编辑器,然后重新启动计算机。

在下面的屏幕截图中,我已将远程桌面端口从 3389 更改为 33091

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

要确认远程桌面端口号是否更改,请运行以下 PowerShell 命令。

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber"

在输出中,我们看到 RDP 端口号显示为 33091,这证实我们已使用注册表成功更改了远程桌面端口。

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

使用 PowerShell 更改 RDP 端口

更改远程桌面端口的最快方法之一是使用 PowerShell 脚本。您可以使用 PowerShell 脚本更改多台计算机上的 RDP 侦听端口号。

下面的 PowerShell 脚本由 Microsoft 提供,它将远程桌面端口设置为 3390。该脚本还添加防火墙规则以允许计算机上的 RDP 端口。

$portvalue = 3390

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue 

New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue 
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

要运行上述 PowerShell 脚本,请在计算机上以管理员身份启动 PowerShell 并运行该脚本。您还可以打开 Windows PowerShell ISE 并粘贴代码并在运行之前对其进行编辑。

您还可以使用 Microsoft Intune 或 Configuration Manager 在多台计算机上部署 RDP 端口更改 PowerShell 脚本。

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

为自定义 RDP 端口添加防火墙规则

将默认 RDP 端口更改为自定义端口后,您必须修改 Windows Defender 防火墙以允许新的自定义 RDP 端口。要添加唯一 RDP 端口的规则,请使用下面的 PowerShell 脚本。

New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue 
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue
Name                          : {d601232d-c37c-402e-88d7-8313cd2acefd}
DisplayName                   : RDPPORTLatest-TCP-In
Description                   : 
DisplayGroup                  : 
Group                         : 
Enabled                       : True
Profile                       : Public
Platform                      : {}
Direction                     : Inbound
Action                        : Allow
EdgeTraversalPolicy           : Block
LooseSourceMapping            : False
LocalOnlyMapping              : False
Owner                         : 
PrimaryStatus                 : OK
Status                        : The rule was parsed successfully from the store. (65536)
EnforcementStatus             : NotApplicable
PolicyStoreSource             : PersistentStore
PolicyStoreSourceType         : Local
RemoteDynamicKeywordAddresses : {}

Name                          : {de0e40f9-7420-4054-ae98-028a4c7f0abe}
DisplayName                   : RDPPORTLatest-UDP-In
Description                   : 
DisplayGroup                  : 
Group                         : 
Enabled                       : True
Profile                       : Public
Platform                      : {}
Direction                     : Inbound
Action                        : Allow
EdgeTraversalPolicy           : Block
LooseSourceMapping            : False
LocalOnlyMapping              : False
Owner                         : 
PrimaryStatus                 : OK
Status                        : The rule was parsed successfully from the store. (65536)
EnforcementStatus             : NotApplicable
PolicyStoreSource             : PersistentStore
PolicyStoreSourceType         : Local
RemoteDynamicKeywordAddresses : {}

用于检查 RDP 端口的 CMPivot 查询

您可以使用 CMPivot 快速查询注册表值。使用简单的 CMPivot 查询,您可以在 SCCM 中检查多台计算机上的 RDP 端口。

  • 启动 ConfigMgr 控制台并转到资产和合规性 > 概述 > 设备集合
  • 右键单击设备集合并选择启动 CMPivot
  • 运行以下 CMPivot 查询以检查设备集合中所有设备的 RDP 端口。
Registry('HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp') | where Property == 'PortNumber'

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

使用 SCCM 更改 RDP 端口

现在我们有了一个允许我们修改远程桌面端口号的PowerShell脚本,我们可以通过SCCM部署这个脚本。我们将使用 SCCM 脚本功能来完成此任务。

在 ConfigMgr 控制台中,转至 \Software Library\Overview\Scripts。创建新脚本并在脚本详细信息窗口中指定以下详细信息。

  1. 脚本名称:更改 RDP 端口
  2. 脚本描述:修改RDP端口
  3. 脚本语言:PowerShell
  4. 脚本超时秒:200秒

在脚本窗口中,粘贴以下 PowerShell 脚本,然后单击“下一步”并关闭创建脚本向导。

$portvalue = 3390

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue 

New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue 
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

在将 PowerShell 脚本部署到您的设备之前,您必须首先批准该脚本。右键单击“更改 RDP 端口”脚本并选择批准。如果批准/拒绝脚本呈灰色,请参阅有关如何解决 SCCM 脚本批准拒绝选项被禁用的问题的文章。

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

批准 PowerShell 脚本后,右键单击要运行该脚本的设备集合,然后选择运行脚本

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

选择修改 RDP 端口的 PowerShell 脚本,然后单击下一步。配置管理器现在在属于设备集合的所有设备上运行该脚本。设备必须在线才能使脚本运行。脚本执行完成后关闭运行脚本窗口。

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

运行 PowerShell 脚本后,您可以运行 CMPivot 查询来检查计算机上的 RDP 端口号。从 CMPivot 查询输出中,我们看到所有计算机的远程桌面侦听端口现已从 3389 更改为 3390

[玩转系统] 如何使用 SCCM 更改 RDP 端口 | PowerShell |登记处

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯