Eu tenho script a configuração do nosso exemplo, IIS 7.5 e através de pedaços e peças de outros scripts povos eu vim com 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 já vi isso feito de várias maneiras diferentes, menos concisas e eu gosto da aparência dessa sintaxe de definir propriedades do objeto em comparação com algo semelhante ao que eu vejo no TechNet :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Uma coisa que ainda não consegui descobrir é como configurar agendas de reciclagem usando essa sintaxe.
Este comando define 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 intervalo de tempo até que eu use $ WebAppPool = get-item iis: \ AppPools \ AppPoolName para atualizar a variável.
Também existe, $WebappPool.recycling.periodicRestart.schedule.Collection
mas não há função add () na coleção e não encontrei nenhuma outra maneira de modificá-la.
Alguém sabe como definir horários de reciclagem programados usando sintaxe consistente com o código que escrevi acima?
fonte
Respostas:
Eu nunca consegui descobrir como definir isso no próprio objeto, mas depois de criá-lo, o seguinte funciona:
fonte
Então não apenas
então? Ou um equivalente ToString do TimeSpan?
(Não conheço o PowerShell; apenas um palpite sintático com base nos seus outros bits).
fonte