Request elevated rights (Vista)

Status
Nicht offen für weitere Antworten.

Wolfgang Lenhard

Bekanntes Mitglied
Hi,
gibt es eine Möglichkeit, unter Vista erhöhte Rechte (elevated rights) von einem Java-Programm aus anzufordern?

Viele Grüße,
Wolfgang
 
G

Guest

Gast
Eine Antwort auf deine frage ist das zwar nich, aber hatte ich vor kurzem ein änliches Probl.

Wenn nur ein Programm mit Adminrechten ausgeführt werden soll hilft das hier:

klick mich
 

Wolfgang Lenhard

Bekanntes Mitglied
Hi,
danke für die Antwort (und Entschuldigung für die sehr verspätete Antwort auf die Antwort). Das Problem liegt darin, system-weit Einstellungen für ein Programm zu ändern, also über alle User-Profile hinweg. Im Grunde genommen gibt es auf Vista nur noch einen Ort, wo jeder schreiben und lesen darf, nämlich unter "PUBLIC". Dort Dateien abzulegen halte ich aber für nicht besonders schlauf - sieht einfach komisch aus. Es gibt weiterhin ein "ALLUSERPROFILE", wo jeder lesen darf, aber nur Admins schreiben. Wenn ein Client ohne Admin-Rechte versucht, dort Daten abzulegen, dann gibt es eine IOException. Der Zugriff aufs Programmverzeichnis geht natürlich auch nicht mehr (außer mit Admin-Rechten), und einem User zu sagen, er soll einfach das Programm nicht unter den regulären Pfaden installieren sieht nicht seriös aus.

Von daher stellte sich die Frage, ob ein Java-Programm temporär höhere Rechte anfordern kann, um in ALLUSERPROFILE schreiben zu können, sodass die Änderungen auch für andere Nutzer verfügbar werden (z. B. Angaben zu IP-Adresse des Servers, was dann auch für alle Nutzer des Client-Programms auf diesem System automatisch verfügbar ist).

Nach langer Suche habe ich bislang keine Lösung gefunden. Vermutlich geht es wohl nicht (oder nicht so einfach). Im Grunde ist es ja auch schlau, dass Nutzerdaten sauber getrennt werden, auch wenn das beim Endanwender mit einem Komfortverlust verbunden ist.

Ciao,
Wolfgang
 

Wolfgang Lenhard

Bekanntes Mitglied
Hi Ebenius,
ja, das ist schon richtig. Aber sie müssen ja irgendwo auf die Platte, und da kann man bei im Programmordner installierten Sachen nicht mehr direkt dort ablegen.

Ciao,
Wolfgang
 

Ebenius

Top Contributor
Korrigiert mich bitte jemand, wenn ich mich irre... Die Windows-Implementierung für die Preference-Klasse schreibt doch in die Registry... Das sollte unabhängig von Deinem Problem funktionieren!
 

Ebenius

Top Contributor
Viel Erfolg. Interessiert mich auch, ob das mit Vista problemlos tut. Obwohl ich erwarte dass es funktioniert ... probiert hab ich's nie.
 

Wolfgang Lenhard

Bekanntes Mitglied
Preferences sind eine feine Sache. Ich habe das immer viel umständlicher gelöst. In Bezug auf mein Problem bin ich aber leider nicht weiter gekommen, da die Werte unter HKEY_CURRENT_USER abgelegt werden und somit auch nicht über Profil-Grenzen hinweg verfügbar sind. Trotzdem vielen Dank für den Tipp.

P.S.: Stopp! Es geht doch:

Code:
Preferences systemPref = Preferences.systemRoot();

(Liest und schreibt in HKEY_LOCAL_MACHINE)
 

Wolfgang Lenhard

Bekanntes Mitglied
F***! :autsch: Aaaaarrrrrgggghhhhh

Klappt natürlich auch nicht. Man kann auch hier nur in die eigenen User-Nodes schreiben, und nicht in HKEY_LOCAL_MACHINE:
WARNUNG: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 5.
Exception in thread "AWT-EventQueue-0" java.lang.SecurityException: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002: Access denied
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben