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

Ich versuche, dies zu tun.Aus Code funktioniert nicht.Wie starte ich eine Batch-Datei von Java mit Administratorrechten?

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

Werfen Sie einen Blick hier: http://stackoverflow.com/questions/19037339/run-java-file-as-administrator-with-full-privileges – DevilsHnd

Antwort

0

runas benötigt seinen Haupteingabeparameter in doppelte Anführungszeichen gekapselt. Der Kicker ist, dass cmd.exe tut auch, wenn Sie es eine Befehlszeichenfolge mit Leerzeichen sind vorbei, so werden Sie Escape-Zeichen verwenden müssen, um es auf die Fenster-Eingabeaufforderung zu arbeiten:

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

Sie würden dann die gesamte Zeichenfolge entkommen müssen wieder für sie in Ihrem Java-Code zu arbeiten:

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

Manchmal in runas mit einem verschachtelten cmd Aufruf, Sie müssen nicht die umgekehrten Schrägstrich \ Escape-Zeichen, also wenn die schlägt fehl, möchten Sie vielleicht versuchen, die Folgen von vier umgekehrten Schrägstrichen durch zwei zu ersetzen. Viel Glück!

Verwandte Themen