如何从Linux查询Windows注册表项?

时间:2011-11-17 13:49:16

标签: linux perl registry wmi auditing

我正在开发一个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无法查询注册表项,那我该怎么办?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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