有没有一种方法可以在Java中使用WMI类


问题内容

嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗???


问题答案:

JavaScript和Java不是一回事。

JavaScript

Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易:

var loc = new ActiveXObject("WbemScripting.SWbemLocator");
var svc = loc.ConnectServer(".", "root\\cimv2");
coll = svc.ExecQuery("select * from Win32_Process");
var items = new Enumerator(coll);

while ( !items.atEnd() )
{
    WScript.Echo(items.item().Name);
    items.moveNext();
}

jWMI(Java)

jWMI是一个小型库,使Java能够进行常规WMI查询。似乎在这里可用

http://henryranch.net/software/jwmi-query-windows-wmi-from-
java/

它似乎也易于使用(尽管我不确定它的功能是否强大或完整):

String name = getWMIValue("Select Name from Win32_ComputerSystem", "Name");

WBEM(Java)

WMI是 基于Web的企业管理
(WBEM)的Microsoft实现。还有通用WBEMJava实现,它将在某种程度上与WMI兼容。

这可能是您将找到的最完整的真正Java实现。如果您的需求超出了微小的脚本编写(例如实现WBEM / WMI提供程序),那么您可能需要研究此选项。