Windows-Server-2003

使用 powershell 列出 all AD 使用者屬性

  • July 15, 2011

我們有一個以前的 Win2k AD 域,它已遷移到 W2k3 伺服器,並且有大量來自過去和林的各個部分的架構擴展(Exchange、msSFU 和自定義)。

搜尋使用者工作得很好,我得到了完整的使用者列表。但是,如果我查詢使用者對象,我只會得到一個不完整的屬性列表:

$user.properties.propertynames

傳遞

objectClass
cn
distinguishedName
instanceType
whenCreated
whenChanged
uSNCreated
uSNChanged
name
objectGUID
userAccountControl
badPwdCount
codePage
countryCode
badPasswordTime
lastLogoff
lastLogon
pwdLastSet
primaryGroupID
objectSid
accountExpires
logonCount
sAMAccountName
sAMAccountType
objectCategory
isCriticalSystemObject
nTSecurityDescriptor

此響應缺少 AD Explorer 顯示的許多屬性。

如何列出所有真正存在的屬性和值?除了Powershell之外,還有什麼其他工具可以實現這一目標嗎?

背景:我們需要檢查使用者對象的一致性。看起來如果對像是使用 W2k 創建的,那麼使用者擁有的屬性集比在 W2k3 ADUC 上設置時更完整。似乎由此產生了一些問題,但我還不確定,並想徹底檢查使用者屬性。

我知道如何使用 $objSearcher.PropertiesToLoad.Add()。但這無濟於事,因為我還想查找某些使用者對像中是否潛伏著任何未知屬性。

一些舊的使用者對像有多達 150 個屬性。但並非所有老使用者都有相同的設置。我想得到一份誰擁有什麼的清單。

如何獲取用於任何對象的可用屬性的總列表?

由於大量無關數據,許多系統屬性可能會使您考慮的練習變得不那麼有用。也許您可以使用 AD Explorer 來辨識看起來有趣的屬性,並使用 -Properties 參數為所有使用者檢索它們。

當您在 AD 中檢索使用者對象時,它只返回對象屬性的子集。您可以使用 -Properties 參數強制 get-user 檢索其他屬性。例如:get-aduser jjohnson -Properties pwdlastset將 pwdlastset 添加到通常由 get-aduser 為使用者 jjohnson 檢索的屬性列表中。

引用自:https://serverfault.com/questions/279127