|
1
34
用户特定设置应写入hkcu\software,机器特定设置写入hklm\software。在这些键下,结构
很多(大多数?)应用程序还将其卸载项添加到
这些是最重要的项;但是,注册表的内容不必准确地表示安装的软件-可能应用程序安装了一次,但随后被手动删除,或者卸载程序没有删除所有跟踪。如果您想确定,请检查文件系统,看看应用程序是否仍然存在于其注册表项所说的位置。 编辑:
如果您是组管理员的成员,可以检查
注意:正如@brian ensink所说,“installed”是一个模糊的概念——我们是否试图找到用户可以运行的内容?有些软件甚至根本不写入注册表:搜索“便携式应用”,查看专门修改为直接从媒体(CD/USB)运行的应用,以及
不
在计算机上留下任何痕迹。我们可能还需要扫描磁盘、网络磁盘以及用户下载的任何内容,以及互联网上可访问的Windows共享内容(是的,这些内容是合法存在的)-
|
|
|
2
36
在64位系统上,x64密钥是:
大多数程序都列在那里。看看钥匙:
请注意,最后一个并不总是设置的! 在64位系统上,x86密钥(通常包含更多条目)是:
|
|
|
3
9
可以使用msi api枚举Windows Installer安装的所有内容,但这不会列出计算机上所有可用的软件。在不了解您需要什么的情况下,我认为“已安装”的概念有点模糊。有很多方法可以将软件部署到系统中,从大型复杂的安装程序到zip文件,以及两者之间的一切。 |
|
|
4
6
应用程序不需要任何注册表项。实际上,许多应用程序根本不需要安装。U3 U盘就是一个很好的例子;上面的程序只是从文件系统运行的。 如前所述,大多数好的应用程序都可以通过它们的uninstall注册表项找到。这实际上是一对密钥,每个用户和每台机器(hkcu/hklm-piskvor只提到了hklm-one)。不过,它并不(总是)提供安装目录。
如果在香港大学,那么你必须意识到
即使安装了应用程序,并且您知道在哪里,它也可能没有您所拥有的相同的“版本”概念。最好的来源是可执行文件中的“版本”资源。这确实是一个复数形式,所以你必须找到所有的版本,从所有版本中提取版本资源,并且在冲突发生时决定一些合理的东西。 所以-祝你好运。失败的方法有很多种。 |
|
|
5
2
您可以使用PowerShell脚本查看寄存器并获取安装的程序详细信息。下面的脚本将生成一个包含已安装程序完整列表的文件。用扩展名“.ps”保存并双击该文件。
|
|
|
6
1
除了上面提到的所有注册表项外,您还可能需要查看hkey_current_user\software\microsoft\installer\products中仅为当前用户安装的程序。 |
|
|
7
0
似乎寻找特定于已安装程序的功能会更好,但是hkcu\software和hklm\software是要寻找的地方。 |
|
|
8
0
win32_产品从不显示所有内容,只显示通过msi安装程序安装的软件(据我所知)。 有很多软件包是通过其他安装程序安装的,但没有出现在那里。需要另一种方法。 |
|
|
9
0
hkey_current_user\software\microsoft\windows nt\currentversion\appcompatflags\compatibility assistant\persisted |