用于更改应用程序池上的回收时间的Powershell脚本

时间:2014-07-31 20:35:37

标签: windows powershell powershell-v3.0

我发现我认为我需要使用的代码,但问题是它无法正常工作。

Import-Module WebAdministration
$appPools = Get-childItem 'IIS:\AppPools\App Pool'
Set-ItemProperty -Path $appPools -Name recycling.periodicRestart.time -Value 1.00:00:00

但我收到此错误

Set-ItemProperty : Cannot find path 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\WebAdministration\Microsoft.IIs.PowerShell.Framework.NodeCollection' because it does not exist.
At line:3 char:1
+ Set-ItemProperty -Path $appPools -Name recycling.periodicRestart.time -Value 1.0 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (C:\Windows\SysW....NodeCollection:String) [Set-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand

我知道这不是路径问题。这确实有效。

set-itemproperty -path 'D:\test\TestPS\New Text.txt' -name IsReadOnly -value $true

任何帮助都会很棒......

1 个答案:

答案 0 :(得分:1)

路径问题。

Get-ChildItem 'IIS:\AppPools\App Pool'返回的对象是NodeCollection对象,当您运行Set-ItemProperty -Path $appPools时,$appPools会扩展为“Microsoft.IIs.PowerShell.Framework.NodeCollection” (这不是有效路径)

要更改应用程序池的属性:

Set-ItemProperty -Path 'IIS:\AppPools\App Pool' -Name recycling.periodicRestart.time -Value 1.00:00:00