AD User "Doppelt" zugewiesen

  • hi,
    ich wollte in nächster Zeit mal ein Script schreiben, welches erkennt, ob ein Benutzer 2 Mal (indirekt durch gruppe in gruppe) zugewiesen wurde.

    Da ich im Forum nichs gefunden habe frage ich mal hier nach, ob jemand schonmal soetwas geschrieben hat....

    Wenn nicht würde ich mich mal dransetzen....habe aber noch nicht genau eine Idee, wie ich vorgehen soll...

    Ein Beispiel:

    Es existieren folgende Gruppen:
    EDV, Fibu und FibuLaufwerkSchreiben


    Gruppenverschachtelung:

    EDV:
    EDVUserA
    EDVUserB

    Fibu:
    FibuUserA
    FibuUserB

    FibuLaufwerkSchreiben:
    Fibu
    EDV
    EDVUserA


    wie mann sieht, ist der EDVUserA doppelt in der FibuLaufwerkSchreiben Gruppe (einmal über EDV und einmal direkt in der Gruppe FibuLaufwerkSchreiben)

    Ich möchte nun herausfinden in welcher Gruppe der User rausgenommen werden muss/kann...


    Danke schonmal :)

  • Würde sagen die Gruppe alle auslesen und jeweils in einen Array schreiben. Dann die Arrays vergleichen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • hmm
    jo die idee hatte ich auch schon...damit bin ich aber nicht weitergekommen....


    ich habe es mal so probiert:


    aber igendwie nich nicht das richtige...

  • Erste schnelle Idee:
    Schnapp Dir mit _AD_GetUserGroups alle Gruppen in denen der User direktes Mitglied ist. Mit _AD_RecursiveGetGroupMembers holst Du Dir dann rekursiv alle Mitglieder für jede dieser Gruppen. Wenn der Name im zurückgegebenen Array öfter als 1x auftaucht - voilá.

  • Schritt 1 - Sicht über den User:
    Jede AD-Gruppe gibt dem user das Zugriffsrecht auf ein Berechtigugnsobjekt. Du lässt Dir alle Gruppen geben in denen der User direkt eingetragen ist.

    Schritt 2 - Sicht über die Gruppen:
    Wenn Du nun rekursiv über die Gruppen gehst, siehst Du, ob der User in einer Gruppe ist, die wieder einer Gruppe zugeordnet ist und die Zugriffsrechte somit doppelt vergeben werden.
    Beispiel (U1 = User1, G1, G2, G3 = Gruppen)

    U1 ist Mitglied von G1 und G3, G3 ist Mitglied in G1
    Bei Schritt 1 kriegst Du G1 und G3 zurück.
    In Schritt 2 kriegst Du bei Überprüfung von G1 mit, dass der User 2x zurückgegeben wird und zwar über die Mitgliedschaft in G1 und G3.

  • hi,
    danke für die Antwort...habe sie jetzt erst gelesen...
    glaube ich habe es so auch umgesetzt:

    //edit: Update


    ich setzte es erstmal auf erledigt (außer ihr findet noch fehler :)

    7 Mal editiert, zuletzt von GerhardSchr (9. Februar 2016 um 07:58) aus folgendem Grund: update