我正在开发一个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查询吗?
编辑:刚在网站上发现:
WQL查询基于某些提供一组属性的WMI类。 相反,WMI注册表操作基于“默认”命名空间中的“StdRegProv”,并且必须调用某些方法才能获得结果。这意味着无法使用基于WMI过滤器的注册表查询。
所以看起来WQL无法查询注册表项,那我该怎么办?有什么想法吗?