m8ichael
Goto Top

Powershell: Gruppenmitgliedschaften der User eines AD auflisten

Hallo zusammen,

ich stehe gerade etwas auf dem Schlauch: Ich möchte per PowerShell ausgehend von den einzelnen Domänen-Benutzern die Gruppenmitgliedschaften (Sicherheitsgruppen) anzeigen lassen und verwende dieses kurze Script:

Get-AdUser -Filter * -Properties PrimaryGroup, MemberOf |
Select-Object @{n="Name";e={$_.SamAccountName}}, `  
@{n="Primäre Gruppe"; e={ ($_ | Select-Object -ExpandProperty PrimaryGroup)}},`  
@{n="Gruppen";e = {($_|Select-Object -ExpandProperty MemberOf)}}  

Hierbei werden die primären Gruppen angezeigt, bei den "Standardusern" auch die sonstigen Gruppen, bei allen übrigen Nutzern jedoch nicht. Wo ist der Denkfehler?

Viele Grüße

Michael

Content-ID: 618389

Url: https://administrator.de/contentid/618389

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

Daemmerung
Daemmerung 01.11.2020 um 12:42:45 Uhr
Goto Top
Moin,

was sind denn die Standardnutzer und übrigen Nutzer?

Grüße
Daemmerung
m8ichael
m8ichael 01.11.2020 um 12:48:09 Uhr
Goto Top
Moin,

"Standardnutzer" meint Benutzer im AD-Default-Container "Users". Die übrigen Benutzer sind in ihren jeweiligen OUs.

Gruß

Michael
primary
primary 01.11.2020 um 21:28:50 Uhr
Goto Top
Probiere folgendes Skript aus.
Du musst nur die SearchBaseändern.

Get-ADUser -LDAPFilter "(name=*)" -SearchScope Subtree `  
 -SearchBase 'OU=Users,DC=consorto,DC=com' | %{  
 $user = $_
 $user | Get-ADPrincipalGroupMembership | 
 Select @{N="User";E={$user.sAMAccountName}},@{N="Group";E={$_.Name}}  
}| Select User,Group | Export-Csv c:\report.csv -nti
emeriks
emeriks 02.11.2020 um 11:26:23 Uhr
Goto Top
Hi,
am Rande bemerkt:
Der Weg über den Benutzer taugt maximal für Ein-Domänen-Umgebungen. Sobald man mehrere Domänen und auch domänenübergreifende Mitgliedschaften hat, dann liefert der Weg über "memberOf" nicht alle Mitgliedschaften.
Besser ist es, jeweils die Mitglieder aller Gruppen abzufragen und die Ergebnisse dann pro Benutzer zusammenzubauen.

E.
m8ichael
m8ichael 02.11.2020 um 18:20:32 Uhr
Goto Top
Zitat von @primary:

Probiere folgendes Skript aus.
Du musst nur die SearchBaseändern.

Get-ADUser -LDAPFilter "(name=*)" -SearchScope Subtree `  
>  -SearchBase 'OU=Users,DC=consorto,DC=com' | %{  
>  $user = $_
>  $user | Get-ADPrincipalGroupMembership | 
>  Select @{N="User";E={$user.sAMAccountName}},@{N="Group";E={$_.Name}}  
> }| Select User,Group | Export-Csv c:\report.csv -nti

Das geht leider auch nicht. Auch hier erhalte ich nur die primäre Gruppe angezeigt, allerdings keine sonstigen Gruppen...
m8ichael
m8ichael 02.11.2020 um 18:21:39 Uhr
Goto Top
Zitat von @emeriks:
am Rande bemerkt:
Der Weg über den Benutzer taugt maximal für Ein-Domänen-Umgebungen. Sobald man mehrere Domänen und auch domänenübergreifende Mitgliedschaften hat, dann liefert der Weg über "memberOf" nicht alle Mitgliedschaften.
Besser ist es, jeweils die Mitglieder aller Gruppen abzufragen und die Ergebnisse dann pro Benutzer zusammenzubauen.

Das wäre für mich ok, da es hier erst einmal nur um eine Domäne geht. Leider werden jedoch die Nicht-Primäeren-Gruppen nicht ausgewertet...
Daemmerung
Daemmerung 02.11.2020 um 19:10:37 Uhr
Goto Top
Ist die Unterscheidung, ob es eine primäre oder nicht primäre Gruppe ist, wichtig? Also für deine Zwecke, nicht generell.

Bekommst du eine Fehlermeldung oder sind die Attribute einfach leer? Wenn ich Zeit habe, schaue ich mir das morgen mal an und baue dir etwas...
m8ichael
m8ichael 02.11.2020 aktualisiert um 19:23:29 Uhr
Goto Top
Hi!

Zitat von @Daemmerung:

Ist die Unterscheidung, ob es eine primäre oder nicht primäre Gruppe ist, wichtig? Also für deine Zwecke, nicht generell.

Richtig, die primäre Gruppe ist absolut sekundär, da ohnehin fast überall identisch. Interessanter sind dann eher die weiteren Gruppen, zu denen der jeweilige Nutzer zugeordnet ist.

Bekommst du eine Fehlermeldung oder sind die Attribute einfach leer?

Tatsächlich einfach leer. Mein ursprüngliches Beispiel generiert drei Spalten (also Name, primäre Gruppe und sonstige Gruppen), wobei die Spalte mit den sonstigen Gruppen fast überall leer ist, obwohl die jeweiligen User definitiv verschiedenen Sicherheitsgruppen angehören. In deinem Beispiel werden nur die Nutzernamen sowie die primären Gruppen ausgegeben; das war's...

Wenn ich Zeit habe, schaue ich mir das morgen mal an und baue dir etwas...

Das wäre super... face-smile))

Viele Grüße

Michael
emeriks
emeriks 03.11.2020 aktualisiert um 08:32:30 Uhr
Goto Top
Komisch. Bei mir funktioniert Dein Code aus Deiner Eingangsfrage 1:1. Auch für Konten, welche nicht im Container "Users" gespeichert sind.

2020-11-03 08_29_50-window
m8ichael
m8ichael 03.11.2020 aktualisiert um 18:02:35 Uhr
Goto Top
Zitat von @emeriks:

Komisch. Bei mir funktioniert Dein Code aus Deiner Eingangsfrage 1:1. Auch für Konten, welche nicht im Container "Users" gespeichert sind.

Hmm, dann muss das an unserer AD-Struktur liegen. Bei uns sind die jeweiligen Sicherheitsgruppen in eigenständigen OUs eingetragen, bspw.
CN=Anmeldeberechtigung1,OU=Cloud,OU=Sicherheitsgruppen,DC=firma,DC=tld

Liegt hier das Problem?

Viele Grüße

Michael
emeriks
emeriks 04.11.2020 um 08:16:46 Uhr
Goto Top
Zitat von @m8ichael:
Hmm, dann muss das an unserer AD-Struktur liegen. Bei uns sind die jeweiligen Sicherheitsgruppen in eigenständigen OUs eingetragen, bspw.
CN=Anmeldeberechtigung1,OU=Cloud,OU=Sicherheitsgruppen,DC=firma,DC=tld
Das ist bei uns nicht anders.