EJECUTAR POWERSHELL EN EQUIPOS REMOTOS.
EJECUTAR POWERSHELL EN EQUIPOS REMOTOS.
PowerShell Remoting te permite ejecutar comandos PowerShell individuales o acceder a sesiones completas de PowerShell en equipos remotos. Se utiliza de forma similar a SSH en Linux.
PowerShell Remoting está bloqueado de forma predeterminada, por lo que deberás habilitarlo antes de usarlo. Te voy a explicar el proceso para hacerlo dentro de un dominio. Si estas en un grupo de trabajo (Workgroup), al final tienes unas instrucciones de como habilitarlo.
Para habilitar Powershell Remoting debes utilizar el siguiente comando en los equipos que quieras utilizar:
- Enable-PSRemoting -Force.
Este comando inicia el servicio WinRM. Lo marca para que se inicie con el inicio de Windows y crea una regla dentro del cortafuegos para aceptar las conexiones entrantes. El parametro -Force ejecuta el comando sin preguntarte a cada paso.
Probando la conexión
En el equipo desde el que deseas acceder al sistema remoto, utiliza el Cmdlet "Test-WsMan" para probar la conexion. Este comando comprueba si el servicio WinRM se está ejecutando en el ordenador remoto. Si se completa correctamente, sabrás que WinRM está habilitado y que los equipos pueden comunicarse entre sí.
Utiliza el siguiente Cmdlet, sustituyendo EQUIPO por el nombre de tu ordenador remoto:
- Test-WsMan EQUIPO.
Ejecutar un comando en un equipo remoto
Para ejecutar un comando en un equipo remoto, hay que utilizar el Cmdlet "Invoke-Command". La sintaxis del comando es la siguiente:
- Invoke-Command -ComputerName EQUIPO -ScriptBlock { COMANDO } -credential USUARIO
"Equipo" es el equipo remoto, "Comando" el comando a utilizar en el equipo remoto y "Usuario" el usuario que ejecutará el comando en el equipo remoto. Una vez ejecutado el comando, se te preguntará por la contraseña de dicho usuario.
Inicio de sesión en un equipo remoto
Para iniciar sesión en un equipo remoto a través de powerShell hay que utilizar el Cmdlet "Enter-PSSession". De esta forma puedes ejecutar varios comandos, en lugar de ejecutar un solo comando:
- Enter-PSSession -ComputerName EQUIPO -Credential USUARIO.
donde "Equipo" es el equipo remoto donde iniciar sesión y "Usuario" el usuario que va a iniciar sesión en el equipo remoto. Al igual que con el comando anterior, una vez ejecutado el comando, se te preguntará por la contraseña de dicho usuario.