Powershell App Pool 设置 periodicRestart 语法
Powershell App Pool set periodicRestart syntax
我正在尝试使用 powershell 脚本设置 periodicRestart
属性,但我正在尝试使用与我在代码示例中看到的略有不同的语法。
根据Set the specific times to recycle an application pool with PowerShell,这是一种方法:
Clear-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule
Set-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule `
-Value @{value="01:00:00"}
但是,我已经有一段代码,我在其中设置 $appPool
本身的属性,如下所示:
$appPool = New-WebAppPool $iisAppPoolName
$appPool.managedPipelineMode = "Classic"
$appPool.managedRuntimeVersion = "c4.0"
$appPool.recycling.periodicRestart.time = [TimeSpan]"00:00:00"
$appPool | Set-Item
效果很好,所以我想添加以下行:
$appPool.recycling.periodicRestart.schedule = @{value="01:00:00"}
但我无法获取 @{value="01:00:00"}
的语法。 schedule
属性 需要一个哈希表,这就是我传递给它的内容。
有什么想法吗?
有趣的是,您将其视为 [Hashtable]
。我将其视为 [Microsoft.Iis.Powershell.Framework.ConfigurationElement]
.
它有一个名为 .UpdateCollection()
的方法,它需要一个 [PSObject[]]
,所以它正在寻找一个对象数组。
问题是,调用该方法,无论是在从 New-WebAppPool
还是从 Get-Item IIS:\AppPools\ExistingPool
返回的池对象上,都会导致一个错误,指出它是只读的。
我尝试用添加了时间跨度对象的新数组列表替换整个 .Collection
,我没有收到任何错误,但它没有设置值。
我也尝试创建一个 ConfigurationElement 对象,但它似乎没有构造函数,所以它可能是代码中某处的私有 class。
我并不是说绝对没有办法按照你的意愿去做,但看起来你最好只使用Set-ItemProperty
似乎其中一些属性只能通过 PS 提供程序进行更新。
我正在尝试使用 powershell 脚本设置 periodicRestart
属性,但我正在尝试使用与我在代码示例中看到的略有不同的语法。
根据Set the specific times to recycle an application pool with PowerShell,这是一种方法:
Clear-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule
Set-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule `
-Value @{value="01:00:00"}
但是,我已经有一段代码,我在其中设置 $appPool
本身的属性,如下所示:
$appPool = New-WebAppPool $iisAppPoolName
$appPool.managedPipelineMode = "Classic"
$appPool.managedRuntimeVersion = "c4.0"
$appPool.recycling.periodicRestart.time = [TimeSpan]"00:00:00"
$appPool | Set-Item
效果很好,所以我想添加以下行:
$appPool.recycling.periodicRestart.schedule = @{value="01:00:00"}
但我无法获取 @{value="01:00:00"}
的语法。 schedule
属性 需要一个哈希表,这就是我传递给它的内容。
有什么想法吗?
有趣的是,您将其视为 [Hashtable]
。我将其视为 [Microsoft.Iis.Powershell.Framework.ConfigurationElement]
.
它有一个名为 .UpdateCollection()
的方法,它需要一个 [PSObject[]]
,所以它正在寻找一个对象数组。
问题是,调用该方法,无论是在从 New-WebAppPool
还是从 Get-Item IIS:\AppPools\ExistingPool
返回的池对象上,都会导致一个错误,指出它是只读的。
我尝试用添加了时间跨度对象的新数组列表替换整个 .Collection
,我没有收到任何错误,但它没有设置值。
我也尝试创建一个 ConfigurationElement 对象,但它似乎没有构造函数,所以它可能是代码中某处的私有 class。
我并不是说绝对没有办法按照你的意愿去做,但看起来你最好只使用Set-ItemProperty
似乎其中一些属性只能通过 PS 提供程序进行更新。