PowerShell Set-ItemProperty与点设置属性

PowerShell Set-ItemProperty vs. dot to set a property

我正在尝试使用PowerShell(版本2)设置例如ApplicationPool的属性。
(如果有的话,我有一台Windows 7 64位计算机)

我看到此示例使用Set-ItemProperty,并且此示例使用点.设置对象/元素的属性:

1
$pool | Set-ItemProperty -Name"managedRuntimeVersion" -Value"v4.0"

与:

1
$pool.managedRuntimeVersion ="v4.0"

那有什么区别呢? 我认为第二个更具可读性,但是我不知道这意味着什么。

编辑:
我注意到(至少在这种情况下)存在区别,Set-ItemProperty确实直接保存了属性的值,而另一种方法确实设置了该值(在调试时),但此后没有保存。 我尚未发现为什么会发生这种情况。 (是否需要调用诸如保存或提交之类的东西?)参见@moonstom的答案,对于Powershell 2.0,Set-ItemProperty是唯一方法,对于Powershell 3+,则为$pool | Set-Item(请参见示例)。


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


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

第二个是您直接在对象上设置的。 但是它们在功能上是相同的。 对于第二个,您还可以像下面这样检索属性的值:

1
$value = $pool.managedRuntimeVersion