答案1
获取 DN 中具有特定 OU 的所有用户
不幸的是,Microsoft AD 不允许使用通配符搜索可分辨名称值。此外,用户对象的“OU”属性不会自动填充。OU 属性只会在 OU 对象上自动填充。
为了达到你的目标,你需要
- 查询整个域中的所有用户,并在客户端过滤完整结果集或
- 使用脚本查询工具进行多个查询。
- 如果您知道只有一个 OU 想要查询,并且该 OU 永远不会改变,则可以使用
searchbase
set 进行单个查询。
多查询方法的第 1 部分枚举具有所需名称的 OU。第 2 部分运行第二个查询,其中搜索基础是每个路径,过滤器是 (objectCategory=user)。在 Powershell 中,您可以这样做:
Import-Module -name ActiveDirectory
get-adobject -ldapFilter "(&(objectCategory=organizationalUnit)(ou=SOMENAME))" | foreach {
get-aduser -searchscope oneLevel -searchbase $_.distinguishedName -ldapfilter "(objectCategory=user)"
}
答案2
使用 dsquery
dsquery user "OU=Users_MSS_DAL,OU=...,OU=com"
查找独特的 OU 名称(如果不确定):
dsquery ou domainroot -name "*MSS*"
查找一个用户的 OU:
dsquery user -name "*lastname*"
(用真实姓氏替换姓氏)
确保使用 2 个通配符,例如“卫星发射系统“-否则搜索可能什么也不返回