启用 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 而不是主机名)