Debemos de empezar por conocer que Windows Remote Management es la implementación del protocolo WS-Management. Usa SOAP (Simple Object Access Protocol) sobre HTTP y HTTPS y por ende es considerado un protocolo amigable con los firewalls. Fue diseñado para proveer interoperabilidad y consistencia para redes empresariales que tienen una variedad de sistema operativos y así, poder localizar e intercambiar información de administración.
WinRM provee una interfaz de línea de comandos que puedes ser usada para realizar tareas de administración comunes y también provee una API para script de modo que puedes escribir tus propios scripts basados en Windows Scripting Host. En el fondo WinRM depende de la información de administración suministrada por WMI; sin embargo hace que el intercambio de data sea mucho más sencillo haciendo uso del protocolo HTTP.
Aparte de WMI, WinRM utiliza el controlador Intelligent Platform Management Interface (IPMI) para administración de hardware. El proveedor y controlador IPMI nos habilita el poder controlar y diagnosticar el hardware de un servidor remoto a través de BMCs (Baseboard Management Controllers) aun cuando el sistema operativo no está corriendo o aún no ha sido desplegado. Efectivamente BMC es un chip conectado a la tarjeta madre del servidor; tiene su propio adaptador de red y por ende puede monitorear el servidor en situaciones cuando el servidor está mal funcionando.
Configuración Básica:
Primero para que WinRM funcione en el servidor necesitamos que el Firewall de Windows este habilitado, una vez hecho eso, abriremos CMD y ejecutaremos el siguiente comando:
winrm quickconfig
Este comando realiza las acciones de configuración para habilitar que esta computadora pueda administrar remotamente, las cuales incluyen:
1.Inciar el servicio de WinRM.
2.Configurar el servicio de WinRM para que inicie automaticamrente.
3.Crea un escucha que acepta solicitudes de cualquier direccion IP.
4.Habilita las excepciones en el firewall para el tráfico de WS-Management (solo HTTP).
Cuando configuras WinRM en el servidor, revisara si el Firewall está habilitado, de ser así habilitara la excepción en el firewall para WInRM; en el caso de estar deshabilitado, deberías encontrarte un error con el siguiente mensaje:
•WSManFault
•Message
•ProviderFault
•WSManFault
•Message = Unable to check the status of the firewall.
•Error number: -2147023143 0x800706D9
•There are no more endpoints available from the endpoint mapper.
Para listar todo los escuchas de WinRM, debes de correr este comando:
winrm enumerate winrm/config/listener
Ahora veamos las diferentes operaciones soportadas por WinRM para acceder a la data de WMI:
•GET
•PUT
•ENUMERATION
•INVOKE
Podemos consultar varias configuraciones de diversos servicios haciendo uso del comando GET. Ejemplo:
winrm get wmicimv2/Win32_Service?Name=spooler
También se puede utilizar el comando GET para consultar en equipos remotos:
winrm get Winrm/config –r:nombredelequiporemoto
Corre este comando para consultar el servicio en un equipo remoto:
winrm get wmicimv2/Win32_Service?Name=spooler –r:nombredelequiporemoto
Para reiniciar un equipo remoto:
winrm invoke reboot wmicimv2/Win32_OperatingSystem -r:<nombre del equipo>
Iniciar un servicio en un equipo remoto:
winrm invoke startservice wmicimv2/Win32_Service?name=w32time -r:<nombre del equipo>
Espero esta información les haya sido útil!
En caso de estar interesado en más comandos http://blogs.technet.com/b/otto/archive/2007/02/09/sample-vista-ws-man-winrm-commands.aspx
Saludos!
Interesante. Gracias Elias!