viernes, 6 de agosto de 2010

Acceso remoto con PowerShell - III

Una vez que ya tenemos habilitado WinRM 2.0 en el servidor al que queremos conectarnos, desde un cliente solo tenemos que ejecutar esto:

Enter-PSSession 'Nombre_Servidor'

Ya tenemos establecida una conexión interactiva con el servidor remoto y todos los cmdlets que ejecutemos se harán en el servidor remoto.

Condiciones para que funcione bien:

1) El usuario con el que hemos iniciado la sesión en el cliente debe tener privilegios administrativos en la máquina remota.

2) Las dos máquinas pertenecen al mismo dominio o hay establecida una relación de confianza.

Si no se cumple alguna de las condiciones anteriores:

Enter-PSSession 'Nombre_Servidor' -Credential:'dominio\usuario'

Para salir de la sesión interactiva:

Exit-PSSession



Ejecución de comandos en modo no interactivo:

Disponemos del cmdlet Invoke-Command para ejecutar comandos en remoto de manera no interactiva:

Invoke-Command -computerName servidor1 {Get-Process}

Invoke-Command -computerName servidor1, servidor2 {Get-Process}

Podemos también ejecutar scripts. El script tiene que estar accesible en la máquina cliente:

Invoke-Command -computername Server01, Server02 -filepath c:\Scripts\script.ps1


Pero de esta manera no mantenemos la sesión.Si queremos mantener la sesión, haremos:

$s = New-PSsession -computername Servidor1, Servidor2

Ahora podemos hacer:

Invoke-Command -session $s {$h = get-Process}
Invoke-Command -session $s {$h | where {$_.Status -eq "Stopped"}

Más información en:

about_remote_requirements
about_remote_troubleshooting

No hay comentarios:

Publicar un comentario