如何使用WinRM将多台计算机添加到受信任的主机列表中


82

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

我使用以下命令将计算机A添加到计算机B的受信任主机:

winrm set winrm/config/client ‘@{TrustedHosts="machineA"}’

如何将更多机器(例如机器C,机器D)添加到机器B的受信任主机列表?

Answers:


128

我更喜欢使用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

有没有一种方法可以将主机添加到列表?因为找不到附加的API。
2016年

11
您可以附加-Value“ machineB” -Concatenate
SxMT 16'Aug

@dhcgm该解决方案确实不是对于依赖于Kerberos进行身份验证的域控制服务器的工作。你能确认一下吗?因此,尽管添加了显式的受信任主机,但只要我对服务器具有管理员权限,我仍然可以使用不受信任的主机来访问服务器。我认为这仅适用于工作组计算机。谢谢。
objectNotFound

@objectNotFound在我的环境中,我仅在工作组计算机上使用了Powershell远程处理,因此无法确认您的论文。但是我听起来很合理。
hdev

63
winrm set winrm/config/client '@{TrustedHosts="machineA,machineB"}'

19
如果有人得到Error: Invalid use of command line ...答复,请尝试删除单引号
svarog

这对我来说不管用单引号还是不行。我Error: Invalid use of command不管。
Hylle

@svarog对我来说反之亦然。我必须添加单引号。在我有同样的错误之前Error: Invalid use of command
布鲁诺·比耶里

10

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

5

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

Install-Module psTrustedHosts -Force

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

Add-TrustedHost 'machineC','machineD'

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

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

'machineC','machineD' | Add-TrustedHost

@HerbM域名可以正常工作。带通配符的范围似乎仅适用于单个值,即,您可以使用逗号分隔的计算机列表,或者包含通配符的字符串,但不能使用逗号分隔的列表,列表中的值之一具有通配符。这看起来像是WinRM问题。它可以让您添加带有子网掩码的值,但是当您尝试连接到该范围内的计算机时,似乎无法将其解释为网络范围。
杰森·博伊德

2
显然,您必须使用穷人的“子网划分”(在八位字节边界上),而不是CIDR或MASK表示法:192.168.230。* NOT:192.168.224.0/19#或其他内容
HerbM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.