Administrar grupos de aplicaciones web IIS en PowerShell
¿Necesita vigilar los grupos de aplicaciones de su servidor web IIS? Aquí hay una guía sobre cómo crear un grupo de aplicaciones en iis con PowerShell.
¿A dónde acude cuando administra una granja de servidores web IIS con potencialmente docenas o cientos de grupos de aplicaciones? Scripts de PowerShell, ¡por supuesto! Al utilizar el módulo WebAdministrationPowerShell que viene instalado como parte de IIS y un poco de comunicación remota de PowerShell, puede crear, modificar y eliminar fácilmente grupos de aplicaciones a voluntad.
Veamos algunos ejemplos sobre cómo lograrlo.
Si nunca antes ha usado PowerShell para administrar sus servidores IIS, su primera inclinación podría ser buscar un ComputerName en la mayoría de los cmdlets. Desafortunadamente, este no es el caso.
Para administrar servidores IIS de forma remota, nos vemos obligados a utilizar la comunicación remota de PowerShell con el cmdlet Invoke-Command. Aunque no es un factor decisivo, hace que el código sea un poco más detallado de lo que podría ser. Esto no es para disuadirle de administrar servidores IIS remotos con PowerShell, pero es más bien para su información.
Relacionado: Invoke-Command: la mejor manera de ejecutar código remoto
Sé que me sentí bastante frustrado la primera vez que probé esto y no vi ese parámetro familiar ComputerName en muchos de los cmdlets.
NOTA: En el futuro, crearemos código para ingresarlo en un bloque de script. Luego usaremos
Invoke-Commandpara ejecutar este bloque de script en el servidor IIS remoto.
Listado de grupos de aplicaciones IIS con PowerShell
Para administrar grupos de aplicaciones web, primero necesitaremos importar el módulo WebAdministration.
PS> Import-Module WebAdministrationEsto incorpora todos los cmdlets de IIS y crea la unidad IIS. Aquí es donde se realizará la mayor parte de la configuración del grupo de aplicaciones. Primero verifiquemos si ya existe algún grupo de aplicaciones.
PS> Get-ChildItem -Path IIS:\AppPools
Name State. Applications
----- ------ -------------
GHI StartedCreación de nuevos grupos de aplicaciones IIS con PowerShell
Parece que ya tengo uno llamado GHI. Quizás quiera crear otro. Usar la unidad IIS hace que esto sea muy fácil. Simplemente use New-Item y especifique la ruta.
PS> New-Item -Path IIS:\AppPools\MyAppPool
Name State. Applications
----- ------ -------------
MyAppPool StartedInspeccionar y modificar las propiedades del grupo de aplicaciones
Ahora he creado un nuevo grupo de aplicaciones. Luego podemos verificar todas las propiedades en ese grupo de aplicaciones usando Get-ItemProperty y seleccionar todas las propiedades que devuelve con Select-Object. Esto devolverá todos los nombres y valores de las propiedades para que pueda determinar cuáles necesita modificar con Set-ItemProperty.
Get-ItemProperty IIS:\AppPools\MyAppPool | select *Ahora que tiene un grupo de aplicaciones y puede ver las propiedades, modifiquemos una propiedad. Tal vez quiera usar una versión particular del tiempo de ejecución de .NET con el grupo de aplicaciones. Nuevamente, usando la unidad IIS, puedo usar Set-ItemProperty para administrar grupos de aplicaciones como puedo hacer con el sistema de archivos, el registro, los certificados y todas las demás cosas que tienen una unidad PowerShell.
PS> Set-ItemProperty -Path IIS:\AppPools\MyAppPool -Name managedRuntimeVersion -Value 'v4.0'Al utilizar Set-ItemProperty, puede modificar casi todas las propiedades de un grupo de aplicaciones.
Eliminación de grupos de aplicaciones con PowerShell
Finalmente, hemos terminado con nuestro grupo de aplicaciones y ahora debemos eliminarlo. Esta vez tenemos un cmdlet de PowerShell integrado llamado Remove-WebAppPool. ¡Simplemente especifica el nombre y listo!
Remove-WebAppPool -Name MyAppPool
Todo este código que hemos estado usando se ejecutó localmente, pero ¿qué sucede si necesita ejecutarlo en un servidor IIS remoto? Aquí es donde entra en juego la comunicación remota de PowerShell. Para hacer esto, simplemente necesitaremos agrupar todo este código en un bloque de script y luego usar Invoke-Command para ejecutarlo en el servidor remoto.
$appPoolName = 'MyAppPool'
$scriptBlock = {
Import-Module WebAdministration
New-Item -Path IIS:\AppPools\$using:appPoolName
Set-ItemProperty -Path IIS:\AppPools\$using:appPoolName -Name managedRuntimeVersion -Value 'v4.0'
Remove-WebAppPool -Name $using:appPoolName
}
Invoke-Command -ComputerName SOMEIISSERVER -ScriptBlock $scriptBlockAunque no es muy funcional, este código crearía un nuevo grupo de aplicaciones llamado MyAppPool, establecería una propiedad y luego la eliminaría. Notarás que estoy usando la variable $using. Dado que el código en el bloque de secuencia de comandos se ejecutará en una computadora remota, esto es necesario para que PowerShell expanda esa variable y use el valor real de $appPoolName que se declaró localmente en nuestra computadora cliente. .
Si desea obtener más información sobre la administración de IIS en general, consulte la página de administración de Technet IIS. Allí encontrará todos los cmdlets incluidos en el módulo WebAdministration y cómo puede usarlos.