Blog

07/02/2017

Administración masiva con PowerShell – PSRemoting (parte 1/2)

Hace ya más de diez años Microsoft creo un entorno de comandos llamado PowerShell®, a los más puristas de Microsoft les resulto extraño e incluso creían que era un alejamiento de su filosofía, pero después de todo este tiempo podemos observar como esta consola ha entrado en casi todas las herramientas y sistemas de Microsoft haciendo obligatorio el uso de esta herramienta para todos, aunque solamente sea para una cosa puntual. Y lo interesante es que no ha hecho desaparecer las interfaces gráficas si no que ha conseguido que las interfaces de administración de Microsoft, por lo general, sean más usables y dinámicas al ser más sencillas y útiles para el día a día y reservando para la PowerShell todo aquello que sea puntual.

A continuación, me voy a centrar en una de las cosas más interesantes que tiene la PowerShell, la capacidad para lanzar comandos en remoto usando PSRemoting.

¿Qué es PSRemoting?

PSRemoting es una tecnología que permite enviar comandos de un equipo a otro, para esto usa HTTP por el puerto 5985 por lo que es interesante para no tener limitaciones en los firewalls, otra ventaja es que viene habilitado por defecto desde Windows Server 2012/Windows 8.1 lo cual nos permite usarlo directamente.

Si queremos habilitarlo en otras versiones necesitamos instalar PowerShell 2.0 y habilitarlo mediante el comando Enable-PSRemoting.

Desde que nació PowerShell antes de que hubiera PSRemoting algunos comandos nos daban la posibilidad de ejecutarlos en remoto, esta funcionalidad en los comandos se suele reconocer por usar el parámetro -ComputerName, todos los comandos que se puedan ejecutar en remoto con este comando no están usando PSRemoting y utilizan sus propias tecnologías como RPC,WMI,Registro Remoto… En definitiva, son más incomodos de usar porque requieren permisos distintos o reglas de firewall adicionales.

Get-Service -ComputerName LON-DC1

 

Seguridad en PSRemoting:

La seguridad en PSRemoting es transparente, haces lo que tus credenciales te permiten. Para facilitar la tarea de permitir PSRemoting tenemos el grupo “Remote Management Users” para controlar quien puede usar PowerShell de manera remota en el equipo.

Si lo necesitamos podemos pasar credenciales al conectarnos usando el comando get-credential. De esta manera la sesión que se abre usara esas credenciales y tendremos los permisos asociados al usuario que indiquemos.

Esta es la definición y algunos aspectos de PSRemoting, en el siguiente artículo hablaremos sobre más características de esta tecnología y de su funcionamiento, incluyendo comandos de ejemplo.

Ve a la segunda parte de este artículo pinchando aquí.

Jonatan Alonso
Microsoft Lead Trainer

 

Análisis, Artículos , , , , , ,

Comenta esta información