ICM / herramientastitle_li=webtitle_li=windows / APPCMD, el nuevo comando en las herramientas de administración de Internet Information Services (IIS)

APPCMD, el nuevo comando en las herramientas de administración de Internet Information Services (IIS)

25 mayo 2022 | Carlos Calvo

Hoy vamos a hablar sobre la gestión del servicio de Microsoft Internet Information Services (IIS). Se trata del servidor de publicación Web de Microsoft, que viene como Rol opcional en todas las ediciones de Windows Server. Podemos utilizarlo para publicar contenido Web, ya sea estático o aplicaciones basadas en .net, php, etc…

Mediante comandos de cmd/powershell podemos realizar la mayoría de acciones sobre nuestro IIS. Anteriormente, podíamos realizar la mayoría de acciones sobre nuestro IIS utilizando una serie de scripts de administración. Estos scripts los podíamos encontrar junto a nuestra instalación de IIS. Podemos ver la referencia de los comandos de los que estamos hablando aquí: Command-line Tools Included in IIS | Microsoft Docs. En cambio, en las versiones más recientes de IIS tenemos la aplicación appcmd, ubicada en %systemroot%\system32\inetsrv\ dentro del host que alberga el servicio IIS . Esta aplicación dispone de todos los comandos que anteriormente se ejecutaban con los scripts de administración.

El comando iisreset es uno de los pocos que ha sobrevivido tras este cambio. El comando iisreset es comúnmente conocido y utilizado para reiniciar, arrancar, parar o deshabilitar los servicios de IIS.

El nuevo comando APPCMD

Para el resto de acciones, actualmente debemos utilizar, como comentábamos anteriormente, el comando APPCMD. Con este comando y utilizando los parámetros y argumentos que admite, podemos llegar a gestionar con ese único binario los siguientes aspectos de nuestro IIS:

  • appcmd Site: utilizado para la gestión de sitios virtuales.
  • appcmd App: utilizado para la gestión de aplicaciones virtuales.
  • appcmd Vdir: utilizado para la administración de directorios virtuales.
  • appcmd Apppool: utilizado para la administración de Pools de aplicaciones.
  • appcmd Config: utilizado para la administración de la configuración general del servicio.
  • appcmd Backup…: utilizado para la administración de los backups de configuración.
  • appcmd WP: utilizado para la administración de los Worker Processes.
  • appcmd Request: utilizado para mostrar las conexiones activas HTTP.
  • appcmd Module.: utilizado para la gestión y configuración de los módulos de IIS.
  • appcmd Trace: utilizada para la gestión de las trazas de servidor.

Como ejemplo simple, si quisiésemos listar los Sites que existen actualmente en una instalación de IIS, ejecutaríamos el comando: %systemroot%\system32\inetsrv\appcmd.exe list SITES . Otra opción consistiría en realizar Queries. Si, por ejemplo, sólo quisiéramos obtener los sites que están parados o en un estado concreto cualquiera, podríamos hacerlo ejecutando %systemroot%\system32\inetsrv\APPCMD list SITES /state:Stopped.

El comando está dividido por funcionalidades y cada una de estas tiene sus argumentos propios, que podemos utilizar conjuntamente para montar nuestros scripts más complejos. Podemos preparar nuestros scripts para que realicen varias tareas sobre nuestro IIS haciendo uso de los diferentes componentes y funcionalidades que utiliza appcmd.

Ejemplos de uso

Por ejemplo, podríamos programar un backup de la configuración de uno de nuestros pools de aplicaciones simplemente montando un script calendarizado que ejecute %systemroot %\system32\inetsrv\appcmd list APPPOOL /config /xml > %MYPATH%\apppools.xml a la hora deseada y contra el storage deseado.

Otro ejemplo podría ser un script de importación/exportación. Podríamos montar un script que exportase la configuración de los pools de aplicaciones desde el servidor “A” e importarlos posteriormente sobre el servidor “B”. Haciendo uso del fichero apppools.xml que exportamos en el ejemplo anterior, podríamos importarlo en otro server ejecutando %systemroot%\system32\inetsrv\appcmd.exe add apppool /in < %MYPATH%\apppools.xml.

Desde ICM creemos que es útil conocer algunas de las variantes del comando appcmd porque puede ayudar al administrador de IIS a acortar bastante los tiempos de intervención si sus tareas cotidianas, como la creación o la baja de un site, la instalación o desinstalación de módulos o gestión de pools de aplicaciones están correctamente “scripteadas” y eso podrá hacerlo si conoce en profundidad la cantidad y variedad de opciones que le ofrece el comando appcmd.