Con Powershell es posible ejecutar comandos en otros ordenadores de la red de Windows conociendo solo el nombre del ordenador. Pero para que esto sea posible es necesario que el ordenador donde queremos ejecutar los comandos tenga habilitada la ejecución remota. Estos son los pasos a seguir para habilitarla:
1 |
winrm quickconfig |
(Para que este comando se complete con éxito, es necesario que no exista ninguna red declarada como pública)
Después añadir el valor * a trustedhosts
1 |
set-item WSman:\localhost\Client\trustedhosts -value * |
El * indica que se dan permisos a todos los ordenadores remotos (Esto de dar permisos a todos los equipos es para pruebas, en la realidad es un suicidio… :)
Varios comandos permiten introducir un nombre de equipo para realizar acciones sobre el mismo, pero el que usaremos con más asiduidad será invoke-command.
Ejecuta un cmdlet en la máquina local o en un ordenador remoto:
1 |
invoke-command |
Sintaxis: invoke-command -computername PC { cmdlets } Ejecuta los cmdlets en el ordenador con nombre PC.
Ejemplos
- https://www.jesusninoc.com/02/28/ejecutar-de-forma-paralela-un-cmdlet-en-varios-equipos/
- https://www.jesusninoc.com/10/14/invocar-expresiones-con-cmdlets-codificados-en-base64-invoke-command/