注册表项:PowerShell与RegEdit不同

注册表项:PowerShell与RegEdit不同,powershell,registry,regedit,Powershell,Registry,Regedit,当我询问我的注册表时,我会得到不同的结果,这取决于所使用的方法。为什么会这样?这是32位v64位的骗局吗?如何通过PowerShell获取RegEdit答案 方法1-RegEdit 如果我在RegEdit.exe中浏览到HKLM\SOFTWARE,我会看到一个子键列表,从以下开始: 7-Zip Alps 方法2-PowerShell ForEach-Object{Get-ChildItem -Path 'HKLM:\SOFTWARE'} | Select PSChildName 生成一个列

当我询问我的注册表时,我会得到不同的结果,这取决于所使用的方法。为什么会这样?这是32位v64位的骗局吗?如何通过PowerShell获取RegEdit答案

方法1-RegEdit

如果我在RegEdit.exe中浏览到HKLM\SOFTWARE,我会看到一个子键列表,从以下开始:

7-Zip
Alps 
方法2-PowerShell

ForEach-Object{Get-ChildItem -Path 'HKLM:\SOFTWARE'} | Select PSChildName
生成一个列表,从以下内容开始:

Adobe
ATI
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
HKEY_LOCAL_MACHINE\SOFTWARE\ATI
方法3-注册查询

为了好玩,我尝试了第三种方法,这是我在查找堆栈溢出时发现的:

reg query hklm\SOFTWARE
返回一个列表,以以下内容开头:

Adobe
ATI
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
HKEY_LOCAL_MACHINE\SOFTWARE\ATI

归功于user3211152和Matt


我可以在
HKLM\Software\WOW6432Node
下看到32位键。但同时,我发现我在Windows PowerShell ISE(x86)shell中运行PowerShell。当我切换到Windows PowerShell ISE shell时,我可以看到其他数据(即与我问题中的RegEdit示例相同)。

有一个单独的32/64注册表,其中某些键共享到这两个注册表中。还要检查您是否正在为3种方法中的每种方法运行administrator。Regedit组合了32位和64位注册表项。您可以通过查询
HKLM\software\WOW6432Node
来访问reg或powershell上的32位应用程序。请看这里,我想这也取决于您正在运行的shell。我建议使用powershell的32位和64位外壳进行测试。