簡體   English   中英

Java與WMI的互操作

[英]Java interoperation with WMI

我有一個問題wmi4java lib:它可以連接到遠程Win機器並在那里運行WMI查詢嗎? 搜索了文檔,甚至查看了主類的源代碼,沒有發現任何指向身份驗證的遠程連接的信息。

github頁面未提供有關連接到遠程計算機的示例: https : //github.com/profesorfalken/WMI4Java

WMI4Java類的Javadoc僅提及localhost:

https://jar-download.com/java-documentation-javadoc.php?a=WMI4Java&g=com.profesorfalken&v=1.6

例如:WMI4Java.get()。computerName(“。”)。namespace(“ root / cimv2”)。getWMIObject(“ Win32_BaseBoard”);

如果我指定另一個主機(又名computerName(“ 10.10.172.214”)...),則顯然會引發異常,因為它找不到憑據。

我知道此庫在內部使用jPowerShell,因此必須有一種方法。 謝謝。

通過getRawWMIObjectOutput調用找到方法。 這是不理想的,因為它看起來並不優雅,並且您將獲得輸出為字符串而不是整潔的屬性映射。 但是無論如何,它是:

_log.info("\n-- Get raw output in String format on remote host (Win32_Process) --\n");
wmiObjectPropsRaw = WMI4Java.get()
    .computerName("10.10.172.214")
    .namespace("root/cimv2")
    .filters(Arrays.asList("$_.Name -eq \"lsass.exe\""))
    .getRawWMIObjectOutput(
       "Win32_Process" 
        + " -Impersonation 3" 
        +  " -Credential (new-object -typename System.Management.Automation.PSCredential"
            + " -argumentlist Administrator, " 
            + " (ConvertTo-SecureString Sysdreamworks123 -AsPlainText -Force))");
_log.info(wmiObjectPropsRaw + "\n");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM