domingo, 8 de febrero de 2015

Acceso remoto mediante el servicio WINRM

WinRM (Windows Remote Management) es una herramienta que nos permite administrar el Hardware de ordenadores basados en Windows  clientes y de Servidores tanto de forma local como remota. WinRM está basado en el protocolo WS-Management (Web Services Management que es un protocolo basado en SOAP – Arquitectura Orientada a servicios – diseñado para localizar e intercambiar información de adminsitración mediante la interoperabilidad y consistencia entre sistemas de diferentes fabricantes de Hardware y diferentes sistemas operativos.

WinRM viene instalado en los clientes y servidores de Windows. Dicha función, en los servidores Windows, viene iniciada de manera automática mientras que en los clientes será necesario que se inicie de forma manual.


Se puede utilizar entonces un equipo Windows 8.1, en este caso, para administrar de manera remota y por comandos un servidor Windows Server 2012 R2. Para esto será necesaria una configuración inicial en el firewall.
En los siguientes paso se mostrará cómo usar WinRM para la administración remota de un servidor con Windows Server 2012 R2.
WinRM está configurado para iniciarse de forma manual en Windows 8.1. En la siguiente imagen se puede apreciar esto.


 Se deberá poner en marcha el servicio desde PowerShell de Windows, siendo aconsejable iniciar esta como administrador. Los comandos que se deben usa para el arranque de WinRM, se deberá cambiar el tipo de iniciación de manual a automático, y para ello se introduciremos el siguiente comando.
winrm quickconfig


 Como ya hemos dicho, este comando realiza las acciones de configuración para habilitar que el ordenador pueda administrar remotamente a un servidor, al ejecutar el comando anterior se realizan las siguientes funciones:

  •  Iniciar el servicio de WinRM.
  • Configurar el servicio de WinRM para que inicie automáticamente.
  •  Se crea un proceso de escucha de WinRM para aceptar las solicitudes HTTP a través del número de puerto 5985.
  • El número de puerto 5985 está habilitado en la configuración de Firewall de Windows para permitir las solicitudes a través de WinRM.
  • Los tipos de autenticación Kerberos y Negotiate están habilitados.


Otro paso necesario para el uso de WinRM será permitir la comunicación en la red. Esto se consigue con el siguiente comando:
Enable-PSRemoting –forcé


 Este comandado activará la funcionalidad de administración remota, pero hay que tener en cuenta que el ordenador desde el que se pretende administrar debe estar conectado a un dominio o una red privada. Si  se encuentra conectado a una  red pública, se debe desconectar de dicha red para conectarlo a una red privada o dominio.
En muchos casos, este servicio permitirá trabajar con ordenadores en otros dominios. Sin embargo, si el ordenador remoto no está dentro de un dominio de confianza, podría no ser capaz de autenticar sus credenciales.
Para activar la autenticación, se necesita añadir el equipo remoto a la lista de hosts de confianza del ordenador local en WinRM. Esto se configura escribiendo la siguiente sintaxis en PowerShell:
winrm set winrm/config/client ‘@{TrustedHosts=”Nombre de equipo remoto al que queremos acceder”}’ 


 Para gestionar la configuración de gestión remota de WinRM se usará el comando que se especifica a continuación. Al ejecutar dicho comando se muestra información detallada sobre la configuración de gestión remota.
winrm get winrm/config


 Examinando el listado de configuración, se puede observar que existe una jerarquía de información. La base de la misma, el nivel de configuración, aparecerá referenciado con la ruta winrm/config. A continuación aparecen los subniveles para cliente, servicio y WinRS con las respectivas rutas winrm/config/client, winrm/config/service y winrm/ conf ig/winrs.
Se puede cambiar el valor de casi cualquier parámetro de configuración utilizando el siguiente comando:
winrm set Ruta Configuración 0 {NombeParámetro= "Valor "}

Donde “Ruta Configuración” es la ruta de la configuración, “Nombre Parámetro” es el nombre del parámetro con el cual se pretende trabajar y “Valor” es el valor que tendrá el parámetro. 
Por ejemplo, si se usa el siguiente texto:
winrm set winrm/config/winrs @(MaxShellsPerUser="10"}
El parámetro MaxShellsPerUser, dentro de la ruta winrm/config/winrs se establecerá en 10. Este parámetro controla el número de conexiones a un ordenador remoto que un usuario puede tener activas.
El siguiente enlace contiene información sobre todos los parámetros que se pueden configurar en winrm get winrm/config.
Una vez realizadas las modificaciones oportunas y  configurada la comunicación entre el cliente y el servidor entonces ya se podrán lanzar comandos de ejecución sobre WinRM. Para ello se utiliza el comando WinRS.
Para conocer todos los parámetros a los que se puede acceder para la gestión remota, se puede acceder a la ayuda de WinRS, introduciendo Winrs /? O bien Winrs -?


 Para comprobar que se ha configurado correctamente el servicio WinRM  se puede conectar de forma remota con el servidor, introduciendo, por ejemplo, el siguiente parámetro, que mostrara información sobre los directorios existentes en el servidor:
winrs –r:http://server:5985 –u:testdom\Administrador “dir”
Al presionar la tecla “enter”, se deberá introducir la contraseña de acceso al servidor.


 También se puede ver la configuración TCP/IP que tiene el servidor introduciendo el siguiente comando:
Winrs –r:http://servidor:5985 –u:testdom\Administrador  ipconfig

Como podemos comprobar se pueden realizar todo tipo de consultas de forma remota, aunque no nos permite modificar ningún parámetro de Windows server 2012 R2 desde nuestro equipo cliente.
En el siguiente enlace que mostramos a continuación contiene otro tipo de parámetros que podemos utilizar para interactuar de forma remota con nuestro servidor:

---------------------------------------------------------------------------------------------------------------------
Enlaces de interés externos al Blog:
  1. http://www.youtube.com/watch?v=TgFDyMn1ceQ 
  2.   http://www.youtube.com/watch?v=pPN4KLTMIpU
  3. http://geeks.ms/blogs/eliasmereb/archive/2011/04/13/introducci-243-n-a-winrm-para-windows-server-2008-r2.aspx
---------------------------------------------------------------------------------------------------------------------