der Befehl "runas"

Kampfzwereg

Bekanntes Mitglied
Hallo ,
ich hab schon bei google und hier im Forum gesucht, bin aber auf nichts produktives gestoßen was funktioniert hat -.-' . Auch im chat konnte mir keiner weiterhelfen.
Also ich würde gerne aus meinem Java-Programm heraus ein anderes Programm starten. Dazu bin ich halt auf den Befehl runas gestoßen. Das Programm wollte ich dann mittels Button aufrufen.

1)Es passiert nix beim Betätigen des Buttons. Der pfad muss aber stimmen, da ich das Programm mit cmd und dem gleichen Pfad starten kann.
2)Er verlangt immer ein Password, dass könnte auch der Grund sein, warum nichts passiert weil er auf eine Passwordeingabe wartet. Ich hab im Internet gesucht, ob es einen Parameter gibt, wo man das password eingeben kann, hab aber nix gefunden, was funktioniert hat.
3)Ich möchte, dass er das Programm sinlence startet. Das macht er auch nicht, wenn ichs bei cmd eingebe.

Java:
Process p = Runtime.getRuntime().exec( "runas /user:Beispieluser \"M:/Beispielprog/BEISPIELPROG.exe\"-s");
Hoffe es kann mir jemand helfen.

Lg Kampfzwereg
 
G

Gast2

Gast
1) Du musst exec ein Array übergeben, sowas wie ("runas", "user:Beispieluser", ...).
2) Das Passwort (inkl. Enter) könntest du unter Umständen über den OutputStream des Prozesses rausschicken.
 

tfa

Top Contributor
Dem runas-Programm kann man kein Passwort an der Kommandozeile übergeben:Runas
Vielleicht kannst du was mit der /savecred-Option anfangen.
 

Kampfzwereg

Bekanntes Mitglied
Du musst exec ein Array übergeben, sowas wie ("runas", "user:Beispieluser", ...).


So?Das hatte ich vorher da stehen.

Java:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(new String[] { "K:/Webcamshot/WEBCAMSHOT.exe", "-s" });

Ja das funktioniert dann auch . Also ich sehe, wie sich das programm öffnet. Aber das Programm macht nix, da ich es als Admin ausführen muss. Selbst wenn ich draufklicke funktioneirt das nicht , ich muss es immer als Admin ausführen.

Das Passwort (inkl. Enter) könntest du unter Umständen über den OutputStream des Prozesses rausschicken.

okaaay. und wie würd sowas im Prinzip funktionieren? Man sagt dem programm es sol das Password und enter bei der PWAbfrage schreiben?...das würd ja nich gehen, wenn ich es silence ausführen will oder?
 
G

Gast2

Gast
Ja, du musst das Programm dann natürlich noch mit runas starten:
Java:
Process process = runtime.exec(new String[] { "runas", "/user:Username", "K:/Webcamshot/WEBCAMSHOT.exe", "-s" });
So könnte das vllt klappen.

EDIT:
Wie erfolgt denn die Eingabe des Passworts? Über die Konsole?
 

Kampfzwereg

Bekanntes Mitglied
ja wie gesagt, ich glaube das klappt auch so, wie du es jetzt gepostet hats nur das mit pw is das Prob. Wenn ich den Befehl runas+Parameter(Pfad und user) bei cmd eingebe kommt in der nächste Zeile erst ne PW abfrage . dass kann ich dann eingeben, enter und das Prog startet.
 
G

Gast2

Gast
Wenns über die Konsole eingegeben wird dann solltest du mal versuchen das Passwort auf dem OutputStream zu schreiben. An den kommst du über
Code:
process.getOutputStream()
ran.
 

Kampfzwereg

Bekanntes Mitglied
also quasie so, dass ich meine Prog nicht sage, dass es das Progmramm öffnen soll, sonder cmd starten soll und da dann einfach den Befehl zum öffnen eingeben soll um das Programm dann zu starten?
 
G

Gast2

Gast
Nein, du startest runas ganz normal und schreibst dann dein Passwort rein. Wenn das nicht klappt dann über den Umweg cmd.
 

Kampfzwereg

