用于多个Ou的Powershell的Ldap筛选器

用于多个Ou的Powershell的Ldap筛选器,powershell,filter,ldap,ou,Powershell,Filter,Ldap,Ou,大家好,Powershell还是个新手,以前从未使用过Ldap-filter,所以我有个问题。是否可以通过一个Ldap筛选器从多个Ou中获取AD用户 OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl OU=C6,OU=Ex

大家好,Powershell还是个新手,以前从未使用过Ldap-filter,所以我有个问题。是否可以通过一个Ldap筛选器从多个Ou中获取AD用户

OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl
很抱歉,我甚至没有一个代码示例,但我尝试过的任何东西都不能接近我想要的。
我对TIPP、提示、想法等持开放态度。谢谢。

这不是LDAP查询,在非常大的环境中可能会有可疑,但通常我建议使用Powershell的筛选选项,如下所示:

Get-ADUser -Filter  * | Where-Object { $_.DistinguishedName.split(",",2)[1] -in 
    "OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
}

您不能使OU成为LDAP筛选器的一部分。但您可以将OU作为搜索的基础,并发布多个搜索

# an array of OUs, this could also be achieved with e.g. $OUs = Get-Content 'some_file.txt'
$OUs = @(
    "OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
)

foreach ($ou in $OUs) {
    Get-ADUser -SearchBase $ou
}

1.为什么需要将其放在一个过滤器中?2.您始终可以使用foreach循环来完成您的操作。3.是的,这也是可能的。可以将筛选语句与布尔运算符组合。示例Get-ADUser-Filter{Email-like*-和姓氏-eq smith}-或Get-ADUser-Filter{Email-like*-和sn-eq smith}LDAP筛选器等效:&sn=smithobjectClass=useremail=*小心-CN=Doe\,John,OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for me,DC=nl是有效的DNwell它必须是ldap筛选器,结果必须是一个字符串,因此我不能使用普通循环。它必须是ldap筛选器,结果必须是一个字符串,因此我不能使用普通循环。它不能是ldap筛选器,因为OU不能是ldap筛选器的一部分。另外,我不确定你所说的结果是什么意思。结果很少是PowerShell中的字符串,在这种情况下,结果是ADUser对象。