AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mitgliedschaft in Windows-Benutzergruppe feststellen

Mitgliedschaft in Windows-Benutzergruppe feststellen

Ein Thema von berens · begonnen am 6. Aug 2015 · letzter Beitrag vom 19. Aug 2015
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 17. Aug 2015, 11:55
Zunächst nochmal vielen Dank allen, die geantwortet haben.

In diesem Thread darf ich nun auch nochmal Werbung für mein Tutorial machen, wie ich das eigentliche Problem gelöst habe:
http://www.delphipraxis.net/186242-w...verwenden.html

Falls jemand nun wirklich die Gruppenmitgliedschaft feststellen will, kann er mit diesem Tutorial eine SecurityDescriptor erstellen, der (nur) die gewünschte Gruppe mit einem Beispielrecht enthält, und dann prüfen, ob der (aktuell angemeldete) Benutzer dieses Recht hat. Benutzer erhalten ja automatisch die Rechte der Gruppen in der sie sind, ausgenommen die der Admin-Gruppen (hier muss das Programm mit rechte Maustaste - als Administrator starten ausgeführt werden.

ACHTUNG -Wichtiger Nachtrag zu diesem kompletten Thread
Zitat:
Nimmt man einen Benutzer in eine Gruppe auf, muss Dieser sich erst neu an Windows anmelden, damit die Änderungen wirksam werden!

Der Benutzer ist NICHT Mitglied egal welcher generischen Administrator-Gruppen (Domänen-Admins etc.), wenn das Programm nicht mit rechter Maustaste --> Als Administrator ausführen gestartet wurde.
Somit könnte es sein, dass die hier aufgeführten Probleme damit zusammen gehangen haben, dass ich zum Testzeitpunkt noch nicht erneut an Windows angemeldet war, so dass die Gruppenmitgliedschaft noch nicht "aktiv" war!

Geändert von berens (17. Aug 2015 um 12:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#2

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 17. Aug 2015, 13:17
Muss man sich auch neu anmelden, wenn man GPUpdate ausführt o.O?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 17. Aug 2015, 13:27
Ich habe es eben auf einem Windows 2012 Server getestet.
Auch "gpupdate /force" aktualisiert NICHT die Gruppenmitgliedschaft. (Meines Wissens ist dieser Befehl eh nur für die Aktualisierung der Gruppenrichtlinien zuständig...)

Mit "whoami /all" bzw. "whoami /all > x:\1.txt" kann man sich von Windows direkt den Mitgliedschafts-Status alle Gruppen anzeigen lassen.

Mein Testverlauf:
1) whoami /all
--> Ich bin nicht Mitglied der Gruppe
2) Gruppenmitgliedschaft über "Active-Directory-Benutzer und -Computer" geändert, dieses Fenster dann geschlossen
3) whoami /all
--> Ich bin nicht Mitglied der Gruppe
4) gpupdate /force
5) whoami /all
--> Ich bin nicht Mitglied der Gruppe
6) Abmelden / Anmelden an Windows
7) whoami /all
--> Ich BIN Mitglied der Gruppe

Das Problem besteht sowohl bei Lokalen Gruppen, wie in der Domäne.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 19. Aug 2015, 13:47
Muss man sich auch neu anmelden, wenn man GPUpdate ausführt o.O?
Gruppenrichtlinien (Registryeinträge) haben nicht mit dem aktuellen Prozesstoken zu tun!
Das mit den neu Anmelden, wird nur gemacht, dass die Prozess welche bereits laufen z.B. Explorer, die neuen Registry-Einstellungen lesen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 19. Aug 2015, 17:22
Guck dir mal meinen XP Usermanager (http://xpusermanager.de) an. Suchst du so was wie da in der Gruppenverwaltung?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 19. Aug 2015, 21:14
Hi Luckie,
danke für den Hinweis. Für die komplette Thematik, die letztendlich hier gelöst wurde http://www.delphipraxis.net/184812-w...verwenden.html , habe ich auch einen großen Teil der Zeit auf deiner Seite mit deinen Codeschnippseln verbracht. Die aufgeführten Beispiele waren leider alle nur für das FileSecurity Mapping und ich konnte diese nicht auf mein Problem transferieren.

Der XP-Usermanager hätte mir sehr wahrscheinlich geholfen das Problem zu lösen, wie Du an anderen Stellen aber bereits erwähnt hast ist er closed-source und ich wollte jetzt nicht so unverschämt sein und per PM nach Codeschnippseln davon fragen.

Wie gesagt, das eigentliche Problem ist erledigt -ich muss ja jetzt auch nicht mehr explizit die Gruppenmitgliedschaft ermitteln-, falls ich das noch noch tun müsste, würde ich wahrscheinlich mit der JwSCL einen SecurityDescriptor mit der entsprechenden Gruppe anlegen die alleinig das Recht hat, etwas zu tun, und dann einfach schauen, ob der aktuell angemeldete Benutzer das entsprechende Recht erhält. Fragen bleiben halt offen wie ich -JwSCL kompatibel- dann den Gruppennamen in die SID umwandle oder das ganze für ein anderes Benutzerkonto teste, aber -man verzeihe es mir- da ich das (zumindest aktuell) nicht brauche, möchte ich mich damit jetzt nicht wirklich beschäftigen.

Ich und die Nachwelt würden sich aber sicherlich trotzdem über 1-2 Codeschnippsel aus Deinem Usermanager freuen, wie z.B. User-/Gruppennamen in SID umwandeln (wobei das glaube ich sogar in deiner Bibliothek war?), und speziell halt quasi die Funktionen IstBenutzerMitgliedVonGruppe(Benutzer, Gruppe) oder zumindest BinIchMitgliedVonGruppe(Gruppe). Jeweils natürlich bezogen auf den Kontext, in dem unser Programm läuft.

Nochmal "Danke" an Alle für die Beteiligung am Thema

Geändert von berens (19. Aug 2015 um 21:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz