Windows ermitteln ob Administratorrechte vorhanden

redbomber

Bekanntes Mitglied
Hi zusammen,
könnt ihr mir sagen wie ich herausbekomme ob der aktuelle Windows Benutzer Administratorrechte besitzt?

Ich könnte von meinem Java Programm auch die CMD-Shell aufrufen, weiss da abe auch keine Möglichkeit wie ich die Rechte des aktuellen Users überprüfen kann.

Als Alternative hatte ich mir überlegt irgendwo unter "C:\Program Files" eine Datei anzulegen und diese danach wieder zu löschen.
Wenn es nicht geht bin ich kein Admin.


Der Hintergrund wieso ich diese Information benötige ist, dass mein Tool ein Programm updaten soll. Und dies geht eben nur wenn der aktuelle User Dateien löschen/schreiben darf (unter "Program Files")

Vielleicht habt ihr noch eine Idee?
 

FGB

Mitglied
Hi,

also direkt Windows-Rights permission wüsste ich jetzt nicht zu testen. Aber Unter Windows verfügt man mit eingeschränkten Rechten nicht über die Möglichkeit, in z.B. C:\Windows oder C:\Program Files zu schreiben. Du kannst ja einen einfachen File-Permission-Check auf solche Dateien machen. Hast du kein Recht das Verzeichnis zu schreiben, hast du keine Rechte dazu. Ist aber wirklich nur ein Work-Around.

Viel Erfolg noch!

Felix
 

redbomber

Bekanntes Mitglied
Ja das hatte ich mir auch überlegt,
aber wie FGB schon erwähnt hat, ist das nur ein Workaround.

Aber vielleicht klappt es einfach nur so, ich werde dies jetzt erstmal so probieren.


Vielen Dank euch!!
 

faetzminator

Gesperrter Benutzer
Du willst ja nicht Admin sein. Sondern nur Dateien ersetzen. Also musst du schauen, ob du diese ersetzen darfst. Stell dir vor, ich geb einem User Schreibrechte für C:\Program Files\, damit er als Dev neue Programme installieren kann. Nun soll deine Updateroutine abbrechen, weil er kein Admin ist ???:L
 

Andi_CH

Top Contributor
Ich stehe vor einem ähnlichen Problem - seit heute früh gibt es eine neues Requirement ;-) " Die Software soll warnen, wenn sie mit Admin Privilegien gestartet wird" und das bitteschön portabel (auch Linux)

Linux: whoami -> user und dann groups user auf "root" überprüfen, aber reicht das auch?
Windows? Da habe ich nur ???:L

Ach: wie finde ich heraus auf welchen BS das Programm läuft? Einfach mal whoami ausführen?
 

faetzminator

Gesperrter Benutzer
Was hat denn ein "Admin" unter Windows für Privilegien? Und wie wirken sich diese aus? "Den Admin" = Super user gibts ja unter Windoof (< Vista / Win7) AFAIK nicht. Unter Linux ist es klar, whoami auf root :)
 
G

Gast2

Gast
Linux: whoami -> user und dann groups user auf "root" überprüfen, aber reicht das auch?
statt [c]whoami[/c] finde ich [c]id[/c] schöner

Code:
mogel@despina:~$ id
uid=1000(mogel) gid=1000(mogel) Gruppen=1000(mogel),20(dialout),24(cdrom),46(plugdev),122(sambashare)
mogel@despina:~$

aber auch unter Linux das - genau wie Windows - nicht so richtig Zielführend ... nur weil ich in einer bestimmten Gruppe bin (oder nicht bin), heißt das noch lange nicht das ich auch das machen darf (oder nverboten bekommen habe) was ich will (vgl. Antwort von faetzminator)
 

faetzminator

Gesperrter Benutzer
1. Zu Hause hab ich kein Windows
2. Im Geschäft hab ich natürlich keine Adminrechte
3. Ich weiss, dass es unter XP den System User gibt, und der darf alles (= Super user?) -> aber man kann sich nicht als solchen einloggen
4. Als ich zu Hause noch mit Windows arbeitete, hatte ich selbstverständlich einen eigenen User dafür, das ist allerdings schon länger her...

Was kann nun denn ein Admin?
- Zugriff auf alle Dateien im Dateisystem? Kann ich mir nicht vorstellen, da man die Reche eines Ordners / einer Datei nur für den Systembenutzer freigeben können müsste. Andererseits könnte auch der "normale" User Schreibrechte auf dem ganzen System haben
- Schreibzugriff auf Regedit? Kann man IMHO auch als normaler User (allenfalls eingeschränkt)

Ich will damit nur sagen, dass unter Linux root (vom Benutzer verwendbar) in meinen Augen dem System-User (nicht verfügbar) enspricht.
Falls ich fachlich einen völligen Sch**** erzählt hab, könnt ihr mich gerne des Besseren belehren.
 

Andi_CH

Top Contributor
Aeh mit VIELEN Buchstaben am Ziel vorbei geschossen - wie findet man nun raus ob man unter Windows Adminrechte hat?

Linux ist ja relativ klar jetzt.
Gibt es keinen Javaeigenen Mechanismus?
 

redbomber

Bekanntes Mitglied
also ich habs jetzt wie von faetzminator vorgeschlagen so gelöst, dass ich versuche in dan entsprechende Verzeichnis zu schreiben. Das funktioniert natürlich auch.

Vielen Dank FGB. Ich probiere deinen Vorschlag auch aus!

