Frage von Sebinator007y, 80

Process als Administrator ausführen?

Hallo liebe Community,

Ich schreibe derzeit an einem JavaFX-Programm. Dazu erstelle ich einen Process mit:

Process p = Runtime.getRuntime().exec("Kommandos kommen hier hin");

Nun möchte ich einen Befehl ausführen der aber Admin Privilegien benötigt.

Ich habe schon runas /user: probiert, doch leider ohne Erfolg denn es kommt die Meldung: RUNAS-FEHLER: kann nicht ausgeführt werden 1326: Der Benutzername oder das Kennwort ist falsch.

Obwohl der Benutzername und das Kennwort richtig wären!

Ich bin für jede Hilfe sehr dankbar.

Details: Windows 8.1 Bin als Administrator eingeloggt. Java SDK 1.8

Lg, Sebastian

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von CrystalixXx, 42

Das definierte Administrator Konto hat nicht das selbe Passwort wie das von dir eingerichtete Konto (zumindest nicht standardmäßig).

Grundsätzlich könntest du zu deiner Anwendung eine manifest-Datei anlegen, in der du höhere Rechte anforderst. Dann wird deine Anwendung mit Administrator-Rechten ausgeführt, somit auch alle anderen Anwendungen, die du aus deiner heraus startest. (Oder du erstellst eine "Starter.exe" mit dem Manifest, die du aus deinem Programm startest, damit nur "Starter.exe" die Rechte anfordert, nicht aber deine eigentliche Anwendung.)

Kommentar von Sebinator007y ,

Vielen Dank für die Antwort.

Ich hätte es gerne so:

Der Benutzer startet mein Programm. Dieses überprüft ob der angemeldete Benutzer ein Admin ist(hab ich schon programmiert). Danach wird entweder ein Fehler ausgegeben: Sie sind nicht Administrator, oder eben weiter Kommandos werden ausgeführt. Doch diese Kommandos benötigen Administrator Privilegien um sie ausführen zu können.

Das mit den Manifest-Dateien habe ich nicht ganz begriffen. Ich möchte eine .jar - Datei erstellen und keine .exe wenn das möglich ist.

Kommentar von CrystalixXx ,

Ein Programm kann während seiner Laufzeit keine höheren Rechte anfordern. Das geht nur beim Start der Anwendung.

In einer Manifest-Datei kann man zum Beispiel festlegen, welche Rechte dein Programm zum Start benötigt. Mit Hilfe des Manifest Tools lässt sich die Manifest-Datei in die ausführbare Datei einbetten. Ich weiß aber nicht, ob das auch für .jar-Dateien funktioniert, weil ich nichts mit Java zu tun habe. Du könntest aber mal hier schauen: http://stackoverflow.com/a/31046351 (ab Punkt 5).

Der /user-Parameter für runas bringt dich auch nicht unbedingt weiter, weil mit der UAC alle Konten mit eingeschränkten Rechten aktiv sind und höhere Rechte immer explizit angefordert werden. Vielleicht hilft dir /trustlevel als Parameter weiter.

Kommentar von Sebinator007y ,

Also sollte ich die .jar mit launch4j in eine exe umwandeln und dabei eine Manifest Datei integrieren?

Wäre das besser?

Kommentar von CrystalixXx ,

Womit du kompilierst ist dir überlassen. Zumindest kannst du dann die Manifest Datei nach der Anleitung einbinden.

Kommentar von Sebinator007y ,

Vielen herzlichen Dank das hat mir sehr geholfen.

Antwort
von Hairgott, 48

Bist du auch mit dem Admin Account eingeloggt? Also nicht deiner sondern, der der auf den PC ist, aber nicht sichtbar.

Kommentar von Sebinator007y ,

Ich bin mit meinem Admin Account eingeloggt.

Doch irgendwie failt der runas Command, denn egal welchen Benutzer ich eingebe  fragt er mich nach dem Passwort und der Fehler, den ich schon erwähnt habe, erscheint.

Antwort
von Berny96, 26

Du könntest eine Verknüpfung erstellen und ihr sagen das sie als Admin ausgeführt wird und dann einfach diese Verknüpfung öffnen.

Kommentar von Sebinator007y ,

Es soll alles automatisch im Hintergrund laufen und beim ersten Start eben zb vom UAC Admin anfordern wenn das möglich ist.

Keine passende Antwort gefunden?

Fragen Sie die Community