Add-WebConfiguration'ın çirkin sözdizimine başvurmadan IIS Uygulama Havuzu geri dönüşüm sürelerini nasıl ayarlayabilirim?


9

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?


Hiç çözdün mü?
JohannesH

Yanıtlar:


10

Bunu nesnenin kendisine nasıl ayarlayacağımı asla anlayamadım, ancak oluşturduktan sonra aşağıdaki işler:

clear-ItemProperty IIS:\AppPools\MyPoolName -Name Recycling.periodicRestart.schedule #clear values
set-ItemProperty IIS:\AppPools\MyAppPoolName -Name Recycling.periodicRestart.schedule -Value @{value="00:00:00"} #to set it to midnight

Bu benim için çalışıyor.
jonnii

0

Yani sadece

$webapppool.recycling.periodicrestart.schedule -Value "01:30:00" 

sonra? Veya TimeSpan'ın ToString eşdeğeri?

(Ben PowerShell değil; sadece diğer bitlerinize dayalı sözdizimsel bir tahmin).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.