2014-01-31 122 views
1

我執行了netsh命令,該命令由我手動打開,通過右鍵單擊CMD圖標,然後從選項中選擇以管理員身份運行。 。現在我嘗試通過我的java代碼運行netsh命令,然後它不工作。當我運行該代碼時,沒有發生任何事情。我想要求我可以通過調用適當的方法從cmd運行應用程序,如notepad.exe我的java代碼中的運行時類,但是我怎樣才能用我的java代碼中的管理員權限來打開同一個應用程序。 r.exec("notepad");其中r是運行時類的對象引用將運行應用程序,但打開的記事本不會處於管理員模式。實際上,我猜想學習從CMD以管理員模式運行應用程序足以完成所做的工作作爲對應的CMD命令將作爲參數傳遞給exec傳遞()運行時的方法class.So我的問題是:從cmd以管理員身份通過java代碼運行應用程序

  1. 如何運行CMD與管理員privilliges Windows 8中的任何應用程序?
  2. 我想要實現netsh的使用方式是一件好事,或者有其他方法,我必須從我的java代碼中使用這些命令。
  3. 我已經看到了一些命令,而谷歌搜索,但他們在那裏不工作對我來說,就像runas /user:administrator "notepad.exe"

感謝

+0

我們可以看到有問題的代碼嗎? –

+0

[作爲管理員從Java運行Windows命令行 - 創建.manifest文件]的可能的重複(http://stackoverflow.com/questions/9539978/running-windows-commandline-from-java-as-an-administrator-creating -a-manifest) – 2014-01-31 10:59:09

回答

1

您不能使用runas /user:administrator的方法,因爲需要密碼由於安全原因,您無法從外部源(例如Java應用程序)提供的輸入。

我過去遇到類似的問題,我使用PsExec解決了問題,在管理員用戶名和密碼上運行本地主機上的進程,允許我以管理員身份執行外部應用程序。

使用您例如,你可以運行:

PsExec.exe \\\\127.0.0.1 /accepteula -u USER -p PASSWORD notepad.exe 

的「/ ACCEPTEULA」標誌防止在一臺機器上首次運行交互式接受EULA的要求。

這種方法可能需要稍微調整才能使用你的設置,但希望它能給你一個起點。

+0

謝謝,我會試試看 – nobalG

相關問題