Comandos de Powershell IIS Server

Comandos de PowerShell para desplegar y gestionar un IIS Server

Compartir

Acompáñanos en este breve artículo donde repasaremos algunos comandos de PowerShell para desplegar y gestionar un IIS Server.

Disponer de un servidor Web donde poder publicar contenidos es una de las necesidades básicas que tendrá casi cualquier empresa, sean estos servidores para tareas de marketing, servidores dedicados a venta online, o servidores internos para documentación o cualquier otro tipo de servicio imaginable.

Hace algún tiempo publicamos un artículo en el que comentábamos qué es y para qué sirve un IIS web server y también publicamos dos tutoriales en los que comentábamos por un lado, cómo instalar un IIS web server, por otro cómo instalar IIS en Windows 10 y por último tenemos el tutorial cómo instalar y configurar un servidor FTP en Windows (IIS) y creemos que este artículo en el que hablamos de cómo hacer la gestión con PowerShell puede ser interesante para “cerrar el ciclo”.

A lo largo de este artículo hablaremos de cómo realizar la instalación básica de uno de estos servidores, así como desplegar un sitio web o pequeñas tareas administrativas.

 

Instalación del servidor Web:

A pesar de ser un artículo y por tanto no soler incluir los pre-requisitos vamos a saltarnos esta norma no escrita y decir que para poder instalar un IIS Web Server con PowerShell se necesitará estar dado de alta en la Plataforma Jotelulu con una organización y estar registrado en la misma tras hacer Log-in, y por otro lado, haber dado de alta una suscripción de Servidores, siempre que se vaya a desplegar sobre nuestra infraestructura, claro está.

A continuación, diremos que debemos tener permisos administrativos de la máquina local sobre la que vamos a actuar, ya que vamos a desplegar servicios, configurarlos y gestionarlos.

Lo primero que haremos para instalar el servidor IIS es consultar al sistema si tiene instalado algo de este servicio. Para comprobar si tiene instalado algún componente de IIS lanzaremos el siguiente comando:

# Get-WindowsFeature -Name *IIS*

Que básicamente lista todas las funcionalidades de Windows que incluyan “IIS” en su nombre, ya que los “*” indican 0 o más caracteres por ambos lados. En este caso, tal como se ve en la captura, se muestran dos elementos:

  • IIS Server Extension.
  • WinRM IIS Extension.

Y ambos tienen delante los siguientes caracteres “[ ]” que indican que no están instalados, ya que si lo estuvieran, figurarían como “[*]”. Para lanzar la instalación usaremos el comando “Install-WindowsFeature” con la siguiente composición:

# Install-WindowsFeature -name Web-Server -IncludeManagementTools

Donde “IncludeManagementTools” indica al sistema que instale también las herramientas administrativas relacionadas con esta funcionalidad.

Imagen. Comprobamos si está instalado IIS y lo instalamos mediante PowerShell
Imagen. Comprobamos si está instalado IIS y lo instalamos mediante PowerShell

Tras la instalación, se podrá ver que el rol se ha instalado, tanto lanzando el comando de comprobación de funcionalidades instaladas como mediante el Administrador del servidor o Server Manager.

# Get-WindowsFeature -Name *IIS*

Imagen. Observamos que el servicio se ve como instalado dentro del administrador del servidor
Imagen. Observamos que el servicio se ve como instalado dentro del administrador del servidor

Otra forma de validar que se ha instalado correctamente es abrir un navegador web y conectar contra localhost, para ello escribiremos 127.0.0.1 en la barra de direcciones y pulsaremos la tecla <Enter> teniendo que ver una ventana como la que se muestra en la siguiente imagen.

Imagen. Comprobamos que IIS es accesible desde el servidor local
Imagen. Comprobamos que IIS es accesible desde el servidor local

 

Comprobar comandos PowerShell disponibles tras instalar IIS:

Una cosa interesante que debemos saber y que debemos hacer siempre que instalemos un nuevo servicio, un nuevo módulo, etc. es comprobar que comandos asociados a este nuevo servicio tenemos. Para ello, basta con ejecutar el comando:

# Get-Command -Module ‘IIS Administration’

Donde en realidad, podremos cambiar “IIS Administration” por el módulo que nos interese. Esto hará que se muestre una lista de comandos “cmdlet” que serán aquellos que podremos usar para la gestión, y sobre los que podremos buscar información en el propio sistema o en la KB de Microsoft.

Imagen. Comprobamos los comandos de PowerShell relacionados con IIS
Imagen. Comprobamos los comandos de PowerShell relacionados con IIS

 

Configuración de un nuevo sitio de un nuevo sitio de IIS mediante comandos PowerShell:

