2010-08-20 19 views
1

我正在嘗試編寫一個Java應用程序,它將查詢域中的Windows主機上的WMI以獲取其MAC地址和DNS名稱。我可以通過exec或者使用我在互聯網上找到的幾個罐子來運行腳本,但是我沒有看到允許我在運行查詢時模擬AD帳戶。作爲特定用戶訪問WMI的Java

我希望能夠指定查詢運行的帳戶(該域的管理員),該程序可能運行在不在域中的計算機上,或者可能有兩個域將被查詢。

我已經看過JACOB和com4J,但是找不到一個模仿的例子。

而且我不這麼道歉,如果我錯過了什麼昭然若揭

預先感謝任何手段的高級程序員。

回答

1

如果您使用SWbemLocatorConnectServer方法,您可以指定用戶名和密碼以連接到另一臺機器。但是,您不能使用此方法連接到運行代碼的計算機。

如果您只是調用腳本,請考慮使用Python。有一個很好的例子,如何在wmi Cookbook

+0

我從來沒有使用巨蟒在所有,但它是一個選項,虐待嘗試使用SWbemLocator並張貼我的身體情況如何 - 三江源 – fingletoe 2010-08-20 10:52:04

+0

非常感謝你 - 用SWbemLocator並改變了我的測試應用程序,並可以使用AD帳戶查詢並通過。 – fingletoe 2010-08-20 11:48:07

0

中使用python執行此操作可以通過調用runas來包裝exec命令行,該命令將以指定用戶身份運行該命令。

+0

我嘗試使用runas,但它只允許您保存憑據,或者在執行runas時輸入它們,但無法解決傳遞密碼的方式,而且我讀取的一篇文章暗示您實際上無法通過設計運行時的密碼。 – fingletoe 2010-08-20 10:50:17

+0

有一個nlr軟件的替代品,'runnas'允許您將憑證保存到文件。 – mdma 2011-04-07 00:28:23