j67moo23
Goto Top

OUs aus DistinguishedName ausgeben

Hallo zusammen, ich bin hier eigentlich schon fündig geworden. Hiermit:

Get-ADUser -SearchBase "OU=Users,OU=xx,DC=xx,DC=xx" -Filter $suche -Properties * | select SamAccountName, @{n='OU';e={[regex]::match($_.DistinguishedName,'(?is)(?<=OU=).*?(?=,(OU|CN|DC)=)').Value}}    

wird die erste ou ausgelesen
Dahinter möchte ich aber die 2te und 3te OU ausgeben.

OU=test1,OU=test2,OU=test3,DC=blu....

Ich weiss leider nicht wie das aussehen muss. Egal was ich versucht habe, die Ausgabe bleibt leer.

Vielen Dank im voraus!!!
Jochen

Content-ID: 672071

Url: https://administrator.de/forum/ous-aus-distinguishedname-ausgeben-672071.html

Ausgedruckt am: 21.03.2025 um 00:03 Uhr

BiberMan
BiberMan 20.03.2025 aktualisiert um 12:10:04 Uhr
Goto Top
Get-ADUser -SearchBase "OU=Users,OU=xx,DC=xx,DC=xx" -Filter $suche | select SamAccountName,@{n='OU';e={[regex]::match($_.DistinguishedName,'(?i)OU=.*').Value}}   
J67moo23
J67moo23 20.03.2025 um 13:04:34 Uhr
Goto Top
Hallo und danke für die schnelle Hilfe
Mit dem was du geschrieben hast bekomme ich den kompletten DistinguishedName in einer Spalte ausgegeben. Soll ich was anstelle des * Eintragen?
Ich hab mich unklar ausgedrückt, sorry

OU=test27,OU=Wohnung56,OU=Etage78

Die Zahlen sind unterschiedliche OUs

Die erste OU hab ich. Ich brauch die OUs Wohnung und Etage in separaten Spalten

Nochmals vielen Dank!!!
BiberMan
BiberMan 20.03.2025 aktualisiert um 14:53:09 Uhr
Goto Top
in separaten Spalten
Nächstes mal doch bitte gleich anständig beschreiben , Danke.
Und zur richtigen Bezeichnung:, Das sind keine "Spalten" sondern zusätzliche Eigenschaften eines Objektes.

So statisch
Get-ADUser -SearchBase "OU=Users,OU=xx,DC=xx,DC=xx" -Filter $suche | select SamAccountName,@{n='OU1';e=$_.DistinguishedName -split ',?(?:OU|DC)=')[1]}},@{n='OU2';e=$_.DistinguishedName -split ',?(?:OU|DC)=')[2]}},@{n='OU3';e=$_.DistinguishedName -split ',?(?:OU|DC)=')[3]}}  
oder dynamisch
Get-ADUser -SearchBase "OU=Users,OU=xx,DC=xx,DC=xx" -Filter $suche | %{  
    $obj = [ordered]@{SamAccountName=$_.SamAccountName};$cnt = 0
    [regex]::matches($_.DistinguishedName,'(?i)(?<=OU=).*?(?=,(OU|CN|DC)=)').Value| %{$obj."OU$((++$cnt))" = $_}  
    [pscustomobject]$obj
}