Iis-7
使用 Powershell 操作 IIS7 配置
我正在嘗試使用 WebAdministration 模組在 PowerShell 中編寫一些 IIS7 設置任務的腳本。我擅長設置簡單的屬性,但在處理配置文件中的元素集合時遇到了一些麻煩。
舉個例子,我想讓應用程序池按給定的時間表回收,而時間表是時間的集合。當我通過 IIS 管理控制台進行設置時,相關的配置部分如下所示:
<add name="CVSupportAppPool"> <recycling> <periodicRestart memory="1024" time="00:00:00"> <schedule> <clear /> <add value="03:31:00" /> </schedule> </periodicRestart> </recycling> </add>
在我的腳本中,我希望能夠完成同樣的事情,並且我有以下兩行:
#clear any pre-existing schedule Clear-WebConfiguration "/system.applicationHost/applicationPools/add[@name='$($appPool.Name)']/recycling/periodicRestart/schedule" #add the new schedule Add-WebConfiguration "/system.applicationHost/applicationPools/add[@name='$($appPool.Name)']/recycling/periodicRestart/schedule" -value (New-TimeSpan -h 3 -m 31)
這幾乎做同樣的事情,但生成的 XML 缺少
<clear/>
通過 GUI 創建的元素,我認為這是避免繼承任何預設值所必需的。這種集合(帶有“add”、“remove”和“clear”元素)在配置文件中似乎是相當標準的,但我似乎找不到任何關於如何一致地與它們互動的好的文件。
而不是使用 Clear-WebConfiguration,而是使用 Remove-WebConfigurationProperty:
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/applicationPools/add[@name='$($appPool.Name)']/recycling/periodicRestart/schedule" -name "."
這將在 <schedule> 中添加 <clear /> 節點