Kyl*_*Mit 6 iis powershell application-pool
我正在尝试periodicRestart使用powershell脚本设置属性,但我试图使用与我在代码示例中看到的略有不同的语法.
根据设置使用PowerShell回收应用程序池的特定时间,这是一种方法:
Clear-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule
Set-ItemProperty $iisAppPoolName -Name Recycling.periodicRestart.schedule `
-Value @{value="01:00:00"}
Run Code Online (Sandbox Code Playgroud)
但是,我已经有一个代码块,我在这里设置属性$appPool如下:
$appPool = New-WebAppPool $iisAppPoolName
$appPool.managedPipelineMode = "Classic"
$appPool.managedRuntimeVersion = "c4.0"
$appPool.recycling.periodicRestart.time = [TimeSpan]"00:00:00"
$appPool | Set-Item
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,所以我想添加以下行:
$appPool.recycling.periodicRestart.schedule = @{value="01:00:00"}
Run Code Online (Sandbox Code Playgroud)
但我无法获取@{value="01:00:00"}要采用的语法.该schedule属性期待一个哈希表,这是我通过它.

有任何想法吗?
有趣的是,您将其视为[Hashtable]. 我将其视为[Microsoft.Iis.Powershell.Framework.ConfigurationElement].
它有一个名为 的方法.UpdateCollection(),该方法需要 a [PSObject[]],因此它正在寻找对象数组。
问题是,调用该方法,无论是在从New-WebAppPool或 从返回的池对象上Get-Item IIS:\AppPools\ExistingPool,都会导致错误,指出它是只读的。
我尝试用新的数组列表替换整个数组.Collection,并添加了时间跨度对象,并且没有错误,但它没有设置值。
我还尝试创建一个 ConfigurationElement 对象,但它似乎没有构造函数,因此它可能是代码中某处的私有类。
我并不是说绝对没有办法按照您想要的方式做到这一点,但似乎您最好只使用,Set-ItemProperty因为似乎其中一些属性被设计为只能通过 PS 提供程序进行更新。
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |