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

如何批量开展Active Directory组成员审计并与权限基线比对

AD用户组成员身份与权限基线批量审计方案

前置依赖

执行脚本的设备需为域控或已安装RSAT-AD-PowerShell模块的域成员机器,使用拥有目标OU读取权限的域账号运行即可。


1. 定义权限基线与审计范围

# 定义岗位-AD组基线映射,可按需补充QA、培训师等岗位的对应组
$roleGroupBaseline = @{
    "坐席" = @("A","B","C","D","E")
    "团队主管" = @("F","G","H","X","Y","Z")
}

# 按需修改为需要审计的用户OU路径
$auditOU = "OU=正式员工,DC=你的域名,DC=com"

2. 批量拉取用户与所属组数据

# 导入ActiveDirectory模块
Import-Module ActiveDirectory

# 拉取目标OU下所有启用用户的基础信息与所属组列表
$allUsers = Get-ADUser -Filter {Enabled -eq $true} -SearchBase $auditOU -Properties memberOf,Department,Title

3. 基线比对生成审计结果

$auditResult = foreach ($user in $allUsers) {
    # 此处默认取AD用户的Title字段作为岗位标识,可根据实际业务调整为其他属性
    $userRole = $user.Title
    # 跳过无对应基线配置的岗位
    if (-not $roleGroupBaseline.ContainsKey($userRole)) {
        continue
    }
    # 提取用户当前所属组的纯名称(过滤DN格式前缀)
    $currentGroups = $user.memberOf | ForEach-Object { ($_ -split 'CN=|,OU=|,DC=')[1] }
    $baselineGroups = $roleGroupBaseline[$userRole]
    
    # 计算合规差异
    $missingGroups = Compare-Object -ReferenceObject $baselineGroups -DifferenceObject $currentGroups | Where-Object {$_.SideIndicator -eq "<="} | Select-Object -ExpandProperty InputObject
    $extraGroups = Compare-Object -ReferenceObject $baselineGroups -DifferenceObject $currentGroups | Where-Object {$_.SideIndicator -eq "=>"} | Select-Object -ExpandProperty InputObject

    # 结构化输出结果
    [PSCustomObject]@{
        账号名 = $user.SamAccountName
        姓名 = $user.Name
        岗位 = $userRole
        所属部门 = $user.Department
        基线缺失组 = if ($missingGroups) {$missingGroups -join ","} else {"无"}
        超权限组 = if ($extraGroups) {$extraGroups -join ","} else {"无"}
        合规状态 = if (-not $missingGroups -and -not $extraGroups) {"合规"} else {"不合规"}
    }
}

# 导出审计结果到CSV文件
$outputPath = "AD组权限审计结果_$(Get-Date -Format 'yyyyMMddHHmm').csv"
$auditResult | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

补充说明

  • 若岗位信息未存储在Title字段,可根据实际规则调整岗位识别逻辑,比如按部门+自定义扩展属性组合判断
  • 如需自动清理超权限组,可筛选出超权限组不为空的用户后调用Remove-ADGroupMember批量执行,操作前建议先备份AD数据并小范围测试
  • 可将脚本配置为定期运行的计划任务,自动输出权限合规报表
  • 执行脚本的账号仅需AD读取权限即可完成审计,如需修改权限则需要对应AD组的编辑权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:57:03