如何使用winrm将多台计算机添加到可信主机列表中

cmm*_*ser 68 windows powershell hosts winrm

要从远程计算机在计算机上运行powershell命令,我们必须将远程计算机添加到主机的可信主机列表中.

我使用以下命令将机器A添加到机器B的可信主机:

winrm set winrm/config/client ‘@{TrustedHosts="machineA"}’
Run Code Online (Sandbox Code Playgroud)

如何添加更多机器说机器C,机器D到机器B的可信主机列表?

dhc*_*cgn 100

我更喜欢与PSDrive合作WSMan:\.

获取TrustedHosts

Get-Item WSMan:\localhost\Client\TrustedHosts
Run Code Online (Sandbox Code Playgroud)

设置TrustedHosts

提供单个逗号分隔的计算机名称字符串

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineA,machineB'
Run Code Online (Sandbox Code Playgroud)

或者(危险的)外卡

Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'
Run Code Online (Sandbox Code Playgroud)

要附加到列表,-Concatenate可以使用该参数

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineC' -Concatenate
Run Code Online (Sandbox Code Playgroud)

  • 你可以附加-Value"machineB"-Concatenate (10认同)

Loï*_*HEL 61

winrm set winrm/config/client '@{TrustedHosts="machineA,machineB"}'
Run Code Online (Sandbox Code Playgroud)

  • 如果有人得到"错误:无效使用命令行..."响应,请尝试删除单引号 (14认同)
  • 这适用于IP地址吗? (3认同)

小智 8

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
Run Code Online (Sandbox Code Playgroud)


Jas*_*oyd 6

我创建了一个模块psTrustedHosts使处理受信任的主机更容易一些。你可以找到回购这里GitHub上。它提供了使与信任主机方便工作四个功能:Add-TrustedHostClear-TrustedHostGet-TrustedHost,和Remove-TrustedHost。您可以使用以下命令从 PowerShell Gallery 安装模块:

Install-Module psTrustedHosts -Force
Run Code Online (Sandbox Code Playgroud)

在您的示例中,如果您想附加主机“machineC”和“machineD”,您只需使用以下命令:

Add-TrustedHost 'machineC','machineD'
Run Code Online (Sandbox Code Playgroud)

需要明确的是,这会将主机 'machineC' 和 'machineD' 添加到任何已经存在的主机中,它不会覆盖现有的主机。

Add-TrustedHost命令也支持管道处理(Remove-TrustedHost命令也是如此),因此您还可以执行以下操作:

'machineC','machineD' | Add-TrustedHost
Run Code Online (Sandbox Code Playgroud)

  • 显然你必须使用穷人的“子网划分”(在八位字节边界上)而不是 CIDR 或 MASK 表示法:192.168.230.* NOT:192.168.224.0/19 # 或其他 (2认同)