3

我正在开发一个 Linux 审计应用程序,除其他外,它必须从 Windows 机器上检索已安装的软件和许可证。应用程序必须是无代理的。wmi-client 实际上确实实现了我想要的,我尝试查询应用程序,它工作得很好:

# LAUNCHING WMIC PLUGIN 
my $cmd = "wmic -U ".$username."%".$password." //".$hostname." \"select Name, Version from Win32_Product\"";
my $output = `$cmd`;
print "INSTALLED SOFTWARE:\n";  
print "$output";

现在我的问题是,如何检索某些应用程序的产品密钥?我知道有时它们存储在注册表项中,我可以通过 WMI 查询它们吗?

编辑:刚刚在一个网站上发现:

http://social.technet.microsoft.com/Forums/en/winserverGP/thread/5cd1b80a-2f90-4d46-bf65-dba52dcf0c56

WQL 查询基于某些提供一组属性的 WMI 类。相反,WMI 注册表操作基于“默认”命名空间中的“StdRegProv”,并且必须调用某些方法才能获得结果。这意味着注册表查询基于 WMI 过滤器是不可能的。

所以看起来 WQL 无法询问注册表项,那我该怎么办?有任何想法吗?

4

1 回答 1

1

我没有在非 Windows 客户端上使用它的任何经验,但是有DBD::WMI

于 2011-11-17T16:25:32.473 回答