寻找一个脚本/工具来转储Windows Server 2008 R2上已安装的功能和程序的列表

时间:2010-03-15 16:11:53

标签: windows-server-2008 windows-server-2008-r2 querying installed-applications

同样编译的.Net / C ++ / Com程序在两台看似相同的计算机上做了不同的事情。两者都安装了DOZENS的东西。我想通过查看ASCII差异来弄清楚两者之间的区别。在此之前,我需要以简单易读的格式“序列化”已安装的东西列表 - 按字母顺序排序+每行一个项目。

Python脚本是理想的,但我也安装了Perl,PowerShell。

谢谢。

4 个答案:

答案 0 :(得分:1)

您可以从注册表中获取已安装程序的列表。它位于 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall

如果这是一次性练习,您甚至可能不需要编写任何代码 - 只需使用Regedit将密钥导出到.REG文件即可。如果你想自动化它,Python提供_ winreg模块用于注册表访问。

答案 1 :(得分:1)

Microsoft提供的两种工具可能就是您所需要的: RegDump RegDiff 。您可以从various places下载它们,包括作为Microsoft Vista徽标测试工具包的一部分。

此外,还有Microsoft支持文章How to Use WinDiff to Compare Registry Files

对于Pythonic方式,here是一个ActiveState配方,用于获取特定键的所有子键的格式化输出( HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall ,例如)。

答案 2 :(得分:1)

我个人总是喜欢sysinternals的东西(强大,轻巧,实用的工具 - 无需安装)

命令行工具psinfo可以在本地或远程计算机上提供各种格式(区分修补程序和已安装的软件)(在远程时提供系统策略),可以获得您想要的(然后是一些)。

你也可以从here直播它,所以虽然不是严格的pythonic你可以很好地插上它。

答案 3 :(得分:1)

取自List installed software from the command line

  

如果要列出Windows Management已知的软件   从命令行进行Instrumentation(WMI),使用WMI命令行   (WMIC)界面。

     

要列出本地安装的所有产品,请运行以下命令   命令:

     

wmic product

警告:似乎此命令仅列出通过Windows Installer安装的软件。见Win32_Product class