我正在尝试使用PowerShell(版本2)设置ApplicationPool的属性 (如果重要的话,我有一台Windows 7 64位机器)
我看到this example使用Set-ItemProperty而this example使用点.
来设置对象/元素的属性:
$pool | Set-ItemProperty -Name "managedRuntimeVersion" -Value "v4.0"
与
$pool.managedRuntimeVersion = "v4.0"
那有什么区别?我认为第二个更具可读性,但我不知道其含义是什么。
修改
我注意到(至少在这种情况下)存在差异,Set-ItemProperty
确实直接保存属性的值,而另一个方法确实设置了值(在调试时),但之后不保存它。 我还没发现为什么会这样。 (你需要调用save或commit之类的东西吗?)请参阅@moonstom的答案,对于Powershell 2.0 Set-ItemProperty
是Powershell 3+的唯一方法或$pool | Set-Item
( see sample)。
答案 0 :(得分:2)
您正在处理该应用池的表示。如果检查该对象的类型,则会获得配置元素。因此,在设置之后,您需要使用PS {3.0及更高版本中提供的$pool | Set-Item
推回设置。否则,您唯一的选择是Set-ItemProperty
答案 1 :(得分:-2)
没有区别。在第一个中,您通过管道和设置对象属性的命令行开关将对象传递给Set-ItemProperty命令行开关。
第二个你直接在对象上设置它。但它们在功能上是相同的。使用第二个,您还可以检索属性的值,如下所示:
$value = $pool.managedRuntimeVersion