启用 PowerShell 远程处理

例子

必须首先在要远程连接的服务器上启用 PowerShell 远程处理。

Enable-PSRemoting -Force

此命令执行以下操作:

  • 运行 Set-WSManQuickConfig cmdlet,它执行以下任务:

  • 启动 WinRM 服务。

  • 将 WinRM 服务的启动类型设置为自动。

  • 创建一个侦听器以接受对任何 IP 地址的请求(如果尚不存在)。

  • 为 WS-Management 通信启用防火墙例外。

  • 注册Microsoft.PowerShell和 Microsoft.PowerShell.Workflow 会话配置(如果尚未注册)。

  • 在 64 位计算机上注册 Microsoft.PowerShell32 会话配置(如果尚未注册)。

  • 启用所有会话配置。

  • 更改所有会话配置的安全描述符以允许远程访问。

  • 重新启动 WinRM 服务以使前面的更改生效。

仅适用于非域环境

对于 AD 域中的服务器,PS 远程身份验证通过 Kerberos(“默认”)或 NTLM(“协商”)完成。如果您想允许远程连接到非域服务器,您有两种选择。

要么通过 HTTPS 设置 WSMan 通信(需要生成证书),要么启用基本身份验证,通过 base64 编码的线路发送您的凭据(这与纯文本基本相同,因此请注意这一点)。

无论哪种情况,您都必须将远程系统添加到您的 WSMan 受信任主机列表中。

启用基本身份验证

Set-Item WSMan:\localhost\Service\AllowUnencrypted $true

然后,你要连接的计算机上,你必须告诉它信任正在连接电脑

Set-Item WSMan:\localhost\Client\TrustedHosts '192.168.1.1,192.168.1.2'
Set-Item WSMan:\localhost\Client\TrustedHosts *.contoso.com
Set-Item WSMan:\localhost\Client\TrustedHosts *

重要提示:您必须告诉您的客户端信任以您想要连接的方式寻址的计算机(例如,如果您通过 IP 连接,则它必须信任 IP 而不是主机名)