Add-WebConfigurationの醜い構文に頼らずにIISアプリケーションプールのリサイクル時間を設定するにはどうすればよいですか?


9

私は、私たちのIIS 7.5インスタンスの構成をスクリプトと通じてきたビット私は私のようなことを構文が出ている他の人々スクリプトのと作品:

$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
}

私はこれがより簡潔である多くの異なる方法で行われるのを見てきました、そして私はオブジェクトプロパティを設定するこの構文が私がTechNetで見るもののようなものと比較して見える方法が好きです:

Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000

私が理解できなかったのは、この構文を使用してリサイクルスケジュールを設定する方法です。

このコマンドはApplicationPoolDefaultsを設定しますが、見苦しいです:

add-webconfiguration  system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)

私はこれまでappcmdで次のようなものを使用してこれを行いましたが、私は本当にこれをすべてpowershellで実行したいと思っています。

%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']

私が試してみました:

$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)

これには、変数を更新するために$ WebAppPool = get-item iis:\ AppPools \ AppPoolNameを使用するまで、.scheduleプロパティをタイムスパンに変換するという奇妙な効果があります。

また$WebappPool.recycling.periodicRestart.schedule.Collection 、コレクションにはadd()関数がなく、変更する他の方法が見つかりませんでした。

上記のコードと一致する構文を使用して、スケジュールされたリサイクル時間を設定する方法を誰かが知っていますか?


あなたはそれを理解したことがありますか?
JohannesH

回答:


10

これをオブジェクト自体に設定する方法を理解することはできませんでしたが、作成後は次のように機能します。

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

これでうまくいきます。
jonnii 2013

0

だからだけでなく

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

では?または、TimeSpanに相当するToString?

(PowerShellは使用しません。他のビットに基づいた構文上の推測です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.