用powershell列出_all_ AD用户属性

我们有一个以前的Win2k AD域,这个域被迁移到W2k3服务器,并且有过去和林中各个部分的模式扩展(Exchange,msSFU和自定义)。

search用户工作得很好,我得到了完整的用户列表。 但是,如果我查询用户对象,我只得到一个不完整的属性列表:

$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 

这个响应缺lessAD Explorer显示的一些属性。

我如何列出真正存在的所有属性和值? 任何其他的提示,除了Powershell之外,还有一个工具可以实现吗?

背景:我们需要检查用户对象的一致性。 看起来,如果对象是用W2k创build的,则用户拥有比在W2k3 ADUC上设置的属性更完整的一组属性。 似乎出现了一些问题,但我还不确定,并希望检查用户属性的健全。

我知道如何使用$ objSearcher.PropertiesToLoad.Add()。 但是这样做没有任何帮助,因为我也想查找是否有潜在的某些用户对象中存在的未知属性。

一些旧的用户对象最多有150个属性。 但并不是所有的老用户都有相同的设置。 我想知道谁有什么。

我怎样才能得到任何对象上使用的可用属性的总列表?

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

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