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.