PowerShell,Active Directory 获取对象问题

PowerShell,Active Directory 获取对象问题

我的任务是创建 Active Directory 中自定义对象/自定义属性的成员列表。我认为最好的方法是使用 PowerShell。我可以列出特定 OU 中的对象,但无法进一步深入获取对象内特定属性的成员/值。以下是我所拥有的:

自定义属性:bofaAMLMember(这是一个 objectclass=top:attributeSchema)

如果我运行:

Get-ADObject –LDAPFilter "(ObjectClass=bofaAML)" –SearchBase "OU=DEVELOPMENT,OU=IIS,OU=APPHOST,OU=SERVERS AML,OU=BAND,DC=CORP,DC=someplace,DC=COM" -searchscope subtree

输出是一长串数据:

DistinguishedName                                     Name                  ObjectClass                         
--------------------------------------------------------------------------------------------------
    CN=RG-AdministratorsMembers,OU=Ld Unified      RG-AdministratorsMembers       bofaAML
    CN=RG-PowerUsersMembers,OU=Ld Unified          RG-PowerUsersMembers           bofaAML
    CN=UR-DenyLogonViaTerminalServ,OU=India        UR-DenyLogonViaTerminalServ    bofaAML
    CN=UR-LogonAsService,OU=India Remitter         UR-LogonAsService              bofaAML 

由于宽度等原因,我截断了列表。

它向我展示了所有具有自定义属性 bofaaml 和 attributeSchema 对象类的项目。

如果您在 AD 或 ADSI 中,打开其中任何一个并转到“属性编辑器”,您将看到一个名为 bofaAMLMember 的属性 - 它具有多值“成员”成员是 CN 列出的其他 AD 帐户/属性。我需要成员列表。我已经为此工作了一个星期,但似乎无法让它发挥作用。我不确定是否有办法添加 Get-Member 等...

答案1

Get-ADObject与所有其他 PowerShell cmdlet 一样Get-AD*,默认情况下仅查询 Active Directory 以获取对象属性的子集。如果您希望它查询非默认属性,则需要使用参数-Properties

例如:
Get-ADUser默认情况下不查询mail属性;如果您想获取用户的电子邮件地址,则必须运行Get-ADUser -Properties mail

对于自定义对象类中的自定义属性来说,情况当然更是如此,因为 PowerShell cmdlet 对此根本一无所知。

尝试添加-Properties bofaAMLMember到您的命令中,它应该返回包含非标准属性和标准属性的对象。

您还可以使用-Properties *查询 Active Directory 来获取全部与过滤器匹配的对象中的属性。警告:这可能非常慢,并且可能会对您正在查询的域控制器和您正在运行 PowerShell 的计算机(如果不是 DC 本身)造成很大的负载。Active Directory 对象具有比常用属性更多的属性。

相关内容