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

请求编写PowerShell脚本查询指定OU内用户的AD组并导出CSV

PowerShell脚本:导出指定OU内用户及其所属AD组到CSV
# 指定目标OU的LDAP识别名(替换成你的实际OU路径)
$targetOU = "OU=Disabled Users,DC=contoso,DC=com"

# 获取目标OU下的所有AD用户
$users = Get-ADUser -Filter * -SearchBase $targetOU -Properties Name, SamAccountName

# 初始化空数组存储结果
$results = @()

# 遍历每个用户,拉取所属AD组
foreach ($user in $users) {
    try {
        # 获取用户的所有所属组(含嵌套组)
        $groups = Get-ADPrincipalGroupMembership -Identity $user.SamAccountName | Select-Object -ExpandProperty Name
        
        # 为每个组生成一条独立记录
        foreach ($group in $groups) {
            $results += [PSCustomObject]@{
                用户名 = $user.Name
                登录名_SAM = $user.SamAccountName
                AD组名 = $group
            }
        }
    }
    catch {
        Write-Warning "无法获取用户 $($user.SamAccountName) 的组信息:$_"
    }
}

# 导出结果到CSV文件(替换成你的输出路径)
$outputPath = "C:\Temp\DisabledUsers_Groups.csv"
$results | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

Write-Host "导出完成!文件路径:$outputPath"

关键说明

  1. 获取OU的LDAP路径:如果不知道目标OU的LDAP识别名,运行以下命令即可查询:
    Get-ADOrganizationalUnit -Filter "Name -eq 'Disabled Users'" | Select-Object -ExpandProperty DistinguishedName
    
  2. 用户组获取逻辑:用Get-ADPrincipalGroupMembership可以直接拉取用户的所有所属组(包括嵌套组),比解析memberof属性更简洁。如果遇到用户失效或权限问题,try-catch会输出警告但不中断整个脚本。
  3. CSV格式优化:每条记录对应一个用户-组对,方便后续用Excel或其他工具筛选分析;-Encoding UTF8确保中文等特殊字符显示正常,-NoTypeInformation移除CSV开头的冗余类型注释。

注意事项

  • 需提前安装Active Directory模块:Windows服务器可通过Install-WindowsFeature RSAT-AD-PowerShell命令安装,或通过服务器管理器添加角色功能。
  • 运行脚本的账号需要有读取AD用户、组信息的权限。
  • 若目标OU包含大量用户,建议在非高峰时段执行,避免占用AD服务器资源。

内容的提问来源于stack exchange,提问作者S.Mahmood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:05:35