编译已安装软件列表时,卸载注册表项中的条目重复

时间:2010-04-14 17:18:04

标签: windows registry install

我正在尝试在工作站上编译已安装软件的列表。经过一些研究后,我决定使用以下注册表项中的信息来编译列表。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

它是一个很好的来源,它还列出了使用Win32_Products WMI Class未列出的项目。我遇到的一个怪癖是,在不同的注册表项下记录了一些具有相同显示名称的“重复”条目。例如,以下是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。我读过这是因为应用程序和补丁程序的部署方法不同。这是真的?更重要的是,

  • 这两个条目中哪一个有效? (或更有效?)
  • 添加/删除程序列表使用哪一个?
  • 两个键的信息是否合并?如果是这样,怎么样?
  • 任何其他提示/提示/建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

我找到了答案。虽然不确定它是否100%正确。其次,上面的注册表项具有“SystemComponent”= dword:00000001“注册表值。此值用于隐藏ARP(添加/删除程序)中的项目。 我可以忽略任何包含此值的注册表项。它似乎工作到目前为止。第二个注册表项确实包含一些有用的信息,所以我不确定它是如何合并的,但到目前为止这个列表还可以。

相关问题