Ich muss alle Benutzer von AD mit allen Informationen über sie extrahieren und ein Feld mit umgekehrtem Feld "Übergeordneter Container" hinzufügen.
Zum Beispiel:
Tatsächliches übergeordnetes Containerfeld: „OU=Users,OU=Area,DC=Company,DC=com“
Benötigtes Format für übergeordnetes Containerfeld: Company.com\Area\Users
Und hier der Code, den ich gerade habe
Get-ADUser -Filter * -Properties * | select *,@{l='Parent';e={([adsi]"LDAP://$($_.DistinguishedName)").Parent}} | export-csv \\server\folder\usersADps.csv
Danke
Antwort1
Ich habe vor einiger Zeit ein PowerShell-Modul geschrieben, das die Funktionalität desNameÜbersetzenUndPfadnameCOM-Objekte für die einfache Verwendung in PowerShell:
https://github.com/Bill-Stewart/PowerShell-ADName
Wenn dieses Modul installiert ist, können Sie Code wie diesen schreiben:
Get-ADUser -LDAPFilter "(name=*)" |
Select-Object @{Name = "Path"; Expression = {$_.DistinguishedName | Get-ADName -Format Parent | Convert-ADName Canonical}},
Name
In diesem Beispiel wird Select-Object
einberechnete Eigenschaftgenannt Path
, das ist der AD-Pfad jedes Objekts, ausgedrückt im kanonischen Namensformat.
Innerhalb des Expression =
Skriptblocks (derSkriptblockist der Code in den geschweiften { }
Klammern), dieses Beispiel verwendet:
$_.DistinguishedName
- dies ist dasDistinguishedName
Eigentum jedes Benutzers, der weitergegeben wird vonGet-ADUser
Get-ADName -Format Parent
- der übergeordnete Standort des Distinguished NameConvert-ADName Canonical
- der übergeordnete Pfad im kanonischen Format
Dieser Befehl erstellt eine Ausgabe mit Path
und Name
Eigenschaften, zB:
Path Name
----------------------- ---------
myorg.local/Container A Ken Dyer
myorg.local/Container B Lynn Dyer
... usw.