IIS 7.5 örneğimizin yapılandırmasını komut dosyası olarak kullanıyorum ve bitler ve diğer halk komut dosyalarının parçaları aracılığıyla sevdiğim bir sözdizimi ile geldim:
$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
}
Bu daha az kesikli farklı yollar yapılmış gördüm ve ben nesne özelliklerini ayarlama sözdizimi TechNet üzerinde gördüğüm gibi bir şey ile karşılaştırıldığında bu şekilde seviyorum :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Yine de anlayamadığım bir şey, bu sözdizimini kullanarak geri dönüşüm programlarının nasıl ayarlanacağı.
Bu komut ApplicationPoolDefaults öğesini ayarlar, ancak çirkin:
add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)
Bunu geçmişte aşağıdaki gibi bir şey kullanarak appcmd aracılığıyla yaptım ama gerçekten tüm bunları powershell ile yapmak istiyorum:
%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']
Denedim:
$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)
Bu, değişkeni yenilemek için $ WebAppPool = get-item iis: \ AppPools \ AppPoolName kullanana kadar .schedule özelliğini bir zaman aralığına çevirmenin garip etkisi vardır.
Ayrıca var $WebappPool.recycling.periodicRestart.schedule.Collection
ama koleksiyon üzerinde add () işlevi yoktur ve onu değiştirmek için başka bir yol bulamadım.
Herkes yukarıda yazdığım kodla tutarlı sözdizimi kullanarak zamanlanmış geri dönüşüm süreleri ayarlamak için bir yol biliyor mu?