Powershell Get-ItemProperty根据32或64位操作系统返回不同的数据

时间:2016-06-02 13:44:37

标签: powershell

我在这个论坛上的第一个问题,请原谅任何错误等。

我正在编写一个需要在32位和64位操作系统上运行的PowerShell脚本。这本身不是问题,因为我可以很容易地识别这两种架构。当我在注册表上发出“Get-ItemProperty”命令时出现问题。对于32位操作系统,我在实际需要的数据之前得到四行不需要的数据,即PSPath,PAParentPath,PSChildName& PSProvider。 64位操作系统上的相同命令问题会在我的数据之后放置相同的数据。编写了一些PS脚本到“Select-Object -last 1”以从最后一行的末尾获得数据位,这在32位机器上完美运行后我发现所有内容都在64位机器上反转,PS脚本不再工作。我尝试过使用“Select-Object First 1”,但这只返回数据行的第一部分,如果我将值更改为2,那么我得到了所有内容。那么,有没有办法收集整个第一行或停止“Get-ItemProperty”返回所有不需要的行? 我希望所有这些都有意义吗? 提前致谢 MrMackyD

2 个答案:

答案 0 :(得分:0)

也许我在这里忽略了一些东西,但不应该

 Get-ItemProperty <item> | Select-Object PSPath,PAParentPath,PSChildName,PSProvider

在这两种情况下工作都很好吗?

答案 1 :(得分:0)

你真正想要的数据是什么?你能直接选择吗?例如,(gp Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion).DevicePath直接读取DevicePath条目,忽略PowerShell添加的PS*属性。

您的问题不是很多,而是忽略了特定于PowerShell的属性。