2014-07-19 45 views
0

我有java代碼應該停止窗口服務 當我嘗試它不需要管理員權限的其他命令的作品很好,但停止Windows服務,我要開始命令行管理員 我嘗試了示例代碼啓動記事本只是爲了檢查是否帶命令行的此次合作java的偉大工程。運行命令行中的Java管理員和停止窗口服務

String[] start = {"cmd.exe", "/c", "start", "notepad"};        

Process runtimeProcess = Runtime.getRuntime().exec(start); 
int processComplete = runtimeProcess.waitFor(); 

但如果我嘗試的命令運行命令行管理員失敗:

String[] startAsAdmin= new String [] { 
"CMD.EXE", 
"/C", 
"RUNAS /profile /user:" 
+ "administrator" 
+ " ", "start", "notepad"}; 

Process runtimeProcess = Runtime.getRuntime().exec(startAsAdmin); 
runtimeProcess.waitFor(); 

BufferedReader stdInput = new BufferedReader(new 
InputStreamReader(runtimeProcess.getInputStream())); 

BufferedReader stdError = new BufferedReader(new 
InputStreamReader(runtimeProcess.getErrorStream())); 

BufferedWriter stdOutput = new BufferedWriter(new 
OutputStreamWriter(runtimeProcess.getOutputStream())); 

讀取命令的輸出,並把我原來的密碼,需要輸入密碼時,命令行 (Zadejte heslo親管理員意味着在英語需要密碼)

System.out.println("Here is the standard output of the command:\n"); 
String s = null; 
while ((s = stdInput.readLine()) != null) { 
    System.out.println(s); 
    if (s.startsWith("Zadejte heslo pro administrator:")) { 
     stdOutput.append("password").flush(); 
    } 
} 

爲什麼,如果我把我原來的密碼命令行這樣它沒有工作?它說拒絕訪問,但確保密碼是正確的,接下來的問題是有沒有任何可能的方式,我怎麼能做到這一點,而無需在代碼中顯示我的密碼?

哦~~ SRY我現在看到烏爾更新,但它仍然沒有啓動記事本:

String[] startAsAdmin= new String [] { 
"CMD.EXE", 
"/C", 
"echo password123 | RUNAS /profile /user:" 
+ "administrator" 
+ " ", "start", "notepad"}; 

Process runtimeProcess = Runtime.getRuntime().exec(startAsAdmin); 
int processComplete = runtimeProcess.waitFor(); 

回答

1

你應該試試這個:

String[] stopAdmin= new String [] { 
    "CMD.EXE", 
    "/C", 
    "echo password123 | RUNAS /profile /user:" 
    + "administrator" 
    + " ", "net", "stop", Service_Name}; 

Process runtimeProcess = Runtime.getRuntime().exec(stopAdmin); 

希望這有助於。

+0

有沒有密碼,任何可能的解決方案所需?並且當我試圖字符串[] stopAdmin =新的String [] { \t 「CMD.EXE」, \t 「/ C」, \t 「RUNAS /簡檔/ SAVECRED /用戶:」 \t + 「管理員」 \t + 「密碼」+「開始」+「記事本」};例如,這仍然無法運行,你可以告訴我怎樣才能得到正確的密碼? – Seda

+0

我不認爲有一種方法可以在沒有密碼的情況下運行管理命令。 。最多可以使用/ savecred選項僅輸入一次密碼。請參閱更新的答案 – Sanjeev

+0

oukey感謝名單,但我還是不知道我必須輸入密碼......「管理員」 +「password123」 ?? ....因爲當我把我的真實密碼在這裏沒有作品還是我必須把它放在別的地方?或與一些空間或? – Seda