必须首先在要远程连接的服务器上启用 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 而不是主机名)