- 08/21/2020
- a 3 minutos a leer
-
- j
- s
- D
- c
Usted puede ejecutar comandos en uno o cientos de computadoras con un solo comando de PowerShell. WindowsPowerShell es compatible con la informática remota mediante el uso de varias tecnologías, incluyendo WMI, RPC, andWS-Management.
PowerShell Core admite WMI, WS-Management y comunicación remota SSH., En PowerShell 6, RPC ya no es compatible. En PowerShell 7 y versiones posteriores, RPC solo se admite en Windows.
para obtener más información sobre la comunicación remota en PowerShell Core, consulte los siguientes artículos:
- comunicación remota SSH en PowerShell Core
- comunicación remota WSMan en PowerShell Core
comunicación remota de Windows PowerShell sin configuración
muchos cmdlets de Windows PowerShell tienen el parámetro ComputerName que permite recopilar datos y cambiar la configuración en uno o más equipos remotos., Estos cmdlets utilizan protocolos de comunicación variables y funcionan en todos los sistemas operativos Windows sin ninguna configuración especial.
Estos cmdlets incluyen:
- Reiniciar-Equipo
- Prueba de Conexión
- Claro-EventLog
- Get-EventLog
- Get-Revisión
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Normalmente, los cmdlets que admiten la comunicación remota sin configuración especial tiene la ComputerNameparameter y no tienen el parámetro de Sesión., Para buscar estos cmdlets en la sesión, escriba:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
comunicación remota de Windows PowerShell
mediante el protocolo WS-Management, la comunicación remota de Windows PowerShell permite ejecutar cualquier comando de Windows PowerShell en uno o varios equipos remotos. Puede establecer conexiones persistentes, iniciar sesiones interactivas y ejecutar scripts en equipos remotos.
para usar la comunicación remota de Windows PowerShell, el equipo remoto debe estar configurado para la administración remota.Para obtener más información, incluidas las instrucciones, consulte Acerca de los requisitos remotos.,
una vez que haya configurado la comunicación remota de Windows PowerShell, tendrá a su disposición muchas estrategias de comunicación remota.Este artículo enumera solo algunos de ellos. Para obtener más información, consulte Acerca del control remoto.
Iniciar una Sesión Interactiva
Para iniciar una sesión interactiva con un solo equipo remoto, utilice el Entrar-PSSessioncmdlet. Por ejemplo, para iniciar una sesión interactiva con el equipo remoto Servidor01, escriba:
Enter-PSSession Server01
El símbolo del sistema cambia para mostrar el nombre del equipo remoto., Los comandos que escriba en el indicador se ejecutan en el equipo remoto y los resultados se muestran en el equipo local.
para finalizar la sesión interactiva, escriba:
Exit-PSSession
para obtener más información acerca de los cmdlets Enter-PSSession y Exit-PSSession, consulte:
- Enter-PSSession
- Exit-PSSession
ejecute un comando remoto
para ejecutar un comando en uno o equipos, utilice invoke-commandcmdlet., Por ejemplo, para ejecutar un Get-UICulturecommand en los equipos remotos Server01 y Server02, escriba:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
la salida se devuelve a su equipo.
ejecutar un Script
para ejecutar un script en uno o varios equipos remotos, utilice el parámetro FilePath del cmdletInvoke-Command
. El script debe estar activado o accesible para su equipo local. Los resultados se devuelven a su ordenador local.
por ejemplo, el siguiente comando ejecuta el script DiskCollect.ps1 en los equipos remotos, Server01 y Server02.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
establecer una conexión persistente
utilice el cmdlet New-PSSession
para crear una sesión persistente en un equipo remoto. El ejemplo siguiente crea sesiones remotas en Server01 y Server02. Los objetos de sesión se almacenan en la variable $s
.
$s = New-PSSession -ComputerName Server01, Server02
ahora que las sesiones están establecidas, puede ejecutar cualquier comando en ellas. Y debido a que las sesiones son persistentes, puede recopilar datos de un comando y usarlos en otro comando.,
por ejemplo, el siguiente comando ejecuta un comando Get-HotFix en las sesiones de la variable $s y guarda los resultados en la variable h H. La variable h h se crea en cada una de las sesiones en $s, pero no existe en la sesión local.
Invoke-Command -Session $s {$h = Get-HotFix}
Ahora puede utilizar los datos de la variable $h
con otros comandos en la misma sesión. Los resultados se muestran en el equipo local. Por ejemplo:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
control remoto avanzado
La administración remota de Windows PowerShell comienza aquí., Mediante el uso de los cmdlets instalados con WindowsPowerShell, puede establecer y configurar sesiones remotas desde los extremos local y remoto,crear sesiones personalizadas y restringidas, permitir a los usuarios importar comandos desde una sesión remota que se ejecuten implícitamente en la sesión remota, configurar la seguridad de una sesión remota y mucho más.
Windows PowerShell incluye un proveedor de WSMan. El proveedor crea una unidad WSMAN:
que permite navegar a través de una jerarquía de valores de configuración en el equipo local y los equipos remotos.,
para obtener más información sobre los Cmdlets WSMan provider, Seewsman Provider y WS-Management,o en la consola de Windows PowerShell, escriba Get-Help wsman
.
para obtener más información, consulte:
- About Remote FAQ
- Register-PSSessionConfiguration
- Import-PSSession
para obtener ayuda con los errores de comunicación remota, consulte about_Remote_Troubleshooting.,
Véase También
- about_Remote
- about_Remote_FAQ
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Invoke-Comando
- Importar-se han agregado
- Nuevos se han agregado
- Register-PSSessionConfiguration
- Proveedor ws-management