Otro punto que podemos necesitar es desplegar, poblar y administrar un nuevo sitio web. Para ello se deberán usar nuevamente comandos de PowerShell, empezando por viejos conocidos como “New-Item”. Para comenzar, debemos crear un directorio que contendrá los ficheros del nuevo sitio web. Para ello lanzaremos el comando siguiente:

# New-Item -ItemType Directory -Name ‘<Directorio>’ -Path ‘<Ruta_Directorio>’

Donde:

  • New-Item: Indica que se va a crear un nuevo elemento.
  • ItemType -Directory: Indica que se va a crear un elemento de tipo directorio.
  • Name ‘<Directorio>’: Se usa para pasar el nombre del directorio, donde se debe además sustituir ‘<Directorio>’ por el nombre del directorio.
  • Path ‘<Ruta_Directorio>’: Se usa para pasar la ruta completa hasta el directorio, donde se debe además sustituir ‘<Ruta_Directorio>’ por la ruta absoluta al directorio.

Un ejemplo podría ser:

# New-Item -ItemType Directory -Name ‘PruebaNacho’ -Path ‘C:\inetpub\wwwroot\PruebaNacho’

Tras esto, se debe crear también el fichero que contendrá el código HTML que mostrará la página web. Para ello se debe lanzar el comando:

# New-Item -ItemType File -Name ‘index.html’ -Path ‘C:\inetpub\wwwroot\PruebaNacho\’

Teniendo múltiples sitios en un mismo servidor web, puede ser necesario que gestionemos los “bindings” o enlaces usados. Pidiéndole a cada sitio que trabaje a través de un puerto en concreto. Para hacer esto se debe usar el siguiente comando:

# New-IISSite -Name ‘<Sitio>’ -PhysicalPath ‘<Ruta del sitio>’ -BindingInformation «*:<Puertos usados>:»

Donde:

  • New-IISSite: Se usa para configurar el nuevo sitio.
  • Name ‘<Sitio>’: Para pasar como parámetro el nombre del sitio con el que vamos a trabajar, cambiando ‘<Sitio>’ por el nombre del sitio.
  • PhysicalPath ‘<Ruta del sitio>’: Para pasar como parámetro la ruta del sitio con el que vamos a trabajar, cambiando ‘< Ruta del Sitio>’ por la ruta del sitio.
  • BindingInformation «*:<Puertos usados>:»: Se usa para pasar el puerto por el que atenderá las peticiones. En este caso «*:<Puertos usados>:» debe ser sustituido por el puerto en concreto, si por ejemplo se usa el 8080, se deberá escribir «*:8080:».

Un ejemplo de esto puede ser el siguiente, que también se puede ver en la imagen:

# New-IISSite -Name ‘PruebaNacho’ -PhysicalPath ‘C:\inetpub\wwwroot\PruebaNacho\’ -BindingInformation «*:8080:»

Con esto ya tendremos creado y configurado el nuevo sitio.

Imagen. Creamos un nuevo sitio para servir una nueva web desde nuestro servidor IIS
Imagen. Creamos un nuevo sitio para servir una nueva web desde nuestro servidor IIS

Además, deberemos editar el fichero “index.html” y rellenar, por ejemplo, con el siguiente código:

<!DOCTYPE html>

<html>

    <head>

         <title>Prueba de IIS creado con PowerShell</title>

    </head>

    <body>

        <h1>Prueba de IIS creado con PowerShell</h1>

        <p>Esto lo hacemos para las pruebas de <b>Jotelulu</b></p>

        <p>Creando una webpage de IIS mediante <b>PowerShell</b></p>

    </body>

</html>

Salvándolo a continuación para que el cambio se consolide.

Imagen. Comprobamos que el sitio desplegado es accesible a través del navegador
Imagen. Comprobamos que el sitio desplegado es accesible a través del navegador

En este momento, ya tendremos un sitio con una página web (muy simple) operativo, que podremos mejorar añadiendo distintos elementos de HTML, CSS, etc.

 

Arranque y parada de un sitio de IIS mediante PowerShell:

También deberemos repasar es el arranque y parada del un sitio de IIS mediante PowerShell, que podremos hacer en base a los cmdlets “Stop-IISSite” como “Start-IISSite” y de “Get-IISSite” que nos permite saber el estado de un sitio. Si por ejemplo usamos el comando “Stop-IISSite”, nos preguntará por el sitio a detener y si estamos seguros. Si por el contrario usamos el comando “Stop-IISSite -Name «PruebaNacho»” en el cual ya consta el sitio a detener, no pedirá más que la autorización.

Lo mismo pasará con el arranque, que podremos usar “Start-IISSite” y pedirá sitio de destino y podemos usar “Start-IISSite -Name «PruebaNacho»” que solo pedirá la confirmación.

