Eu criei scripts para a configuração da nossa instância do IIS 7.5 e por meio de bits e pedaços de scripts de outras pessoas eu criei uma sintaxe que eu gosto:
$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
}
Eu vi isso feito de várias maneiras diferentes que são menos concisas e gosto da maneira como essa sintaxe de configuração de propriedades de objetos parece comparada com algo parecido com o que eu vejo em TechNet :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Uma coisa que não consegui descobrir é como configurar os agendamentos de reciclagem usando essa sintaxe.
Este comando define o ApplicationPoolDefaults, mas é feio:
add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)
Eu fiz isso no passado através do appcmd usando algo como o seguinte, mas eu realmente gostaria de fazer tudo isso através do powershell:
%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']
Eu tentei:
$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)
Isso tem o efeito estranho de transformar a propriedade .schedule em um limite de tempo até que eu use $ WebAppPool = get-item iis: \ AppPools \ AppPoolName para atualizar a variável.
Há também $WebappPool.recycling.periodicRestart.schedule.Collection
mas não há nenhuma função add () na coleção e não encontrei outra maneira de modificá-la.
Alguém sabe de uma maneira que eu possa definir tempos de reciclagem programados usando a sintaxe consistente com o código que escrevi acima?