Как добавить более одной машины в список доверенных хостов с помощью WinRM

82

Чтобы запускать команды PowerShell на машине с удаленной машины, мы должны добавить удаленную машину в список доверенных хостов хост-машины.

Я добавляю машину A к доверенным узлам машины B, используя следующую команду:

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

Как добавить больше машин, скажем, машины C, машины D в список доверенных хостов машины B?

cmm пользователь
источник

Ответы:

131

Я предпочитаю работать с PSDrive WSMan:\.

Получите TrustedHosts

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
hdev
источник
есть ли способ добавить хосты в список? потому что я не смог найти API для добавления.
Snow
11
Вы можете добавить -Value "machineB" -Concatenate
SxMT
@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.
Бруно Бьери
12

Предложенный ответ Лоик МИШЕЛЬ слепо записывает новое значение в запись TrustedHosts.
Я считаю, что лучше сначала запросить TrustedHosts.
Как написал Джеффри Хикс в 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-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
Джейсон Бойд
источник
Доменные имена @HerbM работают нормально. Диапазоны с подстановочными знаками, похоже, работают только для одного значения, т.е. у вас может быть список машин, разделенных запятыми, или строка, содержащая подстановочные знаки, но не список, разделенный запятыми, где одно из значений в списке имеет подстановочный знак. Это похоже на проблему с WinRM. Это будет препятствовать вам добавить значение с маской подсети , но это , кажется, не интерпретировать его как диапазон сети при попытке подключиться к машине в диапазоне , так что не похоже на работу.
Джейсон Бойд
2
И, очевидно, вам нужно использовать «подсети» бедняков (по границам октетов), а не нотацию CIDR или MASK: 192.168.230. * НЕ: 192.168.224.0/19 # или что-то еще
HerbM