¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Windows PowerShell
  3. Administración remota de puestos de trabajo
Extrait - Windows PowerShell Administrar puestos cliente Windows (2a edición)
Extractos del libro
Windows PowerShell Administrar puestos cliente Windows (2a edición)
1 opinión
Volver a la página de compra del libro

Administración remota de puestos de trabajo

Introducción

El perímetro de acción de Windows PowerShell no termina en el puesto de trabajo local. En efecto, Windows PowerShell ofrece la posibilidad de administrar de manera remota una o varias máquinas a la vez. Así, el conjunto de cmdlets descritos en los capítulos previos pueden emplearse para administrar el conjunto del parque informático.

Este capítulo describe cómo administrar de manera remota los puestos de trabajo Windows y también las tecnologías empleadas, los requisitos previos, y aporta también una breve descripción del conjunto de cmdlets que permiten la administración remota.

La comunicación remota del Framework .NET

La potencia ofrecida por Windows PowerShell proviene del Framework .NET, que es por otro lado un requisito previo obligatorio para poder instalar el intérprete de comandos. Por lo tanto, este hereda las funcionalidades de ejecución remota del Framework .NET.

Sin duda habrá observado la presencia del parámetro -ComputerName en varios cmdlets: permite ejecutar un comando sobre uno o varios puestos de trabajo remotos. Una de las ventajas ofrecidas por la comunicación remota del Framework .NET es que no es necesario que Windows PowerShell esté instalado en los puestos de trabajo remotos, y que se trata de un método sencillo para la administración remota de las máquinas. El único requisito previo es estar conectado a la máquina local con una cuenta que posea permisos de administración en el equipo remoto.

Sin embargo, existe también un inconveniente: la comunicación se basa en el protocolo RPC (Remote Procedure Call), que a menudo está bloqueado en los routers de la red y también en los firewalls.

1. Los cmdlets de comunicación remota del Framework .NET

Para identificar los cmdlets que poseen el parámetro -ComputerName, basta con introducir la siguiente línea de comando:

PS C:\Windows\system32> Get-Command -ParameterName ComputerName 

Sin embargo, preste atención, pues estos no son en realidad todos los cmdlets que se basan en la comunicación remota del Framework .NET. En efecto, existen cmdlets que se basan en PowerShell Remoting, que veremos más adelante.

La única manera de saber si el parámetro -ComputerName utiliza el protocolo RPC es consultar la ayuda en línea del cmdlet que se desea utilizar, con el cmdlet Get-Help. He aquí un ejemplo con Get-WmiObject:

PS C:\Windows\system32> Get-Help Get-WmiObject -Parameter  
ComputerName  
  
-ComputerName <String[]>  
   Specifies the target computer for the management operation.  
   Enter a fully qualified domain name, a NetBIOS name, or an IP 
   address. When the remote computer is in a different domain  
   than the local computer, the fully qualified domain name is  
   required.  
  
   The default is the local computer....

Administración remota con Windows PowerShell

Introducida con la versión 2.0 de Windows PowerShell, la tecnología PowerShell Remoting permite administrar de manera remota diversos productos de Microsoft a través de la red.

Basándose en técnicas y protocolos normalizados, PowerShell Remoting responde a las necesidades cada vez más extendidas en la empresa: administrar sistemas operativos (incluyendo los roles y las características) y también servidores (Exchange, etc.) únicamente con Windows PowerShell. Esta es la orientación que toma Microsoft sobre el conjunto de sus productos.

A continuación verá cómo funciona PowerShell Remoting con los puestos de trabajo, cómo utilizarlo, y también los distintos escenarios que pueden presentarse. 

1. ¿Qué es PowerShell Remoting?

PowerShell Remoting es una funcionalidad que permite la ejecución de líneas de comando y de scripts en una o varias máquinas remotas. Proporciona un entorno genérico que permite la administración remota y la ejecución de cualquier línea de comando. Puede abrir directamente una consola de Windows PowerShell como si estuviera trabajando físicamente en el equipo remoto.

Este mecanismo de comunicación se basa en el protocolo WS-Management (abreviado como WS-Man), que funciona gracias al servicio «Administración remota de Windows (WS-Management)», también llamada WinRM (Windows Remote Management). Esta tecnología permite enviar peticiones de gestión a las máquinas por la red a través de los puertos especificados.

Los puestos de trabajo que deben recibir estas peticiones deben estar configurados previamente para escuchar en la red y procesar las peticiones recibidas.

2. Funcionamiento de PowerShell Remoting

Para comprender mejor cuáles son los componentes que se utilizan en una comunicación remota de Windows PowerShell, he aquí un esquema resumen:

images/10EIT02.png

Esquema que detalla el funcionamiento de PowerShell Remoting

He aquí una descripción de las distintas etapas del funcionamiento de PowerShell Remoting:

1. Su puesto de trabajo (también llamado cliente) está situado en la parte inferior del esquema. Es aquí donde se encuentra físicamente, y desde esta ubicación se...

Administración remota

Es el momento de entrar en materia con PowerShell Remoting: la administración remota. Esta sección explica cómo enviar comandos de administración a los puestos de trabajo remotos y también cómo enviar scripts.

Los cmdlets detallados son los siguientes:

  • New-PSSession: crea una nueva sesión permanente con un equipo remoto.

  • Get-PSSession: recupera la lista de sesiones permanentes abiertas.

  • Remove-PSSession: elimina una sesión permanente.

  • Enter-PSSession: inicia una sesión interactiva con el equipo remoto.

  • Exit-PSSession: sale de la sesión interactiva.

  • Invoke-Command: ejecuta un comando PowerShell en un equipo remoto. También permite enviar un script.

1. Los distintos tipos de sesiones remotas

Existen dos tipos de sesiones que permiten ejecutar comandos Windows PowerShell a través de PowerShell Remoting, y cada tipo posee sus ventajas e inconvenientes:

  • La sesión temporal: se establece mediante los cmdlets Invoke-Command y Enter-PSSession. Una sesión temporal dura el tiempo de ejecución de un comando en el caso de Invoke-Command, mientras que para Enter-PSSession esta dura hasta que el administrador cierra la sesión interactiva.

  • La sesión permanente (creada con New-PSSession): dura el tiempo de una sesión PowerShell, a menos que el administrador la elimine voluntariamente. Establecer una o varias sesiones permanentes puede resultar útil cuando deben compartirse los datos. Para utilizar estas sesiones permanentes, hay que recurrir al parámetro -Session de los cmdlets Invoke-Command o Enter-PSSession y especificar la sesión deseada.

2. Las sesiones permanentes

Las sesiones permanentes presentan una gran ventaja: permiten compartir los datos entre su equipo y el puesto de trabajo remoto (vea el ejemplo 3 de la sección Ejecución remota de un comando).

a. Crear una sesión permanente de manera remota

Para crear una sesión permanente, se utiliza el cmdlet New-PSSession. He aquí los parámetros utilizados con más frecuencia para este cmdlet:

Parámetro

Descripción

-ComputerName<String[]>

Nombre del equipo remoto sobre el que se inicia una sesión Windows PowerShell de manera permanente. Si se indican varios nombres de equipo, New-PSSession crea una sesión en cada equipo.

-Credential<PSCredential>

Credenciales...