私はIIS 7.5インスタンスの構成と bits と他の人々のスクリプトを通じて、私が好きな構文を思いついたのです。
$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()関数がなく、それを変更する他の方法が見つかりませんでした。
上記のコードと一致する構文を使用して、スケジュールされたリサイクル時間を設定する方法を誰かが知っていますか?
オブジェクト自体にこれを設定する方法を理解することはできませんでしたが、作成後は次のように機能します。
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
だからだけでなく
$webapppool.recycling.periodicrestart.schedule -Value "01:30:00"
では?または、TimeSpanに相当するToString?
(私はPowerShellではありません。他のビットに基づいた構文的な推測にすぎません)。