Bekanntes Mitglied
ok ich machs jetzt eifnach mal so , dass ich cmd öffne
Java:
Process process = new ProcessBuilder(new String[] { "cmd", "/C","start", "cmd" }).start();
und ichm sage er soll das Prog starten und ihm dann noch das pw sage. Ich glaub da ist die Wahrscheinlichkeit höher, dass es funzt.
Du meintest das geht mit dem OutputStream. Wahrscheinlich ist das so ähnliuch wie mit dme FileWriter oder? Du erstellst nen fw, der erzeugt ne neue File, und mit write schreibste da was rein. Gibts da speziell für cmd auch nommal was oder ist das der OutputStream. Wenn ja hasste dafür nen tutorial ?
 

r.w.

Bekanntes Mitglied
Eine Alternative wäre psexec.exe.

Damit kannst Du nicht nur das Kennwort als Parameter übergeben,
sondern sogar Programme auf anderen Rechnern im Netz starten.

Auch sehr nützlich in der Administration zur Skript gesteuerten
Silent-Installation von Programmen. :)

VG ROlf
 

irgendjemand

Top Contributor
eine weitere *wohlmöglich overkill* variante wäre deine app in ein JAR zu packen ... und dieses dann mit Launch4J zu ner exe zu wrappen ...
dabei kann man auch gleich ein manifest mit einbauen lassen was dann UAC automatisch triggert ... und somit deine gesamte app als "admin" läuft was auch an sub-prozesses vererbt wird
 

Kampfzwereg

Bekanntes Mitglied
@ r.w. : jo das wer ich auch nochmal testen. danke .

@irgendjemand : danke erstmal für die antwort aber ich vbersteh leider kein wort, das nächste mal den Beitrag bitte fachwortarm halten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
J CMD Befehl in Java Consolenprogramm ausführen Allgemeine Java-Themen 6
T Konsolen-Befehl junk Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
F Create Befehl mit variierender Spaltenanzahl/Spaltenname Allgemeine Java-Themen 5
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
D Klassenübergreifender Befehl geht nicht Allgemeine Java-Themen 10
T DLL Befehl Funktionsparameter Allgemeine Java-Themen 6
H FTP Befehl/Java Methode für Submit im z/Os (Host) Allgemeine Java-Themen 1
B Zeitmessen Befehl sende und empfagen Allgemeine Java-Themen 10
G Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei Allgemeine Java-Themen 3
J java zurück befehl Allgemeine Java-Themen 18
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
T Java Programm als Batch Befehl Allgemeine Java-Themen 6
Jats Programm mit CMD Befehl hängt sich auf oder gibt error = 5 aus Allgemeine Java-Themen 4
B UNIX Shell befehl über JavaCode ausführen Allgemeine Java-Themen 19
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
S Shell-Befehl: mail Allgemeine Java-Themen 6
M String in Befehl umwandeln Allgemeine Java-Themen 10
S Überprüfen, ob ein Shell Befehl existiert! Allgemeine Java-Themen 4
G CMD befehl: BAT erstellen, reinschreiben und starten? Allgemeine Java-Themen 12
S Suche Pendant zu einem VB Befehl Allgemeine Java-Themen 2
P SQL Befehl Allgemeine Java-Themen 15
G Befehl an OS X cmd Allgemeine Java-Themen 7
L mit exec() befehl ausführen ( OS X / Linux) Allgemeine Java-Themen 8
T jar mit Befehl zur Vergrößerung des VM-Speichers Allgemeine Java-Themen 11
S mit welchem befehl kann ich mein programm autom. schließen Allgemeine Java-Themen 3
A Zusammenfassen von zwei Dateien (wie beim DOS-Befehl copy) Allgemeine Java-Themen 6
S String als Befehl interpretieren Allgemeine Java-Themen 2
S GetColor? anderer befehl Allgemeine Java-Themen 13
M Methode x mal ausführen auf Befehl Allgemeine Java-Themen 7
L linux befehl aus java programm starten Allgemeine Java-Themen 7
M Unter MacOS einen Befehl auf Konsole ausführen? Allgemeine Java-Themen 6
G JDK Version - exec Befehl Allgemeine Java-Themen 3
M Befehl unter Win98 ausführen? Allgemeine Java-Themen 3
M Befehl aus Anwendung starten Allgemeine Java-Themen 7
C shell befehl mit java ein- und auslesen Allgemeine Java-Themen 2
B befehl "java" wird nicht gefunden Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben