Dan*_*eny 5 iis powershell iis-7.5
在尝试编写一些脚本来管理我们的IIS站点时,我遇到了一些与IIS中的ManagedPipelineMode有关的奇怪行为.我的代码相当通用,并使用Get-ItemProperty读取旧值,然后使用Set-ItemProperty更新它,如果它不是我们想要的值.
但是,如果我运行这个:
Get-ItemProperty "IIS:\AppPools\MyAppPool" "managedPipelineMode"
Run Code Online (Sandbox Code Playgroud)
我收回了字符串 Classic.但是,如果我运行这个:
Set-ItemProperty "IIS:\AppPools\MyAppPool" "managedPipelineMode" "Classic"
Run Code Online (Sandbox Code Playgroud)
我收回了错误Classic is not a valid value for Int32.
所以,我知道我可以设置值使用([int][Microsoft.Web.Administration.ManagedPipelineMode]::Classic),但我不明白为什么类型在使用Get-ItemPropertyvs 时似乎有所不同Set-ItemProperty,或者我如何以一致行为的方式查询它.
注意:我真的不想为ManagedPipelineMode添加特殊情况,因为其他所有属性似乎都按预期运行.那么,有两个问题:
string在读取时,但int在设置时?这是所有枚举的情况吗?尝试使用
Set-ItemProperty -Path:'IIS\AppPools\MyAppPool' -Name:'managedPipelineMode' -Value:Classic
Run Code Online (Sandbox Code Playgroud)
请注意 Classic 上缺少引号
注意:我更喜欢专门调用参数名称,这样以后就不会混淆,并且如果他们更新/更改命令,就不会发生奇怪的事情
我还使用冒号绑定运算符。这非常清楚地表明该值属于该名称的参数。
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |