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: 17.04.2025 um 00:04 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
Lösung 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
}
J67moo23
J67moo23 21.03.2025 um 05:58:01 Uhr
Goto Top
Funktioniert. Vielen, vielen Dank für die Hilfe!