You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Active Directory中检索OU名称含Terminated关键词的用户?PowerShell脚本优化问询

简化Active Directory批量检索含Terminated OU用户的PowerShell脚本

我来帮你搞定这个简化需求!你不用再手动逐个指定OU,完全可以通过动态匹配OU名称的方式实现批量获取用户,具体分两步操作:

步骤1:获取所有符合条件的OU

首先用Get-ADOrganizationalUnit命令,在指定的父OU(Ex Domain Users)下筛选出名称包含Terminated的所有子OU:

# 先定义父OU的完整路径
$parentOU = "OU=Ex Domain Users,DC=xxx,DC=local"

# 获取所有名称包含Terminated的直接子OU
# 如果需要包含多级嵌套的子OU,把-SearchScope改成Subtree即可
$terminatedOUs = Get-ADOrganizationalUnit -Filter {Name -like "*Terminated*"} -SearchBase $parentOU -SearchScope OneLevel

步骤2:遍历OU批量获取用户

接下来遍历这些OU,逐个拉取用户并合并结果,这里给两种写法供你选择:

写法1:foreach循环(直观易懂)

# 初始化空数组存储用户数据
$users = @()

foreach ($ou in $terminatedOUs) {
    # 从当前OU中获取所有用户,追加到数组中
    $users += Get-ADUser -Filter * -SearchBase $ou.DistinguishedName
}

写法2:管道写法(性能更优,推荐)

# 用管道遍历OU,直接收集所有用户结果
$users = $terminatedOUs | ForEach-Object {
    Get-ADUser -Filter * -SearchBase $_.DistinguishedName
}

额外注意事项

  • 执行脚本前确保已加载Active Directory模块:Import-Module ActiveDirectory
  • 替换脚本中的DC=xxx,DC=local为你实际的域信息
  • 如果你的Terminated OU下还有多层子OU需要递归检索,记得把-SearchScope OneLevel改为-SearchScope Subtree

这样以后再新增名称包含Terminated的OU,脚本不需要做任何修改就能自动包含进去,比硬编码四个OU要灵活得多!

内容的提问来源于stack exchange,提问作者Eray Balkanli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:02:38