要在远程计算机上的计算机上运行powershell命令,我们必须将远程计算机添加到主机的受信任主机列表中。
我使用以下命令将计算机A添加到计算机B的受信任主机:
winrm set winrm/config/client ‘@{TrustedHosts="machineA"}’
如何将更多机器(例如机器C,机器D)添加到机器B的受信任主机列表?
Answers:
我更喜欢使用PSDrive WSMan:\
。
获取可信主机
Get-Item WSMan:\localhost\Client\TrustedHosts
设置TrustedHosts
提供一个逗号分隔的单个计算机名字符串
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineA,machineB'
或(危险)通配符
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'
追加到列表中,-Concatenate
可以使用参数
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineC' -Concatenate
LoïcMICHEL提出的建议答案盲目地将新值写入TrustedHosts条目。
我相信,更好的方法是先查询TrustedHosts。
正如Jeffery Hicks在2010年发布的一样,首先查询TrustedHosts条目:
PS C:\> $current=(get-item WSMan:\localhost\Client\TrustedHosts).value
PS C:\> $current+=",testdsk23,alpha123"
PS C:\> set-item WSMan:\localhost\Client\TrustedHosts –value $current
我创建了一个模块psTrustedHosts,使与受信任的主机的处理稍微容易一些。你可以找到回购这里GitHub上。它提供了使与信任主机方便工作四个功能:Add-TrustedHost
,Clear-TrustedHost
,Get-TrustedHost
,和Remove-TrustedHost
。您可以使用以下命令从PowerShell库中安装模块:
Install-Module psTrustedHosts -Force
在您的示例中,如果要附加主机“ machineC”和“ machineD”,则只需使用以下命令:
Add-TrustedHost 'machineC','machineD'
需要明确的是,这会将主机“ machineC”和“ machineD”添加到已存在的任何主机中,不会覆盖现有主机。
该Add-TrustedHost
命令也支持管道处理(命令也支持Remove-TrustedHost
),因此您还可以执行以下操作:
'machineC','machineD' | Add-TrustedHost