在尝试编写一些脚本来管理我们的IIS站点时,我遇到了IIS中ManagedPipelineMode的一些奇怪行为。我的代码相当通用,并且使用Get-ItemProperty读取旧值,然后使用Set-ItemProperty来更新旧值(如果它不是我们想要的值)。
但是,如果我运行此命令:
Get-ItemProperty "IIS:\AppPools\MyAppPool" "managedPipelineMode"
我取回字符串
Classic
。但是,如果我运行此命令:Set-ItemProperty "IIS:\AppPools\MyAppPool" "managedPipelineMode" "Classic"
我得到了错误
Classic is not a valid value for Int32
。因此,我知道我可以使用
([int][Microsoft.Web.Administration.ManagedPipelineMode]::Classic)
设置值,但是我不明白为什么在使用Get-ItemProperty
和Set-ItemProperty
时类型似乎有所不同,或者我如何以一致的方式查询此值。注意:我并不是真的想为ManagedPipelineMode加上一个特殊的情况,因为其他所有属性似乎都表现出预期的效果。因此,有两个问题:
string
,而在设置时成为int
?所有枚举都属于这种情况吗? 最佳答案
使用以下值:0 =集成; 1 =经典
Set-ItemProperty "IIS:\AppPools\MyAppPool" "managedPipelineMode" "1"
关于iis - 为什么/如何获取与设置ManagedPipelineMode不同的类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13071933/