Mit PowerShell die Berechtigungen eines AD-Users auslesen
Huhu Admins
Brauch eine hoffentlich kleine Unterstützung von euch im PowerShell Bereich. Versuche mit diesem Befehl die AD-User Information (wichtig ist vor allem Member Of) auszulesen:
Im csv File listet er folgendes in der Spalte Member Of:
Microsoft.ActiveDirectory.Management.ADPropertyValueCollection
Was mache ich falsch? Ausserdem listet er mir zu viele User, ich möchte nur folgende Benutzer auflisten:
domain.ch/Exchange/Users/City/
Vielen Dank schon Mal im Voraus für eure Hilfe!
Grüsse
Windelterrorist
Brauch eine hoffentlich kleine Unterstützung von euch im PowerShell Bereich. Versuche mit diesem Befehl die AD-User Information (wichtig ist vor allem Member Of) auszulesen:
get-aduser -filter * -properties * | select-object Name,UserPrincipalName,HomeDirectory,MemberOf | export-csv C:\export-aduser.csv -notypeinformation -delimiter ";" -encoding utf8;
Im csv File listet er folgendes in der Spalte Member Of:
Microsoft.ActiveDirectory.Management.ADPropertyValueCollection
Was mache ich falsch? Ausserdem listet er mir zu viele User, ich möchte nur folgende Benutzer auflisten:
domain.ch/Exchange/Users/City/
Vielen Dank schon Mal im Voraus für eure Hilfe!
Grüsse
Windelterrorist
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 301074
Url: https://administrator.de/contentid/301074
Ausgedruckt am: 13.11.2024 um 09:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo windelterrorist,
hatten wir schon mal hier: MemberOf ist eine "MultiValued-Property" die du erst zu einem String expandieren und das Array zusammenfassen musst. In meinem Beispiel über eine calculated property gelöst.
AD Gruppen User auslesen
Des weiteren gibt es in diesem Zusammenhang den Parameter -SearchScope der angibt ob alle untergeordneten OUs rekursiv mit ausgelesen werden sollen(SubTree)[Standard] oder nur diese explizite Ebene (Onlevel).
Grüße Uwe
p.s. anstatt -Properties * solltest du dort besser nur die Eigenschaften angeben welche du zusätzlich auslesen willst, das spart Ressourcen und vor allem Zeit für den Export.
hatten wir schon mal hier: MemberOf ist eine "MultiValued-Property" die du erst zu einem String expandieren und das Array zusammenfassen musst. In meinem Beispiel über eine calculated property gelöst.
AD Gruppen User auslesen
Ausserdem listet er mir zu viele User, ich möchte nur folgende Benutzer auflisten: domain.ch/Exchange/Users/City/
Dafür gibt es den Parameter -SearchBase von Get-AdUser dort gibst du einfach deine OU an aus der du die User auslesen willst:get-aduser -filter * -SearchBase 'OU=City,OU=Users,OU=Exchange,dc=domain,dc=ch' -properties *
Grüße Uwe
p.s. anstatt -Properties * solltest du dort besser nur die Eigenschaften angeben welche du zusätzlich auslesen willst, das spart Ressourcen und vor allem Zeit für den Export.
Da liefert man es schon frei Haus und es ist immer noch nicht genug
Import-Module ActiveDirectory
get-aduser -filter * -SearchBase 'OU=City,OU=Users,OU=Exchange,dc=domain,dc=ch' -properties Name,MemberOf,UserPrincipalName,HomeDirectory | select Name,UserPrincipalName,HomeDirectory,@{n="Gruppen";e={$_.MemberOf -join "|"}} | export-csv 'C:\export-aduser.csv' -delimiter ";" -NoTypeInformation -Encoding UTF8
Es gibt keinen und Hacken tu ich nur meinen Garten , das sind nur die DN der Gruppen, logisch! Den Namen der Gruppe siehst du ja am CN.
Wenn du stattdessen nur den "einfachen" Namen der Gruppe willst baust du einfach über das Array der DNs eine Schleife und nimmst die Name EIgenschaft und joinst das Array zu einem String der die Gruppen z.B. mit einem Komma voneinander trennt.
Wenn du stattdessen nur den "einfachen" Namen der Gruppe willst baust du einfach über das Array der DNs eine Schleife und nimmst die Name EIgenschaft und joinst das Array zu einem String der die Gruppen z.B. mit einem Komma voneinander trennt.
Import-Module ActiveDirectory
get-aduser -filter * -SearchBase 'OU=City,OU=Users,OU=Exchange,dc=domain,dc=ch' -properties Name,MemberOf,UserPrincipalName,HomeDirectory | select Name,UserPrincipalName,HomeDirectory,@{n="Gruppen";e={($_.MemberOf | %{Get-ADGroup $_}).Name -join ','}} | export-csv 'C:\export-aduser.csv' -delimiter ";" -NoTypeInformation -Encoding UTF8
Hast du noch eine alte Powershell? Dann musst du es etwas modifizieren:
Geht einwandfrei. Natürlich wird hier in diesem Beiepiel keine Gruppen-Expansion vorgenommen, also keine Rekursiven Gruppenmitgliedschaften (Gruppe in Gruppe) gelistet.
Außerdem ist die primäre Gruppe des Users nicht Bestandteil dieser Eigenschaft, diese ist in einer anderen Eigenschaft des User-Objekts enthalten, namentlich ist das die EIgenschaft PrimaryGroup!
Import-Module ActiveDirectory
get-aduser -filter * -SearchBase 'OU=City,OU=Users,OU=Exchange,dc=domain,dc=ch' -properties Name,MemberOf,UserPrincipalName,HomeDirectory | select Name,UserPrincipalName,HomeDirectory,@{n="Gruppen";e={($_.MemberOf | %{Get-ADGroup $_} | select -Expand Name) -join ','}} | export-csv 'C:\export-aduser.csv' -delimiter ";" -NoTypeInformation -Encoding UTF8
Außerdem ist die primäre Gruppe des Users nicht Bestandteil dieser Eigenschaft, diese ist in einer anderen Eigenschaft des User-Objekts enthalten, namentlich ist das die EIgenschaft PrimaryGroup!