PowerShell Set-ItemProperty与点设置属性

时间:2015-03-12 17:45:57

标签: powershell powershell-v2.0

我正在尝试使用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-Itemsee sample)。

2 个答案:

答案 0 :(得分:2)

您正在处理该应用池的表示。如果检查该对象的类型,则会获得配置元素。因此,在设置之后,您需要使用PS {3.0及更高版本中提供的$pool | Set-Item推回设置。否则,您唯一的选择是Set-ItemProperty

答案 1 :(得分:-2)

没有区别。在第一个中,您通过管道和设置对象属性的命令行开关将对象传递给Set-ItemProperty命令行开关。

第二个你直接在对象上设置它。但它们在功能上是相同的。使用第二个,您还可以检索属性的值,如下所示:

$value = $pool.managedRuntimeVersion