启用 PowerShell 远程处理

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

Enable-PSRemoting -Force

此命令执行以下操作:

  • 运行 Set-WSManQuickConfig cmdlet,该 cmdlet 执行以下任务:
  • 启动 WinRM 服务。
  • 将 WinRM 服务上的启动类型设置为自动
  • 创建一个侦听器以接受任何 IP 地址上的请求(如果尚不存在)。
  • 为 WS-Management 通信启用防火墙例外。
  • 注册 Microsoft.PowerShell 和 Microsoft.PowerShell.Workflow 会话配置(如果它们尚未注册)。
  • 在 64 位计算机上注册 Microsoft.PowerShell32 会话配置(如果尚未注册)。
  • 启用所有会话配置。
  • 更改所有会话配置的安全描述符以允许远程访问。
  • 重新启动 WinRM 服务以使前面的更改生效。

仅适用于非域环境

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

要么通过 HTTPS 设置 WSMan 通信(需要证书生成),要么启用基本身份验证,通过 wire 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 而不是主机名)