Vorallem interessiert mich da, was passiert, wenn das Java-Tool als Administrator gestartet wird "run as administrator"
--> der user wäre dann z.b. nur ein normaler User, aber das Programm wird als Administrator ausgeführt.
Der Vorgang soll also funktionieren.

Anhand von dieser Erklärung
The class is called NTSystem and the method below returns true if the user logged in to the Windows workstation has admin rights or none.
vermute ich dass dieser Test (isAdmin()) dann ein false liefert, wäre in diesem Beispiel dann falsch...
 

Andi_CH

Top Contributor
Mach aber unbedingt ein Class.forName("...") für diese Klasse. Ansonsten bringst du das Programm nur noch unter Windows mit der Sun JVM zum Laufen ;)

Meinst du das? Sieht nicht nett aus :-( und wie man das mit Class.forName wegbekommt hab ich ncoh nicht herausgefunden.

ansonsten währe das isAdmin auf einem der Links von dir genau das was ich brauche.

Code:
Multiple markers at this line
	- Access restriction: The type NTSystem is not accessible due to restriction on required library C:
	 \Program Files\Java\jre6\lib\rt.jar
	- Access restriction: The constructor NTSystem() is not accessible due to restriction on required library C:
	 \Program Files\Java\jre6\lib\rt.jar
	- Access restriction: The method getGroupIDs() from the type NTSystem is not accessible due to 
	 restriction on required library C:\Program Files\Java\jre6\lib\rt.jar
 

faetzminator

Gesperrter Benutzer
Sieht so aus als dürftest du das nicht. Nein, ich sprach nicht von Compile Time Errors, sondern von Runtime Errors.
Zu Hause hab ich z.B. keine Klasse [c]NTSystem[/c] gefunden. Hier bei der Arbeit (aufm Websphere) heisst sie [c]com.ibm.security.auth.module.NTSystem[/c]. Wenn du die Klasse aber schon gar nicht kompilieren kannst, seh ich da keine Lösung.
 
M

maki

Gast
@Andi_CH
Das lässt sich in Eclipse einstellen:
Preferences -> java -> Compiler-> Errors/Warnings -> Deprecated and restricted API

Kann natürlich sein dass es dann zur Laufzeit kracht ;)
 

Andi_CH

Top Contributor
Ich bin noch auf Folgendes gestossen.
(Es hilft möglicherweise auch weiter, aber ich habe nicht versucht die Kommandos aus Java abzusetzen.)

Code:
C:\Users\av>whoami
desktopav\av

C:\Users\av>net user av
Benutzername                        av
<SNIP>
Lokale Gruppenmitgliedschaften      *Benutzer
Globale Gruppenmitgliedschaften     *None
Der Befehl wurde erfolgreich ausgeführt.

C:\Users\av>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
K Einstellungen aus Windows und Linux ermitteln Allgemeine Java-Themen 2
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards JAR als Windows Service mit Appache Procrun (prunsrv) Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
T Java Windows sounds erkennen Allgemeine Java-Themen 1
P Java als Windows Dienst Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
D Jsch nur für Windows? Allgemeine Java-Themen 2
X JDK installieren Weiß jemand, wie ich GCJ (WINDOWS) installieren und anwenden kann? Allgemeine Java-Themen 11
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
F Windows Umlaute Allgemeine Java-Themen 15
T Windows-Kontextmenü Eintrag hinzufügen? Allgemeine Java-Themen 3
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
M Swing Windows und Ubuntu Allgemeine Java-Themen 4
H JFileChooser soll NUR Windows-Netzwerkumgebung anzeigen Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
W Windows (Service) Hooking Allgemeine Java-Themen 8
M Java auf Linux und Windows Allgemeine Java-Themen 6
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
N Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen Allgemeine Java-Themen 5
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P windows mit java bedienen Allgemeine Java-Themen 8
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P .Jar Datein Windows Konsole zugewiesen Allgemeine Java-Themen 3
C Encoding Problem Windows Allgemeine Java-Themen 9
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
A Nach Benutzerwechsel mit anderem Account in Windows anmelden Allgemeine Java-Themen 8
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Windows Konsolenbefehle Allgemeine Java-Themen 3
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
B Windows Shutdown abfangen Allgemeine Java-Themen 10
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
TiME-SPLiNTER vlcj und Windows Allgemeine Java-Themen 15
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
Y MenuBar -> Windows / Mac OS X Allgemeine Java-Themen 2
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
F java prog als windows-dienst. Erfahrungen? Allgemeine Java-Themen 2
R Dateien vom Windows-Explorer zum Programm senden Allgemeine Java-Themen 21
H Standard Windows-Druck-Dialog Allgemeine Java-Themen 2
S Windows "öffnen mit..." Allgemeine Java-Themen 4
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
P Windows Media Player starten / finden Allgemeine Java-Themen 2
D Windows-Konsole auslesen - Zeichenkodierung Allgemeine Java-Themen 4
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
Q .jar wird mit cmd gestartet - Zuordnung von Dateitypen ändern (Windows 7) Allgemeine Java-Themen 7
G jad JDK1.6 Windows 7 Allgemeine Java-Themen 2
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
O Jar-Datei auf Windows 98 Allgemeine Java-Themen 6
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
P USB Temperatursensor auslesen Windows Allgemeine Java-Themen 7
T Mac OS X <--> Windows XP Portierungsprobleme Allgemeine Java-Themen 7
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben