与Windows Server不同,Windows 10默认情况下不启用PowerShellRemoting。PowerShellRemoting是用于连接和管理远程设备的安全管理协议(WSMan)。在默认配置下,PowerShell Remoting通过HTTP保护通信。它主要设计用于Active Directory(AD)环境,该环境使用设备和Kerberos之间的安全通道保护身份验证阶段。
您可以选择将PowerShell Remoting配置为使用HTTPS保护与工作组计算机(即未加入AD的设备)的连接。无论选择使用哪种传输协议,设备之间的通信始终在身份验证阶段之后进行加密。
HTTPS的配置很麻烦,因为它需要IT来获取,供应和管理证书。为解决此问题,Microsoft引入了在PowerShell Core(PowerShell版本6或更高版本)中使用SSH进行PowerShell远程处理的功能。PowerShell的较旧版本以及Windows默认安装的版本称为Windows PowerShell。
如果您正在管理加入AD域的设备,并且具有直接的网络连接性,要么是因为您连接到同一物理网络,要么是为“管理”方案配置了VPN,那么通过HTTP进行PowerShell远程处理应该可以正常工作。这可能是最简单,最好的选择。但是,如果您的目标是管理与管理网络断开连接的远程设备,无论它们是否已加入AD域,则SSH都比HTTPS易于设置和维护。
在本文中,我将向您展示如何使用默认传输协议HTTP在Windows 10中启用PowerShell Remoting。我们还将假定远程设备已加入您的AD域。在以后的文章中,我将向您展示如何在PowerShell 6中使用SSH设置PowerShell Remoting。
登录到要启用PowerShell Remoting的计算机,然后以管理员权限启动PowerShell会话:
PowerShell
1 |
Set-NetConnectionProfile -NetworkCategory Private |
PowerShell
1 |
Enable-PSRemoting -Force |
根据微软的网站,当您运行Enable-PSRemoting时,它执行以下任务:
就是这样!现在,您应该可以使用PowerShell Remoting从管理工作站连接到设备,前提是您物理上位于同一网络上,或者已为“管理”方案配置了VPN。
有关如何使用PowerShell Remoting连接到设备的更多信息,请查看Petri上的PowerShell Remoting基础。
运行Enable-PSRemoting将打开默认的Windows防火墙规则,称为Windows远程管理(HTTP-In)。它在端口5985上为域和专用网络连接配置文件打开入站HTTP访问。如果要打开用于公共网络连接配置文件的PowerShell Remoting,可以将-SkipNetworkProfileCheck参数添加到Enable-PSRemoting。
默认情况下,-SkipNetworkProfileCheck将Windows防火墙配置为允许来自同一本地子网中公共网络上的设备的远程连接。如果要允许来自任何位置的公用网络上的设备的连接,则需要使用Set-NetFirewallRule修改WINRM-HTTP-In-TCP防火墙规则,如下所示。
PowerShell
1 | Set-NetFirewallRule -Name \’WINRM-HTTP-In-TCP\’ -RemoteAddress Any |
如果您需要管理少量客户端设备,则可以为您的组织选择PowerShell Remoting。但是它更适合管理服务器,因为它们是静态的,始终可用,并且通常直接连接到您的管理网络和设备。
相反,客户端设备并不总是可用的,它们可以从不同的网络和不同类型的网络连接进行连接。专为管理端点而设计的服务(例如Microsoft Intune和Microsoft Endpoint Configuration Manager)使设备可以在联机时以及无论其网络位置如何进行连接。Microsoft Endpoint Manager有助于确保始终根据公司策略配置设备,而不必等待工程师通过PowerShell Remoting连接。
下载最新版Windows 11 Pro ISO文件:点击进入 持续更新原装纯净版Win11