Ben94 0 Geschrieben 13. September 2019 Melden Teilen Geschrieben 13. September 2019 (bearbeitet) Hallo zusammen, Ich möchte mit dem Skript herausfinden, welche Mitglieder der Mitgliedergruppe in Gruppe 1 ist. Jedoch sind in der Gruppe auch User mit Gruppe2. Diese sollen in der Ausgabe nicht aufgezählt werden. Vielleicht kann mir hier jemand helfen. Import-Module ActiveDirectory #Abfrage der Mitgliedergruppe $Gruppe1 = Get-ADGroupMember -Identity "Gruppe1" | Get-ADGroup -Properties * | Select-Object -ExpandProperty name $Gruppe1 #Ende der Abfrage #Abfrage der User in den Mitgliedergruppen $Gruppe1User = foreach ($element in $Gruppe1) { Get-ADGroupMember -Identity $element | Get-Aduser -Properties name | Select-Object name } $Gruppe1User $Gruppe1User | Export-Csv -Path .csv -NoTypeInformation #Ende der Abfrage #Abfrage der User in den Mitgliedergruppen und Gruppe2 $UserinGruppe1mitGruppe2 = foreach ($element in $Gruppe1) { Get-ADGroupMember -Identity "Gruppe2" | Select-Object name } $UserinGruppe1mit Gruppe2 #Ende der Abfrage Danke im Vorraus Ben bearbeitet 13. September 2019 von Ben94 Zitieren Link zu diesem Kommentar
Beste Lösung BOfH_666 577 Geschrieben 13. September 2019 Beste Lösung Melden Teilen Geschrieben 13. September 2019 Ben, Als Einstieg hier mal ein Code-Schnipsel, der Dir die Unterschiede der Mitglieder der Gruppen auflistet. Schau Dir die Ausgabe mal an, lies mal die Hilfe für Compare-Object und spiel ein bissl mit den Parametern .... z.B. tauschst Du mal RefenceObject gegen DifferenceObject oder Du hängst ein -IncludeEqual an und vergleichst die Ausgabe ... $Gruppe1Liste = Get-ADGroupMember -Identity 'Gruppe1' $Gruppe2Liste = Get-ADGroupMember -Identity 'Gruppe2' Compare-Object -ReferenceObject $Gruppe1Liste -DifferenceObject $Gruppe2Liste -Property Name Zitieren Link zu diesem Kommentar
Ben94 0 Geschrieben 13. September 2019 Autor Melden Teilen Geschrieben 13. September 2019 vor 33 Minuten schrieb BOfH_666: $Gruppe1Liste -DifferenceObject $Gruppe2Liste -Property Name Danke dir für die schnelle Anwort. Damit kann ich auf jeden Fall arbeiten. Zum besseren Verständnis hier einmal eine kleine Aufstellung meines Ad's: Usergruppe Usergruppe1 Usergruppe2 (...) User1 User1.1 User1.2 User2 User2.1 User2.2 (...) (...) (...) Dann habe ich noch 2 Gruppen, welche die Berechtigung der User steuern. z.B. Gruppe1 erlaubt Gruppe2 verbietet Ich habe nun alle Usergruppen mit Gruppe1 ausgelesen und die darin vorhandenden Mitglieder in einem Array gespeichert. Nun haben aber manche der Mitglieder auch Gruppe2. Diese müssen herausgefiltert werden, damit ich alle Mitglieder der Gruppe1 habe, in welchen auch die Berechtigung von Gruppe1 greift. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 13. September 2019 Melden Teilen Geschrieben 13. September 2019 (bearbeitet) Hmmm ... unabhängig davon, dass ich jetzt nicht weiß, ob hier noch eine Frage enthalten ist .... Wenn ich lese "Gruppe2 verbietet" ... Du weißt, dass eine nicht erteilte (Lese-)Berechtigung quasi einem "Verbot" gleichkommt, oder? Nach meiner Erfahrung erzeugen explizit vergebene Verweigern-Berechtigungen gerne mal ungewollte und schwer zu diagnostizierende Nebenwirkungen. bearbeitet 13. September 2019 von BOfH_666 Orthographie korrigiert Zitieren Link zu diesem Kommentar
Ben94 0 Geschrieben 13. September 2019 Autor Melden Teilen Geschrieben 13. September 2019 (bearbeitet) Eine kleine Frage habe ich noch. Der Vergleich war erfolgreich, sodass ich aus der Ausgabe händlisch eine Seite herausfiltern konnte. Die Frage wäre, wie es möglich ist, Alle Einträge mit => in der Ausgabe in einen neune Array einzutragen. Die Berechtigungen sind so gesetzt, da Gruppe 1 auf die Usergruppen zugeordnet ist, sodass immer alle Mitglieder, deren Usergruppe Gruppe1 zugeornet ist, diese spezielle Berechtigung haben. Nur wenige User bekommen diese entzogen indem direkt auf dem User Gruppe2 Zugeordnet wurde. bearbeitet 13. September 2019 von Ben94 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 13. September 2019 Melden Teilen Geschrieben 13. September 2019 vor 2 Minuten schrieb Ben94: Eine kleine Frage habe ich noch. Der Vergleich war erfolgreich, sodass ich aus der Ausgabe händlisch eine Seite herausfiltern konnte. Die Frage wäre, wie es möglich ist, Alle Einträge mit => in der Ausgabe in einen neune Array einzutragen. Das macht Powershell für Dich, wenn Du nett drum bittest ... $NeuesArray = Compare-Object -ReferenceObject $Gruppe1Liste -DifferenceObject $Gruppe2Liste -Property Name | Where-Object {$_.SideIndicator -eq '=>'} Ich würde Dir empfehlen, Dir die Grundlagen von Powershell strukturiert anzueignen. Vielelicht mit einem guten Buch oder mit einem Online-Video-Tutorial oder wenn Dir Dein Chef ein Training bezahlt, am besten das ... vor 2 Minuten schrieb Ben94: Die Berechtigungen sind so gesetzt, da Gruppe 1 auf die Usergruppe zugeornet ist, sodass alle Mitglieder alle Berechtigungen haben. Nur wenige User bekommen diese entzogen indem direkt auf dem User Gruppe2 Zugeordnet wurde. Das kommentiere ich jetzt mal gar nicht ... wenn's funktioniert, ist das ja schön. Zitieren Link zu diesem Kommentar
Ben94 0 Geschrieben 13. September 2019 Autor Melden Teilen Geschrieben 13. September 2019 Ich danke dir ich wurde ins kalte Wasser geschmissen aber mit deinen Tipps bekomme ich das hin. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 13. September 2019 Melden Teilen Geschrieben 13. September 2019 vor 1 Minute schrieb Ben94: Ich danke dir ich wurde ins kalte Wasser geschmissen aber mit deinen Tipps bekomme ich das hin. Wenn Du wieder an Land gepaddelt bist, fragst Du Deinen Chef nach einem "Schwimmkurs"!! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.