Cuando se quiera saber el estado de los sitios disponibles se podrá usar el comando “Get-IISSite”, si se quiere solo el estado de un sitio se podrá usar el comando “Get-IISSite -Name ‘<Nombre Sitio>’” ‘<Nombre Sitio>’ debe ser cambiado por el nombre del sitio, por ejemplo ‘PruebaNacho’.

También podemos pedir una sola propiedad, por ejemplo saber por que puerto atiende un sitio las peticiones, en cuyo caso lanzaremos el siguiente comando:

(Get-IISSite -Name ‘PruebaNacho’).Bindings

Imagen. Comprobamos distintas opciones de arranque y parada del sitio que hemos creado
Imagen. Comprobamos distintas opciones de arranque y parada del sitio que hemos creado

 

Eliminación de un sitio de IIS mediante PowerShell:

El último punto queremos revisar la opción de eliminar un sitio de IIS, que podremos hacerlo a través de “Remove-IISSite”, pasándole como parámetro el nombre del sitio. En este caso, tenemos dos opciones:

Por un lado, tenemos la opción de hacer la eliminación directamente, y para ello ejecutar el comando:

# Remove-IISSite -Name ‘PruebaNacho’

Y por otro lado, tenemos la opción de hacer la eliminación directamente, y para ello ejecutar el comando, que hará una simulación y nos dirá si esto puede producir algún problema asociado:

# Remove-IISSite -Name ‘PruebaNacho’ -WhatIf

Imagen. Simulamos la eliminación de un sitio mediante el uso de WhatIf
Imagen. Simulamos la eliminación de un sitio mediante el uso de WhatIf

Y con esto tenemos más o menos cubiertas las operaciones básicas sobre IIS, aunque es posible que lo revisemos y ampliemos en el futuro.

 

Conclusiones:

A lo largo de este artículo, hemos visto comandos de Powershell para desplegar y gestionar un IIS Server sobre Windows Server 2022, aunque es válido para otras versiones como Windows Server 2019 o Windows Server 2016. En el artículo vemos tanto como instalar IIS como desplegar un nuevo sitio web, configurarlo, reiniciar el servicio de ese sitio o eliminarlo mediante comandos de PowerShell.

También puedes obtener algo más de información sobre el producto en la página web del proyecto LEARN donde se habla de IIS.

Si tienes cualquier problema puedes ponerte en contacto con nosotros para que ayudemos en la medida de lo posible.

¡Gracias por leernos!

Categorías:Cloud y sistemas

Otros posts que te pueden interesar

13 de noviembre de 2024
¡Tenemos nuevas distros en Servidores! En respuesta a las múltiples solicitudes de varios de nuestros partners, se ha habilitado
13 de noviembre de 2024
¡Ya es posible desplegar plantillas de diferentes softwares desde el asistente de despliegue de servidores! Estrenamos esta funcionalidad del
13 de noviembre de 2024
¡Integración con QNAP! Ya es posible crear copias sincronizadas entre dispositivos de almacenamiento local QNAP y nuestro servicio de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.

Precios competitivos para la pyme y mucho más margen para el partner

Disaster Recovery ha sido diseñado, implementado y puesto en producción teniendo en cuenta dos premisas: Debe tener un precio atractivo para la pyme a la vez que deja un buen margen de beneficio a la empresa de IT que lo comercializa y gestiona.

DR_buen_precio_y_mas_margen

De esta manera, Disaster Recovery pretende ser un producto diferencial que permita incrementar la seguridad de todo tipo de empresas de manera asequible e implicando, además, rentabilidad para el distribuidor que lo comercializa.

Protege la infraestructura de tus clientes

Disaster Recovery permite replicar cualquier suscripción de infraestructura (Escritorio Remoto y Servidores) en otra zona de disponibilidad creando un entorno de alta disponibilidad y blindando así el servicio.

Replica en pocos pasos no sólo los discos sino todos los elementos que forman parte de cada suscripción:

  • Servidores: Instancias, discos, reglas de firewall, redes, IPs…
  • Escritorio Remoto: Usuarios, Aplicaciones, Licencias, Personalización…
DR_blinda_la_infraestructura

Tratamos de hacer fácil lo difícil

Las herramientas de Disaster Recovery existentes necesitan de conocimientos avanzados para poder ser gestionadas, implicando, muchas veces, un expertise difícil de alcanzar.

 

Disaster Recovery de Jotelulu busca hacer fácil lo difícil y plantea un despliegue muy sencillo basado en una configuración de tres pasos:

Origin (Primary Site)
Determina la ubicación de origen de la suscripción sobre la que se va a establecer el servicio de Disaster Recovery.

Destino (Recovery Site)
Establece la ubicación de destino (zona de disponibilidad) en la que quieres que se despliegue el Recovery Site.

Características de la réplica
Establece los datos asociados al número de copias que se quieren guardar y la frecuencia con la que se va a llevar a cabo la réplica.