在从事审计项目时,我遇到了有关软件和许可证的不同问题。我的项目使用 Perl 在 Linux 上运行,我通过 SNMP 和 WMI 成功地重试了远程机器软件。最大的问题是这两种协议返回的结果完全不同。例如,一个人可能会找到一个程序,而另一个人可能找不到,反之亦然。
我知道 SNMP 检索具有相关卸载密钥的软件(如果我错了,请纠正我):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
但是Win32_Product呢?这就是文档所说的:
Win32_Product WMI 类表示由 Windows Installer 安装的产品。一个产品通常与一个安装包相关联。
这意味着什么?最后但并非最不重要的一点是,有没有办法改进已安装软件的检索方式?我的意思是,如果我从控制面板查看已安装的软件并使用 SNMP 和 WMI 处理结果,就会发现很多奇怪的东西。
编辑:只是一个快速更新,我用 .NET C# 开发了几个程序,我安装在许多计算机上。太糟糕了,WMI 和 SNMP 都没有发现它们。我使用通常的 Visual Studio 生成的设置安装了这些程序。有什么提示吗?