Share via


IIS: Habilitación de la administración remota de IIS

Puede usar la ejecución remota de Windows PowerShell para acelerar habilitación de la administración remota desde un servidor remoto.

Jason Helmick

¿Que siempre quisiste administrar un servidor IIS de forma remota, cambiar su configuración o agregar un sitio Web simple, y hacerlo desde una ubicación remota? Por razones obvias de seguridad no sólo abrir el IIS Manager y conectar a un servidor remoto. Cada servidor IIS que va a administrar debe tener telegestión habilitado, configurado y asignado a un certificado para HTTPS.

Habilitar IIS remoto mediante el gráfico IIS Manager de gestión es rápida y fácil, pero sólo si estás sentado en el servidor Web o mediante el Remote Desktop Protocol (RDP). Si tiene varios servidores de Web que necesitan la administración remota, o si, como yo, usas Server Core: GUI IIS Manager no es práctico o posible.

Puede habilitar la administración remota en cualquier número de servidores Web remotos con Windows PowerShell. Podrás hacerlo a tantos servidores Web como usted necesita, a la vez. Usted usará Windows PowerShell con una característica especial llamada remota de Windows PowerShell.

Tendrás que activar Windows PowerShell remoting en todos los servidores IIS. No hay ninguna manera de evitar. La mejor manera para permitir la comunicación remota es a través de un objeto de directiva de grupo (GPO). Si no sabes hacerlo o necesita más información sobre el proceso, revisa el eBook gratuito "secretos de PowerShell Remoting," por Don Jones y Dr.. Tobias Weltner.

Antes de decir, "No me permiten hacer esto," sentarse y leer esta guía. Configurar un entorno de prueba y a sus amigos de la seguridad a examinarlo y obtener el permiso para habilitar la comunicación remota. Si los servidores Web se ejecutan en Windows Server 2012, ya tienes remoto habilitado. Si no es así, usted tendrá que completar esto antes de intentar los pasos descritos aquí.

Windows PowerShell remoting es totalmente seguro y usted lo necesita para muchas tareas de administración relacionados con IIS en el futuro. El proceso para permitir la administración remota no es complicado, pero hay varios pasos. Esto es lo que puede esperar:

  1. Crear una sesión de Windows PowerShell para cada uno de los servidores
  2. Instalar el servicio de gestión de Web IIS (WMSvc)
  3. Activar el WMSvc IIS
  4. Iniciar el WMSvc IIS
  5. Reemplazar el certificado temporal
  6. Conectar mediante el IIS Manager

En este ejemplo, te permitirá de telegestión en cuatro servidores IIS llamado Web1, Web2 y Web3 Web4, todo al mismo tiempo. Después de conseguir trabajo, reemplazaré el certificado temporal con un certificado de confianza de servicios de certificados de Active Directory (AD CS).

1. Crear sesiones de acceso remoto de Windows PowerShell para los servidores Web

El primer paso es crear una sesión de acceso remoto de Windows PowerShell para los servidores Web. Empezar por crear una variable "$Servers" que contiene los nombres de los servidores Web. Luego, crear y guardar las sesiones en una variable "$Sessions":

PS> C:\> $Servers = 'web1', 'web2', 'web3', 'web4' PS> C:\> $Sessions = New-PSSession –ComputerName $Servers

Necesitarás ambas variables durante todo el proceso. Don' t intente acortar esto a una sola línea. Podría llenar $Servers de un archivo de texto, archivo CSV o Active Directory con el cmdlet Get-ADComputer, pero eso es otro tema.

2. Instalar el IIS WMSvc

El WMSvc de IIS es un componente adicional que necesitará añadir a IIS. Con las sesiones de acceso remoto, Windows PowerShell facilita este (la primera línea no será necesaria si usas Windows Server 2012):

PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Import-Module ServerManager} PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

En este punto, ha instalado el WMSvc de IIS. Habilitar el servicio es el siguiente paso.

3. Activar el WMSvc IIS

La configuración predeterminada para el servicio de gestión se establece para permitir las credenciales de Windows, utilice Puerto 8172 y aplicar un certificado temporal. Utilice esta configuración para ahora y cambiar el certificado temporal por una confianza al final de este proceso. Para habilitar el servicio de gestión, cambiar una clave de registro en los servidores Web remotos:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}

Ahora que está habilitado el servicio de gestión, puede tenerlo iniciado.

4. Iniciar el WMSvc IIS

El WMSvc de IIS no es Iniciado por defecto. De hecho, el servicio se establece en arranque manual. Si reiniciar un servidor Web en el futuro, no arranca el servicio de gestión. Cambiar el tipo de inicio automático y luego iniciar el servicio:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic} PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

En este punto, se ejecuta el servicio de gestión y se pueden administrar de forma remota los servidores Web usando el IIS Manager. El único problema es que el certificado en uso es temporal y no es de confianza, así que sustituya esta certificado por una confianza.

5. Sustitución del certificado temporal

Hay muchas opciones para reemplazar el certificado temporal, incluyendo la nueva característica de IIS 8 de posea un certificado en el almacén de certificados de la Central. Esta es mi favorita.

Iré por el breve proceso de copiar, instalar un nuevo certificado desde un archivo pfx y entonces establecer los enlaces del sitio Web para el nuevo certificado. Este ejemplo tiene un certificado wildcard en mi equipo local C:\_.Company.loc.pfx. Primero copiar el certificado (archivo .pfx) a los servidores Web remotos, luego utilizar CertUtil.exe para instalar el certificado:

PS C:\> $Servers | Foreach-Object {Copy-Item -Path C:\_.Company.loc.pfx -Destination "\\$_\c$"} PS> c:\> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\_.company.loc.pfx}

Aviso que envié la contraseña en texto claro. Comunicación remota de Windows PowerShell es completamente segura y cifrada. Una vez instalado el certificado, es importante recordar eliminar el archivo .pfx de los servidores Web:

PS> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\_.Company.loc.pfx"}

En este punto, usted necesitará la huella digital del certificado instalado y usted necesitará cambiar el enlace para el servicio de gestión. Para ello, necesita el proveedor IIS. Comience por cargar el módulo deusuario en los servidores Web remotos:

PS C:\> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Obtener el certificado de huella digital para hacer un nuevo enlace:

PS C:\> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}

Quitar el antiguo enlace SSL:

PS C:\> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Añadir el nuevo enlace SSL utilizando la huella digital del certificado:

PS C:\> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Ahora estás listo para conectarse a los servidores Web usando el IIS Manager.

6. Conectarse a los servidores Web remotos mediante el IIS Manager

El último paso es abrir su IIS Manager, seleccione la página de inicio en el panel izquierdo y en el panel del centro "Conectar a un servidor". Suministrar el nombre del servidor y sus credenciales y verás una nueva conexión que aparece en el panel de navegación del IIS Manager.

Porque realizar esta operación bastante, tomé los comandos anteriores y ponerlos en una secuencia de comandos. Si crees que puede ser que necesite hacerlo más de una vez, y estoy seguro que os irá, siempre es mejor automatizar este proceso.

Jason Helmick

Jason Helmick tiene más de 20 años de experiencia en él como un consultor de la empresa, el entrenador y el autor. Como director de tecnologías de Windows PowerShell en formación técnica de interfaz, se centra en la automatización con Active Directory y IIS. Puedes ver más sobre IIS en su próximo libro de Manning publicaciones, "aprender Windows IIS en un mes de comidas.

Contenido relacionado