2016-04-05 6 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 делает слишком, если вы передаете ему командную строку с пробелами, так что вам придется использовать управляющие символы для того, чтобы работать на окна командной строки:

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

Вы бы то есть, чтобы избежать этого всей строки снова для того, чтобы работать в коде Java:

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

Иногда в RunAs с вложенным вызовом CMD, вам не нужно, чтобы избежать обратных косых черт \ символов, так что если сбой, вы можете попробовать заменить последовательности четырех обратных косых черт на два. Удачи!