使用 powershell 列出所有 AD 用户属性

使用 powershell 列出所有 AD 用户属性

我们有一个以前的 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 个属性。但并非所有旧用户都拥有相同的属性集。我想获取谁拥有什么的列表。

如何获取可用于任何对象的可用属性的完整列表?

答案1

由于存在大量无关数据,许多系统属性可能会使您考虑的练习变得毫无用处。也许您可以使用 AD Explorer 来识别看起来有趣的属性,并使用 -Properties 参数为所有用户检索它们。

当您在 AD 中检索用户对象时,它仅返回对象属性的子集。您可以使用 -Properties 参数强制 get-user 检索其他属性。例如:get-aduser jjohnson -Properties pwdlastset将 pwdlastset 添加到 get-aduser 通常为用户 jjohnson 检索的属性列表中。

相关内容