He estado escribiendo la configuración de nuestra instancia de IIS 7.5 y, a través de fragmentos de scripts de otras personas, he creado una sintaxis que me gusta:
$WebAppPoolUserName = "domain\user"
$WebAppPoolPassword = "password"
$WebAppPoolNames = @("Test","Test2")
ForEach ($WebAppPoolName in $WebAppPoolNames ) {
$WebAppPool = New-WebAppPool -Name $WebAppPoolName
$WebAppPool.processModel.identityType = "SpecificUser"
$WebAppPool.processModel.username = $WebAppPoolUserName
$WebAppPool.processModel.password = $WebAppPoolPassword
$WebAppPool.managedPipelineMode = "Classic"
$WebAppPool.managedRuntimeVersion = "v4.0"
$WebAppPool | set-item
}
He visto esto de varias maneras diferentes que son menos concisas y me gusta la forma en que se ve esta sintaxis de configuración de propiedades de objeto en comparación con algo como lo que veo en TechNet :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Sin embargo, una cosa que no he podido descubrir es cómo configurar los horarios de reciclaje utilizando esta sintaxis.
Este comando establece ApplicationPoolDefaults pero es feo:
add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)
He hecho esto en el pasado a través de appcmd usando algo como lo siguiente, pero realmente me gustaría hacer todo esto a través de powershell:
%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']
Yo he tratado:
$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)
Esto tiene el extraño efecto de convertir la propiedad .schedule en un intervalo de tiempo hasta que use $ WebAppPool = get-item iis: \ AppPools \ AppPoolName para actualizar la variable.
También existe $WebappPool.recycling.periodicRestart.schedule.Collection
pero no hay una función add () en la colección y no he encontrado ninguna otra forma de modificarla.
¿Alguien sabe de alguna manera en que pueda establecer tiempos de reciclaje programados usando una sintaxis consistente con el código que he escrito anteriormente?