gpt4 book ai didi

perl - Win32_Product 是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 05:43:31 25 4
gpt4 key购买 nike

在从事审计项目时,我遇到了有关软件和许可证的不同问题。我的项目使用 Perl 在 Linux 上运行,我通过 SNMP 和 WMI 成功地重试了远程机器软件。最大的问题是这两种协议(protocol)返回的结果完全不同。例如,一个人可能会找到一个程序,而另一个人可能找不到,反之亦然。

我知道 SNMP 检索具有相关卸载 key 的软件(如果我错了,请纠正我):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall



但是 Win32_Product 呢? ?这就是文档所说的:

The Win32_Product WMI class represents products as they are installed by Windows Installer. A product generally correlates to one installation package.



这意味着什么?最后但并非最不重要的一点是,有没有办法改进已安装软件的检索方式?我的意思是,如果我从控制面板查看已安装的软件并使用 SNMP 和 WMI 来处理结果,就会发现很多奇怪的东西。

编辑:只是一个快速更新,我用 .NET C# 开发了几个程序,我安装在许多计算机上。太糟糕了,WMI 和 SNMP 都没有发现它们。我使用通常的 Visual Studio 生成的设置安装了这些程序。有什么提示吗?

最佳答案

人们基本上使用WMI来查询各种系统参数。 WMI 公开了许多可以利用的接口(interface)。它主要与 VBScript 一起使用,但也可以使用 C++/COM 或 C# 与之交互。 This Wikipedia article可以给你一个关于WMI的详细解释,然后你就可以理解Win32_Product Class是做什么的了。 This is another great article对于开始使用 WMI 的人来说,这是一本必读的书。

还要仔细阅读这些文章:

Retrieving a CLASS

Retrieving an Instance

Retrieving part of an Instance

Accessing a Qualifier



这些文章将使您对 WMI 概念有一个很好的理解。

就 Windows 安装程序而言:

Windows 安装程序基于服务器-客户端架构。 Windows 安装程序实际上是一个 Windows 服务。 Windows 安装程序支持的各种功能使其成为最标准的应用程序生命周期管理方法。带有 .msi 扩展名的 Basic MSI(没有任何基本内容)包用于打包和分发应用程序。

Basic MSI 包基本上是一个数据库。应用程序二进制文件和其他东西可以打包为 CAB 文件并包含在 MSI 包中,也可以存在于它之外。

这称为 TRANSACTIONAL 安装方法。应用程序打包开发人员只需填写数据库中的各种表,Windows Installer 引擎会处理其他所有事情。这可能看起来或听起来很容易,但非常困难并且需要大量知识。

当应用程序安装到任何系统上时,Windows Installer 会写入正确管理安装到系统上的所有资源所需的所有注册表项。由于应用程序的生命周期由 Windows Installer 管理,因此它可以轻松支持:

1) Repair

2) Resilience



一旦你经历了这一切,你可能对你案件所涉及的所有各方都有一个更好的了解。然后你会有更清晰的问题(或者可能没有!),我们可以更好地帮助你(或者你可能根本不需要它!)。

关于perl - Win32_Product 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com