Powershell get-itemproperty报告项不存在';不存在,当它存在的时候

Powershell get-itemproperty报告项不存在';不存在,当它存在的时候,powershell,registry,uninstallation,Powershell,Registry,Uninstallation,我在使用以下工具获取REG_SZ值时遇到一些奇怪的问题: (获取项目属性-路径“注册表::HKEY\U LOCAL\U MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player”-名称卸载字符串)。卸载字符串 (get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\U

我在使用以下工具获取
REG_SZ
值时遇到一些奇怪的问题:

(获取项目属性-路径“注册表::HKEY\U LOCAL\U MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player”-名称卸载字符串)。卸载字符串

(get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" -Name UninstallString).UninstallString

get-itemproperty : Cannot find path 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player' because it
does not exist.
At line:1 char:2
+ (get-itemproperty -Path "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (HKEY_LOCAL_MACH...LC media player:String) [Get-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
此方法适用于另一个
REG_SZ
,没有问题,但是当我调用下面的许多键
Uninstall
时,它失败了

具体而言,它与:

(获取itemproperty-路径“注册表::HKEY\U当前用户\Software\Microsoft\Command Processor”-名称自动运行)。自动运行

这两个数据项都存在于我的系统中,在regedit中可见

然而,非常有趣的是,它们并不存在于以下结果中:

Get-ChildItem "Registry::HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\uninstall\"
还有几把“丢失”的钥匙。这似乎是我不熟悉的一些奇怪的注册表命名空间虚拟化(类似于HKEY_CLASSES_ROOT)?

它讨论了

在这种情况下,由于键“丢失”,因此必须检查其他路径(请注意,在尝试任何“可出错”操作之前,我应该在条件中使用
testpath
检查路径)

所以,我必须运行32位powershell.exe

PS > [Environment]::Is64BitProcess
False 
另外,
HKEY\u CLASSES\u ROOT\Installer\Products
是另一个列出Windows安装程序安装程序的位置

。我必须让它更容易接近

另外,我正在MacBookPro上的训练营上运行Windows7。奇怪的是,不管我执行的是什么powershell.exe,它都是32位的。无论位置是否在
wow6432节点下方
,我都无法看到注册表项

PS > [Environment]::Is64BitProcess
False