Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
de Thomas Deml
En este tutorial, aprenderá a cambiar las propiedades simples de los contenedores de espacios de nombres IIS, como sitios web, aplicaciones web, directorios virtuales y grupos de aplicaciones, con el uso de los cmdlets integrados de PowerShell. En el siguiente tutorial se explica cómo cambiar las propiedades de configuración en las secciones system.webServer y las secciones personalizadas.
Introducción
La tarea de los complementos de PowerShell es ofrecer espacios de nombres que se pueden administrar con un cmdlet común de PowerShell integrado, como New-Item, Get-Item, Get-ChildItems, Set-Item, Set-ItemProperty etc. Los cmdlets incorporados operan en todos los espacios de nombres proporcionados por PowerShell.
New-Item c:\testdir por ejemplo, permite crear un directorio de sistema de archivos, pero también puede crear un nuevo objeto IIS como un Web-Site o un grupo de aplicaciones, por ejemplo New-Item IIS:\AppPools\NewAppPool.
En el tutorial anterior empezamos a usar los cmdlets New-item y Get-Item. Este tutorial explorará más de los cmdlets integrados.
A menudo, es posible que tenga que cambiar la configuración de estos elementos después de crearlos. Para ello, usamos los cmdlets integrados New-ItemProperty y Set-ItemProperty. También veremos cómo usar Get-Item y Set-Item.
Este tutorial se basa en el Web-Site "Demosite" y sus aplicaciones web y directorios virtuales que creamos en el último tutorial.
Examinar las opciones de configuración
Antes de empezar a cambiar la configuración, queremos verlos primero. Este es un comando para ver los valores de configuración de "DemoSite".
PS IIS:\> get-item IIS:\Sites\DemoSite
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
DemoSite 2 Started c:\demosite http :8080:
Esto le ofrece una vista de las propiedades más importantes del sitio. Sin embargo, hay más opciones de configuración que le interesen.
Este es un comando que proporciona más detalles:
(Get-ItemProperty IIS:\Sites\DemoSite -Name bindings).Collection
En el ejemplo anterior usamos paréntesis porque la llamada a Get-ItemProperty debe evaluarse primero antes de poder imprimir las entradas de la colección. En este caso, es similar a en matemáticas: (5 + 4) * 3 evaluará 5 + 4 primero y luego se multiplicará por 3. En este caso, los resultados del comando Get-ItemProperty se evaluarán y el objeto de configuración de IIS resultante contiene una colección que se muestra en la pantalla.
Puede usar la misma estrategia con otras propiedades o colecciones, como la sección ProcessModel de AppPools. El siguiente comando, por ejemplo, devuelve un buen objeto DateTime para startupTimeLimit de nuestro DemoAppPool:
PS IIS:\> (Get-ItemProperty IIS:\AppPools\DemoAppPool -name processModel).startupTimeLimit
Days : 0
Hours : 0
Minutes : 1
Seconds : 30
Milliseconds : 0
Ticks : 900000000
TotalDays : 0.00104166666666667
TotalHours : 0.025
TotalMinutes : 1.5
TotalSeconds : 90
TotalMilliseconds : 90000
Cambio de la configuración del sitio y del grupo de aplicaciones
Hay dos maneras básicas de realizar cambios.
- Si va a cambiar una propiedad simple, use Set-ItemProperty.
- Si está trabajando con una colección y desea agregar una nueva entrada de colección, utilice el comando New-ItemProperty. En una instalación predeterminada de IIS, la colección bindings es la única que se usa en el espacio de nombres iiS.
Set-ItemProperty y New-ItemProperty
Comencemos agregando un enlace adicional a nuestro DemoSite:
PS IIS:\> New-ItemProperty IIS:\sites\DemoSite -name bindings -value @{protocol="http";bindingInform
ation=":8081:"}
PS IIS:\> dir IIS:\Sites
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
Default Web Site 1 Started f:\inetpub\wwwroot http *:80:
DemoSite 2 Started c:\demosite http :8080:
http :8081:
Como puede ver DemoSite ahora también está escuchando en el puerto 8081.
Use el Set-ItemProperty si desea modificar una propiedad existente. Cambiar el nombre del sitio por ejemplo:
PS IIS:\> Set-ItemProperty IIS:\Sites\DemoSite -name name -value NewDemoSite
PS IIS:\> dir iis:\Sites
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
Default Web Site 1 Started f:\inetpub\wwwroot http *:80:
NewDemoSite 2 Started c:\demosite http :8080:
http :8081:
Volvamos a cambiarlo al nombre anterior:
PS IIS:\> Set-ItemProperty IIS:\Sites\NewDemoSite -name name -value DemoSite
También queremos cambiar la identidad bajo la cual se ejecuta nuestro grupo de aplicaciones. En primer lugar, tenemos que crear un usuario sin embargo. Vamos a usar ADSI para hacerlo
$computer = [ADSI]"WinNT://."
$user = $computer.Create("user", "DemoAppPoolUser")
$user.SetPassword("Secret!!Pw3009")
$user.SetInfo()
Ahora estamos listos para configurar DemoAppPool para que se ejecute como este usuario:
Set-ItemProperty iis:\apppools\DemoAppPool -name processModel -value @{userName="DemoAppPoolUser";password="Secret!!Pw3009";identitytype=3}
Para garantizar la extensibilidad, utilizamos una confiable tabla hash para los nombres de propiedad y sus valores. Si olvidó cómo usarlo, aquí hay un vínculo.
Set-Item y Get-Item
Vamos a hacer lo mismo, es decir, asignar un usuario a un grupo de aplicaciones, con el combo set-item/get-item. Es posible que le guste esta variante un poco mejor porque le permite aprovechar la finalización de la línea de comandos. Para ver cómo funciona, no copie y pegue los siguientes comandos. Escriba un par de caracteres y use la tecla TAB para disfrutar de las ventajas de la finalización de la línea de comandos:
PS IIS:\AppPools> $demoPool = Get-Item IIS:\AppPools\DemoAppPool
PS IIS:\AppPools> $demoPool.processModel.userName = "DemoAppPoolUser"
PS IIS:\AppPools> $demoPool.processModel.password = "Secret!!Pw3009"
PS IIS:\AppPools> $demoPool.processModel.identityType = 3
PS IIS:\AppPools> $demoPool | Set-Item
Resumen
En este tutorial ha aprendido a usar cmdlets proporcionados por PowerShell para administrar contenedores de espacios de nombres de IIS, como sitios y grupos de aplicaciones. Has aprendido a usar tablas hash y a aprovechar la finalización de la línea de comandos. En el siguiente tutorial, aprenderá a usar los cmdlets de administración de IIS para realizar cambios en las configuraciones de IIS que no son accesibles mediante el espacio de nombres de administración del IIS.