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?
fuente
Respuestas:
Nunca pude descubrir cómo configurar esto en el objeto en sí, pero después de crearlo, funciona lo siguiente:
fuente
Entonces no solo
¿entonces? ¿O un equivalente ToString del TimeSpan?
(No uso PowerShell; solo una suposición sintáctica basada en tus otros bits).
fuente