Configuracion de WinRM

Para la configuracion del servicio WinRM necesario para la ejecucion de comandos remotamente en el servidor. Pasos:
  1. Configurar el WinRM en el servidor donde se desea ejecutar comandos via remota, para ello abra una consola con privilegios elevados (Right click -> Run as administrator), y ejecute el siguiente comando:
  2. winrm quickconfig
  3. Configure WinRM para permitir Basic Authentication, para ello ejecute el siguiente comando:
  4. winrm set winrm/config/service/Auth @{Basic="true"}
  5. Configure WinRM para permitir mensajes SOAP no cifrados, para ello ejecute el siguiente comando:
  6. winrm set winrm/config/service @{AllowUnencrypted="true"}
  7. Configure WinRM para permitir suficiente memoria a la ejecucion de commandos, para ello ejecute el siguiente comando:
  8. winrm set winrm/config/winrs @{MaxMemoryPerShellMB="1024"}
  9. Para permitir la conexión desde otra maquina, es necesario permitir que dicha maquina se pueda conectar a WinRM, para ello ejecute el siguiente comando:

    1. Permitir que todos los hosts se puedan conectar:
      winrm set winrm/config/client @{TrustedHosts="*"}

    2. Permitir que un set de hosts se puedan conectar:
      winrm set winrm/config/client @{TrustedHosts="host1,host2..."}

  10. Si desea usar HTTP como coneccion de WinRM, cree un HTTP listener, para ello ejecute el siguiente comando: (No recomendado porque los password viajan planos)
  11. winrm create winrm/config/listener?Address=*+Transport=HTTP
  12. Si desea usar HTTPS como coneccion de WinRM, cree un HTTPS listener, siga los pasos siguiente:
    1. Cree un Self Signed Certificate en IIS usando el nombre del servidor como el nombre del certificado, esto se hace desde el IIS Manager.
    2. Obtenga el fingerprint del certificado, para ello vaya a los certificados del IIS Manager seleccione el certificado creado y haga click derecho -> properties
    3. Copie el fingerprint y pegelo en notepad, elimine los espacios en blanco.
    4. Por ultimo cree el listener, para ello ejecute el siguiente comando:
    5. winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="HOSTNAME"; CertificateThumbprint="THUMBPRINT"}

      donde: HOSTNAME es el nombre completo del Host, THUMBPRINT es el fingerprint generado en el certificado y con espacios en blanco eliminados.
Notas:
  1. Si ocurre algun error de autenticación: Because of User Account Control (UAC), the remote account must be a domain account and a member of the remote computer Administrators group. If the account is a local computer member of the Administrators group, then UAC does not allow access to the WinRM service. To access a remote WinRM service in a workgroup, UAC filtering for local accounts must be disabled by creating the following DWORD registry entry and setting its value to 1:
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
  2. La cuenta de usuario que se va usar en la ejecucion de comandos via WinRM debe estar en el grupo de usuarios Administradores Locales de la maquina donde se esta configurando el servidor.

Comentarios