Jak dodać więcej niż jedną maszynę do listy zaufanych hostów za pomocą winrm

82

Aby uruchomić polecenia PowerShell na maszynie z komputera zdalnego, musimy dodać komputer zdalny do listy zaufanych hostów komputera hosta.

Dodaję komputer A do zaufanych hostów komputera B za pomocą następującego polecenia:

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

Jak dodać więcej komputerów, powiedz komputer C, komputer D do listy zaufanych hostów komputera B?

cmm użytkownik
źródło

Odpowiedzi:

130

Wolę pracować z PSDrive WSMan:\.

Uzyskaj TrustedHosts

Get-Item WSMan:\localhost\Client\TrustedHosts

Ustaw TrustedHosts

podaj pojedynczy ciąg z nazwami komputerów rozdzielonymi przecinkami

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineA,machineB'

lub (niebezpieczny) symbol wieloznaczny

Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'

aby dołączyć do listy, -Concatenatemożna użyć parametru

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineC' -Concatenate
hdev
źródło
czy istnieje sposób na dodanie hostów do listy? ponieważ nie mogłem znaleźć żadnego API do dopisywania.
Śnieg
11
Możesz dołączyć do -Value "machineB" -Concatenate
SxMT
@dhcgm To rozwiązanie NIE działa w przypadku serwerów kontrolowanych przez domenę, które korzystają z protokołu Kerberos do uwierzytelniania. Czy możesz potwierdzić ? Tak więc, pomimo dodania jawnych zaufanych hostów, nadal mogę używać niezaufanych hostów do uzyskiwania dostępu do serwera, o ile mam uprawnienia administratora na serwerze. Myślę, że to działa tylko w przypadku komputerów grupy roboczej. Dzięki.
objectNotFound
@objectNotFound W swoim środowisku użyłem Powershell Remoting tylko na komputerach grupy roboczej, więc nie mogę potwierdzić Twojej tezy. Ale brzmi to wiarygodnie.
hdev
63
winrm set winrm/config/client '@{TrustedHosts="machineA,machineB"}'
Loïc MICHEL
źródło
19
jeśli ktoś otrzyma Error: Invalid use of command line ...odpowiedź, spróbuj usunąć pojedyncze cudzysłowy
svarog
To po prostu nie działa dla mnie, pojedyncze cudzysłowy czy nie. Rozumiem Error: Invalid use of command.
Hylle
@svarog dla mnie to było vis-versa. Musiałem dodać pojedyncze cudzysłowy. Wcześniej miałem ten sam błąd Error: Invalid use of command.
Bruno Bieri
12

Sugerowana odpowiedź Loïc MICHEL ślepo wpisuje nową wartość do wpisu TrustedHosts.
Uważam, że lepszym sposobem byłoby najpierw wyszukanie TrustedHosts.
Jak opublikował Jeffery Hicks w 2010 roku , najpierw wyszukaj wpis 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
Altered-Ego
źródło
5

Stworzyłem moduł, aby trochę ułatwić sobie radzenie z zaufanymi hostami, psTrustedHosts . Możesz znaleźć repozytorium tutaj na GitHub. Zapewnia on cztery funkcje, które czynią pracę z zaufanych hostów proste: Add-TrustedHost, Clear-TrustedHost, Get-TrustedHost, i Remove-TrustedHost. Możesz zainstalować moduł z Galerii PowerShell za pomocą następującego polecenia:

Install-Module psTrustedHosts -Force

W Twoim przykładzie, jeśli chcesz dodać hosty „machineC” i „machineD”, po prostu użyj następującego polecenia:

Add-TrustedHost 'machineC','machineD'

Żeby było jasne, dodaje to hosty „machineC” i „machineD” do wszystkich już istniejących hostów, ale nie zastępuje istniejących hostów.

Add-TrustedHostPrzetwarzanie obsługuje polecenia rurociąg, jak również (tak robi Remove-TrustedHostkomenda), więc można również wykonać następujące czynności:

'machineC','machineD' | Add-TrustedHost
Jason Boyd
źródło
Nazwy domen @HerbM działają poprawnie. Zakresy z symbolami wieloznacznymi wydają się działać tylko dla pojedynczej wartości, tj. Możesz mieć listę maszyn oddzieloną przecinkami lub ciąg znaków zawierający symbole wieloznaczne, ale nie listę rozdzieloną przecinkami, w której jedna z wartości na liście ma symbol wieloznaczny. To wygląda na problem z WinRM. To będzie pozwalają dodać wartość z maską podsieci, ale nie wydaje się, aby zinterpretować go jako zakres sieci przy próbie podłączenia do maszyny w zakresie tak, że nie wydaje się do pracy.
Jason Boyd
2
I najwyraźniej musisz użyć
``