![如何在 powershell 中更改父容器的反轉?](https://rvso.com/image/770129/%E5%A6%82%E4%BD%95%E5%9C%A8%20powershell%20%E4%B8%AD%E6%9B%B4%E6%94%B9%E7%88%B6%E5%AE%B9%E5%99%A8%E7%9A%84%E5%8F%8D%E8%BD%89%EF%BC%9F.png)
我需要提取 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 模組,它封裝了名稱翻譯和路徑名COM 物件方便在 PowerShell 中使用:
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
- 規範格式的父路徑
該命令創建帶有Path
和Name
屬性的輸出;例如:
Path Name
----------------------- ---------
myorg.local/Container A Ken Dyer
myorg.local/Container B Lynn Dyer
... ETC。