是否存在在Java中使用WMI类的方法?

6 投票
7 回答
13334 浏览
提问于 2025-04-16 19:14

你好,我想用WMI类来查找应用程序和产品的信息。但是我遇到的问题是,我想用Java或者其他脚本语言,比如Python、JavaScript或者Perl。我听说过JWMI,这可能是一个选择。有没有人能帮我解决这个问题呢??

7 个回答

2

我已经成功通过JACOB使用了WMI。

2

对于脚本语言:下载 Scriptomatic 2.0,让这个向导为你生成VBScript、JScript、Perl和Python的WMI代码。这里有一个类似的工具可以用在Powershell上。

7

JavaScript和Java不是同一种东西。

JavaScript

JavaScript可以在Windows脚本主机(WSH)下使用。用它可以很方便地访问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是微软实现的基于网络的企业管理(WBEM)。还有一个Java实现的通用WBEM,在某种程度上与WMI兼容。

这可能是你能找到的最完整的真正的Java实现。如果你的需求超过了简单的脚本(比如实现一个WBEM/WMI提供者),那么你可能需要考虑这个选项。

撰写回答