Ho scritto la configurazione della nostra istanza di IIS 7.5 e attraverso frammenti di script di altre persone ho escogitato una sintassi che mi piace:
$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
}
Ho visto questo fatto in diversi modi che sono meno concisi e mi piace il modo in cui questa sintassi di impostazione delle proprietà degli oggetti appare paragonata a qualcosa di simile a quello che vedo su TechNet :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Una cosa che non sono stato in grado di capire è come impostare i programmi di riciclo usando questa sintassi.
Questo comando imposta ApplicationPoolDefaults ma è brutto:
add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)
L'ho fatto in passato tramite appcmd usando qualcosa come il seguente ma mi piacerebbe davvero fare tutto questo tramite PowerShell:
%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']
Ho provato:
$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)
Questo ha lo strano effetto di trasformare la proprietà .schedule in un periodo di tempo fino a quando non uso $ WebAppPool = get-item iis: \ AppPools \ AppPoolName per aggiornare la variabile.
C'è anche $WebappPool.recycling.periodicRestart.schedule.Collection
ma non c'è alcuna funzione add () sulla raccolta e non ho trovato nessun altro modo per modificarlo.
Qualcuno sa come posso impostare i tempi di riciclo pianificati usando la sintassi coerente con il codice che ho scritto sopra?