cómo ejecutar los comandos de PowerShell en equipos remotos

PowerShell Remoting permite ejecutar comandos individuales PowerShell o acceder a sesiones de PowerShell completos en sistemas remotos de Windows. Es similar a SSH para acceder a los terminales remotos en otros sistemas operativos.

PowerShell está bloqueado por defecto, por lo que tendrá que activar PowerShell Remoting antes de usarlo. Este proceso de instalación es un poco más complejo si estás usando un grupo de trabajo – por ejemplo, en una red doméstica – en lugar de un dominio.

En el equipo al que desea acceder de forma remota, abra una ventana de PowerShell como administrador – hacer clic derecho en el acceso directo PowerShell y seleccione Ejecutar como administrador.

Para habilitar la comunicación remota de PowerShell, ejecute el siguiente comando (conocido como un cmdlet de PowerShell)

Enable-PSRemoting -Force

Este comando inicia el servicio WinRM, establece que se inicie automáticamente con el sistema, y ​​crea una regla de firewall que permite las conexiones entrantes. La parte -Force de la orden le dice PowerShell para realizar estas acciones sin pedir cada paso.

Si sus equipos no están en un dominio – por ejemplo, si usted está haciendo esto en una red doméstica – que tendrá que realizar algunos pasos más. En primer lugar, ejecute el comando Enable-PSRemoting -Force en el equipo al que desea conectarse a partir, también. (Recuerde que debe poner en marcha PowerShell como administrador antes de ejecutar este comando.)

En ambos equipos, configurar los TrustedHosts de ajuste por lo que los ordenadores van a confiar en sí. Por ejemplo, si usted está haciendo esto en una red doméstica de confianza, puede utilizar este comando para permitir que cualquier equipo se conecte

WSMAN Set-Item: \ localhost \ Client \ trustedhosts *

Para restringir los equipos que se pueden conectar, también se puede reemplazar el * con una lista separada por comas de direcciones IP o los nombres de los equipos.

En ambos equipos, reiniciar el servicio WinRM para que sus nuevos ajustes serán efectivos

Reinicie-Servicio WinRM

En el equipo al que desea acceder el sistema remoto de, utilice el cmdlet Test-wsman para probar la configuración. Este comando contrasta si el servicio WinRM está ejecutando en el equipo remoto – si se realiza correctamente, sabrá que WinRM está activado y los equipos puedan comunicarse entre sí. Utilice el siguiente cmdlet, en sustitución de ordenador con el nombre de su equipo remoto

Equipo de prueba-wsman

Si el comando se completa con éxito, verá información sobre el servicio WinRM del equipo remoto en la ventana. Si el comando falla, aparecerá un mensaje de error.

Para ejecutar un comando en el sistema remoto, utilice el cmdlet Invoke-Command. La sintaxis del comando es la siguiente

Invoke-Command -ComputerName ORDENADOR -ScriptBlock {command} NOMBRE DE USUARIO -credential

ORDENADOR representa el nombre del equipo, comando es el comando que desea ejecutar, y NOMBRE DE USUARIO es el nombre de usuario que desee ejecutar el comando como en el equipo remoto. Se le pedirá que introduzca una contraseña para el nombre de usuario.

Por ejemplo, para ver el contenido del directorio C: \ en un equipo remoto denominado Monolito como el usuario Chris, podríamos utilizar el siguiente comando

Invoke-Command -ComputerName Monolito -ScriptBlock {Get-ChildItem C: \} -credential Chris

Utilice el cmdlet Enter-PSSession para iniciar una sesión de PowerShell remoto, donde se pueden ejecutar varios comandos, en lugar de ejecutar un solo comando

Enter-PSSession -ComputerName DEL ORDENADOR -Credential

¡Gracias!

Es esta la misma para PowerShell 3.0?

Creo que este programa es grande, por favor sigan así

Tengo una lista de direcciones IP’s, necesito el nombre del equipo para cada dirección IP de la lista. ¿Cómo lo puedo hacer en powershell?

Hay casi tantas LEGO ™ mini-figuras, ya que hay personas en el mundo; desde su introducción a finales de 1970, LEGO ha producido más de 4 mil millones de mini-figuras.