Articles

Cómo ejecutar comandos de PowerShell en equipos remotos

Posted by admin
  • Chris Hoffman

    @chrisbhoffman

  • 20 de julio de 2017, 12:28AM EDT

La comunicación remota de PowerShell le permite ejecutar comandos de PowerShell o acceder a sesiones completas de PowerShell en sistemas Windows remotos. Es similar a SSH para acceder a terminales remotos en otros sistemas operativos.

PowerShell está bloqueado de forma predeterminada, por lo que deberá habilitar la comunicación remota de PowerShell antes de usarla., Este proceso de configuración es un poco más complejo si está utilizando un grupo de trabajo en lugar de un dominio, por ejemplo, en una red doméstica, pero lo guiaremos a través de él.

relacionado: en qué se diferencia PowerShell del símbolo del sistema de Windows

habilitar la comunicación remota de PowerShell en el equipo al que desea acceder de forma remota

el primer paso es habilitar la comunicación remota de PowerShell en el equipo al que desea realizar conexiones remotas. En ese PC, deberá abrir PowerShell con privilegios administrativos.,

Advertisement

en Windows 10, Pulse Windows+X y, a continuación, seleccione PowerShell (Admin) en el menú usuario avanzado.

en Windows 7 u 8, Pulse Inicio y, a continuación, escriba » powershell.»Haga clic derecho en el resultado y elija» Ejecutar como administrador.»

en la ventana de PowerShell, escriba el cmdlet siguiente (el nombre de PowerShell para un comando) y, a continuación, presione Enter:

Enable-PSRemoting -Force

Este comando inicia el servicio WinRM, lo establece para que se inicie automáticamente con el sistema y crea una regla de firewall que permite las conexiones entrantes., La parte -Force del cmdlet indica a PowerShell que realice estas acciones sin solicitarle cada paso.

Advertisement

Si sus PC son parte de un dominio, esa es toda la configuración que tiene que hacer. Puedes pasar a probar tu conexión. Si sus computadoras son parte de un grupo de trabajo, que probablemente están en una red doméstica o de pequeña empresa, tiene un poco más de trabajo de configuración que hacer.

Nota: El éxito en la configuración de la comunicación remota en un entorno de dominio depende completamente de la configuración de la red., La comunicación remota puede deshabilitarse, o incluso habilitarse, automáticamente por la directiva de grupo configurada por un administrador. También es posible que no tenga los permisos necesarios para ejecutar PowerShell como administrador. Como siempre, consulte con sus administradores antes de intentar algo como esto. Pueden tener buenas razones para no permitir la práctica, o pueden estar dispuestos a configurarla para usted.

configurar su grupo de trabajo

Si sus equipos no están en un dominio, debe realizar algunos pasos más para configurar las cosas., Ya debería haber habilitado la comunicación remota en el PC al que desea conectarse, como se describió en la sección anterior.

relacionados: ¿Cuál es la diferencia entre las redes privadas y públicas en Windows?

Nota: para que la comunicación remota de PowerShell funcione en un entorno de grupo de trabajo, debe configurar la red como una red privada, no pública. Para obtener más información sobre la diferencia, y cómo cambiar a una red privada si ya tiene una red pública configurada, consulte nuestra guía sobre redes privadas vs.públicas.,

Advertisement

a continuación, debe configurar la configuración TrustedHosts tanto en el PC al que desea conectarse como en el PC (o PC) desde el que desea conectarse, para que los equipos confíen entre sí. Puedes hacer esto de una de dos maneras.

si se encuentra en una red doméstica en la que desea seguir adelante y confiar en que cualquier PC se conecte de forma remota, puede escribir el siguiente cmdlet en PowerShell (de nuevo, deberá ejecutarlo como administrador).

Set-Item wsman:\localhost\client\trustedhosts *

el asterisco es un símbolo comodín para todos los PC., Si, en cambio, desea restringir los equipos que se pueden conectar, puede reemplazar el asterisco con una lista separada por comas de direcciones IP o nombres de equipo para los equipos aprobados.

después de ejecutar ese comando, deberá reiniciar el servicio WinRM para que la nueva configuración surta efecto. Escriba el cmdlet siguiente y, a continuación, presione Enter:

Restart-Service WinRM
Advertisement

y recuerde que deberá ejecutar esos dos cmdlets en el PC al que desea conectarse, así como en cualquier PC desde el que desee conectarse.,

probar la conexión

ahora que tiene sus PC configurados para la comunicación remota de PowerShell, es hora de probar la conexión. En el equipo desde el que desea acceder al sistema remoto, escriba el cmdlet siguiente en PowerShell (sustituyendo «equipo» por el nombre o la dirección IP del equipo remoto) y, a continuación, pulse Enter:

Test-WsMan COMPUTER

Este comando sencillo comprueba si el servicio WinRM se está ejecutando en el equipo remoto., Si se completa correctamente, verá información sobre el servicio WinRM del equipo remoto en la ventana, lo que significa que WinRM está habilitado y su PC puede comunicarse. Si el comando falla, verá un mensaje de error en su lugar.

ejecutar un solo comando remoto

para ejecutar un comando en el sistema remoto, utilice el cmdlet Invoke-Command utilizando la siguiente sintaxis:

Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
Advertisement

«COMPUTER» representa el nombre o la dirección IP del PC remoto. «Comando» es el comando que desea ejecutar., «USERNAME» es el nombre de usuario que desea ejecutar el comando como en el equipo remoto. Se te pedirá que introduzcas una contraseña para el nombre de usuario.

Aquí hay un ejemplo. Quiero ver el contenido del directorio C:\ en un equipo remoto con la dirección IP 10.0.0.22. Quiero usar el nombre de usuario «wjgle», así que usaría el siguiente comando:

Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C:\ } -credential wjgle

iniciar una sesión remota

Si tiene varios cmdlets que desea ejecutar en el remote PC, en lugar de escribir repetidamente el cmdlet Invoke-Command y la dirección IP remota, puede iniciar una sesión remota en su lugar., Simplemente escriba el cmdlet siguiente y luego presione Enter:

Enter-PSSession -ComputerName COMPUTER -Credential USER

de nuevo, reemplace «COMPUTER» por el nombre o la dirección IP del PC remoto y reemplace «USER» por el nombre de la cuenta de usuario que desea invocar.

Advertisement

El mensaje cambia para indicar el equipo remoto al que está conectado y puede ejecutar cualquier número de cmdlets de PowerShell directamente en el sistema remoto.

Chris Hoffman
Chris Hoffman es Editor en Jefe de How-To Geek., Ha escrito sobre tecnología durante casi una década y fue columnista de PCWorld durante dos años. Chris ha escrito para el New York Times, ha sido entrevistado como experto en tecnología en estaciones de televisión como NBC 6 de Miami, y ha tenido su trabajo cubierto por medios de comunicación como la BBC. Desde 2011, Chris ha escrito más de 2,000 artículos que se han leído más de 500 millones de veces, y eso es solo aquí en How-To Geek.Leer la Biografía Completa «

Leave A Comment