我一直在脚本通过我们的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)
这具有将.schedule属性转换为时间跨度的奇怪效果,直到我使用$ WebAppPool = get-item iis:\ AppPools \ AppPoolName刷新变量为止。
$WebappPool.recycling.periodicRestart.schedule.Collection
集合上也有但没有add()函数,而且我还没有找到其他修改它的方法。
有人知道我可以使用与上面编写的代码一致的语法来设置计划的回收时间吗?
你有没有想过?
—
JohannesH