Cómo agregar más de una máquina a la lista de hosts confiables usando winrm

82

Para ejecutar comandos de PowerShell en una máquina desde una máquina remota, tenemos que agregar la máquina remota a la lista de hosts de confianza de la máquina host.

Estoy agregando la máquina A a los hosts de confianza de la máquina B usando el siguiente comando:

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

¿Cómo agregar más máquinas, digamos máquina C, máquina D, a la lista de hosts confiables de la máquina B?

usuario de cmm
fuente

Respuestas:

128

Prefiero trabajar con PSDrive WSMan:\.

Obtenga TrustedHosts

Get-Item WSMan:\localhost\Client\TrustedHosts

Establecer TrustedHosts

proporcionar una única cadena de nombres de equipos separados por comas

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

o (peligroso) un comodín

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

para agregar a la lista, el -Concatenateparámetro se puede utilizar

Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'machineC' -Concatenate
hdev
fuente
¿Hay alguna forma de agregar hosts a la lista? porque no pude encontrar ninguna API para agregar.
Nieve
11
Puede agregar con -Value "machineB" -Concatenar
SxMT
@dhcgm Esta solución NO funciona para servidores controlados por dominio que dependen de Kerberos para la autenticación. ¿Puedes confirmar? Entonces, a pesar de agregar hosts confiables explícitos, todavía puedo usar hosts no confiables para acceder al servidor siempre que tenga derechos de administrador en el servidor. Creo que esto solo funciona para equipos de grupo de trabajo. Gracias.
objectNotFound
@objectNotFound En mi entorno utilicé Powershell Remoting solo en equipos de grupo de trabajo, por lo que no puedo confirmar su tesis. Pero suena plausible.
hdev
63
winrm set winrm/config/client '@{TrustedHosts="machineA,machineB"}'
Loïc MICHEL
fuente
19
si alguien recibe una Error: Invalid use of command line ...respuesta, intente eliminar las comillas simples
svarog
Esto simplemente no funciona para mí, comillas simples o no. Lo consigo Error: Invalid use of commandindependientemente.
Hylle
@svarog para mí fue vis-versa. Tuve que agregar comillas simples. Antes tenía el mismo error Error: Invalid use of command.
Bruno Bieri
10

La respuesta sugerida por Loïc MICHEL escribe ciegamente un nuevo valor en la entrada TrustedHosts.
Creo que una mejor manera sería consultar primero TrustedHosts.
Como publicó Jeffery Hicks en 2010 , primero consulte la entrada 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
Ego alterado
fuente
5

Creé un módulo para facilitar el trato con hosts confiables, psTrustedHosts . Puede encontrar el repositorio aquí en GitHub. Proporciona cuatro funciones que hacen que trabajar con hosts de confianza: fácil Add-TrustedHost, Clear-TrustedHost, Get-TrustedHost, y Remove-TrustedHost. Puede instalar el módulo desde la Galería de PowerShell con el siguiente comando:

Install-Module psTrustedHosts -Force

En su ejemplo, si quisiera agregar los hosts 'machineC' y 'machineD', simplemente usaría el siguiente comando:

Add-TrustedHost 'machineC','machineD'

Para ser claros, esto agrega hosts 'machineC' y 'machineD' a cualquier host que ya exista, no sobrescribe los hosts existentes.

El Add-TrustedHostcomando también admite el procesamiento de canalizaciones (también lo hace el Remove-TrustedHostcomando), por lo que también puede hacer lo siguiente:

'machineC','machineD' | Add-TrustedHost
Jason Boyd
fuente
@HerbM Los nombres de dominio funcionan bien. Los rangos con comodines solo parecen funcionar para un único valor, es decir, puede tener una lista de máquinas separadas por comas, o una cadena que contenga comodines, pero no una lista separada por comas donde uno de los valores de la lista tenga un comodín. Esto parece un problema de WinRM. Se le permitirá añadir un valor con una máscara de subred, pero no parece que interpretarlo como una gama de red cuando intenta conectarse a una máquina en el rango de modo que no se parece al trabajo.
Jason Boyd
2
Y aparentemente tiene que usar la 'división en subredes' del pobre (en los límites de octetos) y no la notación CIDR o MASK: 192.168.230. * NOT: 192.168.224.0/19 # o lo que sea
HerbM