我在获取注册表项的完整路径时遇到问题,因为除了版本之外,98%的路径都是这样。
我尝试过但没有成功的是:
(Get-Item -Path "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallMaxon Cinema 4D R*").FullName
-这将适用于文件/文件夹路径,但不适用于注册表。
像这样使用"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallMaxon Cinema 4D R*"
也不起作用。我还尝试了一些get-item/get-childitem/full-path/literalpath的变体,但没有成功。
Get-ItemProperty "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionUninstallMaxon Cinema 4D R*" | Select-Object "Uninstallstring"
-这将得到Object,但我不知道如何只得到路径并排除"@{UninstallString="从字符串。
我搜索的结果是:"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallMaxon Cinema 4D R25"
,但版本可能不同,可以是22或24或其他什么。更具体地说,我正在尝试获取Maxon Cinema 4d的卸载字符串值,如果我能获得注册表项的全名,我就能找到它。
Get-ItemProperty
为您提供了比"UninstallString"更多的属性。
$result = Get-ItemProperty "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionUninstallMaxon Cinema 4D R*" | Select-Object PSPath, Uninstallstring
现在$result将是单个对象,或者是具有两个属性的对象数组。
如果你用$result | Format-Table -AutoSize
把它输出到控制台,你会看到里面有什么
你可以像一样简单地获得这些属性的价值
$result[0].PSPath
$result[0].UninstallString