Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#8

Re: lokale Benutzerrechte herausfinden

  Alt 30. Dez 2006, 08:14
Hallo,

sorry, wenn Du anscheinend deine Fragen unverständlich stelltst, kann man nur so darauf antworten:

Zitat:
Folgender Fall:
Ein Benutzer ist unter identischem Namen und Passwort in einer Domäne und an einem Rechner bekannt.
In der Domäne ist er einfach nur User, lokal Mitglied der Administratoren.
Wenn sich der Benutzer am Rechner an der Domäne anmeldet, dann hat er laut meiner IsAdmin() keine Admin Rechte, was bezogen auf die Domäne stimmt aber lokal nicht. Meldet sich der Benutzer an dem Rechner lokal an, dann bringt IsAdmin() dass er Admin ist - hier stimmt alles.
Zitat:
Das unterschiedliche Profile verwendet werden, war und ist hier sicherlich jedem klar ...
Richtig, was ich in meiner Mail ja nur nochmals darlegte, genauso, wie deine Probleme!

Zitat:
daher auch der Titel dieses Threads: "lokale Benutzerrechte herausfinden". Ich habe keinen MS-UAC-CE hinlegen wollen, um die aktuellen LOKALEN Rechte per SystemCalls oder API herauszufinden.
Tja Dir scheint der Unterschied zwischen LOKALEN und DOMÄNE-Rechten ja anscheinend nicht ganz klar zu sein.

- Hier geht es EINDEUTIG um ZWEI Profile, einmal in der DOMAIN und einmal LOKAL!
- Ob beide Profile den gleichen NAME und das gleiche PASSWORT haben ist unter Windows wurscht,
es sind immmer ZWEI Benutzer mit jeweils einer eigenen SID.
- Es kann sich immer nur unter EINEM PROFIL gleichzeitig angemeldet werden!
- Die von Dir als Quellcode dargestellte IsAdmin, macht nicht anderes in der AKTULELLEN
ANMELDUNG (SID) nach den Rechten eines Administrators zu schauen!!


Lösungsmöglichkeit:
Wenn Du nach einer ANMELDUNG in der DOMÄNE die Rechte der Lokalen Benutzeranmeldung erfahren willst, muss sich dein Programm zunächst nochmal als lokaler Benutzer mit dessen Passwort anmelden, dessen Profil laden und sich dann dessen Rechte aneignen, damit die Abfrage funktioniert.
Dazu müssete dem PROGRAMM neben dem BENUTZERNAME noch dessen PASSWORT bekannt sein, welches aber nach der Anmeldung an der Domäne nicht mehr verfügbar ist!! Somit kann sich dein Programm nicht direkt als Lokaler Benutzer anmelden.

Oder:
Lösche den lokalen User und füge den Domäne-User im DC beim Rechner als Admin ein! Dann könnte es eventuell klappen, ah moment mal, soweit ich mich erinnern kann würde der User denoch nur User-Rechte haben, da Windows entzogene Rechte höher bewertet und nimmt, egal ob später noch Rechte hinzukommen!
Oder so ähnlich..
So ein Mist aber ach mit der Benuzterverwaltung unter Windows!!

Zur Wiederholung:
Zitat:
Auch wenn der Benutzer den gleichen Name auf der Domäne und dem Lokalen Rechener hat, sind es dennoch zwei unterschiedliche Benutzer mit unterschiedlicher SID.

Bei der Anmeldung mit dem Benutzername entscheidest Du dich welches Profil geladen wird

Domäne -> Profil aus Domäne, lokale Profile werden ignoriert!
Lokal -> Profil vom lokalen Rechner, Domäne-Profil wird ignoriert.
Schauiii....

Holger

P.s.
Zitat:
Bevor Du hier Dein Wissen auf Plakaten verteilst, ein Tip zurück: den Kontext nicht aus dem Blick verlieren.
.. gebe ich an Dich zurück!!!!
  Mit Zitat antworten Zitat