PowerShell で親コンテナーを逆に変更するにはどうすればよいですか?

PowerShell で親コンテナーを逆に変更するにはどうすればよいですか?

「親コンテナ」フィールドを逆にしたフィールドを追加して、AD のすべてのユーザーに関するすべての情報を抽出する必要があります。

例えば:

実際の親コンテナ フィールド: "OU=Users、OU=Area、DC=Company、DC=com"

必要な形式の親コンテナ フィールド: Company.com\Area\Users

そしてこれが私が今持っているコードです

Get-ADUser -Filter * -Properties * | select *,@{l='Parent';e={([adsi]"LDAP://$($_.DistinguishedName)").Parent}} | export-csv \\server\folder\usersADps.csv

ありがとう

答え1

少し前にPowerShellモジュールを書きました。これは、名前翻訳そしてパス名PowerShell 内で簡単に使用できる COM オブジェクト:

https://github.com/Bill-Stewart/PowerShell-ADName

このモジュールをインストールすると、次のようなコードを記述できます。

Get-ADUser -LDAPFilter "(name=*)" |
  Select-Object @{Name = "Path"; Expression = {$_.DistinguishedName | Get-ADName -Format Parent | Convert-ADName Canonical}},
  Name

この例Select-Objectでは、計算されたプロパティPath正規名形式で表現された各オブジェクトの AD パスと呼ばれます。

スクリプトブロック内Expression =スクリプトブロック(中括弧内のコード{ })この例では以下を使用します。

  • $_.DistinguishedName- これはDistinguishedName各ユーザーのプロパティであり、Get-ADUser
  • Get-ADName -Format Parent- 識別名の親の場所
  • Convert-ADName Canonical- 正規形式の親パス

このコマンドは、プロパティを含む出力を作成しますPathName例:

Path                     Name
-----------------------  ---------
myorg.local/Container A  Ken Dyer
myorg.local/Container B  Lynn Dyer

...などなど

関連情報