我正在尝试编译工作站上安装的软件列表。经过一些研究,我决定使用以下注册表键中的信息来编译列表。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
它是一个很好的资源,它还列出了一些没有使用Win32_Products WMI类列出的项目。我遇到的一个怪癖是,在不同的注册表键下记录了一些具有相同显示名称的“重复”条目。例如,这是Windows Media Player的键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Windows Media Player]
"DisplayName"="Windows Media Player 11"
"UninstallString"="\"C:\\Program Files\\Windows Media Player\\Setup_wm.exe\" /Uninstall"
"DisplayIcon"="C:\\Program Files\\Windows Media Player\\wmplayer.exe"
"ParentKeyName"=""
"ParentDisplayName"=""
"NoModify"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\wmp11]
"DisplayName"="Windows Media Player 11"
"UninstallString"="\"C:\\WINDOWS\\$NtUninstallwmp11$\\spuninst\\spuninst.exe\""
"TSAware"=dword:00000001
"NoModify"=dword:00000001
"InstallDate"="20090325"
"Publisher"="Microsoft Corporation"
"NoRepair"=dword:00000001
"HelpLink"="http:"
"URLInfoAbout"="http:"
"SystemComponent"=dword:00000001
这种情况也有类似的,还有一些条目是应用程序的GUID。我读到说这是由于应用程序和补丁部署的不同方法造成的。这是真的吗?更重要的是:
- 这两个条目中哪个是有效的?(或者更有效?)
- 添加/删除程序列表使用哪一个?
- 这两个键的信息是否合并?如果是,如何合并?
- 有其他提示/建议吗?
谢谢!