2016-04-05 499 views
1
how to run a batch file from java using administrator privileges? 

私はこれをやろうとしています。しかし、コードは機能していません。管理者権限を使用してJavaからバッチファイルを実行するにはどうすればよいですか?

String cmd = "runas /profile /user:Administrator /cmd.exe /C certutil -addstore ROOT E:\\WORK\\UI\\DesktopRecorder\\userdata\\certgen\\X509CA\\ca\\new_ca.crt"; 

Runtime run = Runtime.getRuntime(); 
Process process = run.exec(cmd); 
+1

ここをクリックしてください:http://stackoverflow.com/questions/19037339/run-java-file-as-administrator-with-full-privileges – DevilsHnd

答えて

0

runasは、二重引用符で囲まれたメイン入力パラメータを必要とします。キッカーは、あなたがそれにスペースをコマンド文字列を渡す場合cmd.exeのは、あまりにもないということですので、あなたは、Windowsのコマンドプロンプト上で、それが機能するためにエスケープ文字を使用する必要があります:

runas /profile /user:Administrator "cmd.exe /C \"certutil -addstore ROOT E:\\WORK\\UI\\DesktopRecorder\\userdata\\certgen\\X509CA\\ca\\new_ca.crt\"" 

あなたが希望それはあなたのJavaコードで動作するため、再びをその文字列全体をエスケープする必要があります。ネストされたCMD呼び出しでrunasコマンドで時々

String cmd = "runas /profile /user:Administrator \"cmd.exe /C \\\"certutil -addstore ROOT E:\\\\WORK\\\\UI\\\\DesktopRecorder\\\\userdata\\\\certgen\\\\X509CA\\\\ca\\\\new_ca.crt\\\"\""; 

、あなたは、バックスラッシュ\文字をエスケープする必要はありません、もしそう失敗した場合、4つのバックスラッシュのシーケンスを2つのものに置き換えてみてください。がんばろう!

関連する問題