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

如何用PowerShell导出指定OU启用用户并判断是否属于A_ACC前缀用户组

调整后的完整脚本

# 提前查询所有名称以A_ACC开头的AD组,仅查询1次AD,大幅提升执行效率
$targetGroups = Get-ADGroup -Filter "Name -like 'A_ACC*'" | Select-Object Name, DistinguishedName

# 自行替换为实际要查询的OU路径和Company属性目标值
$searchBaseOU = "OU=你的目标OU,DC=域名,DC=后缀"
$targetCompanyValue = "你的指定Company属性值"

# 查询符合条件的已启用AD用户,遍历生成导出对象
Get-ADUser -Filter "Company -eq '$targetCompanyValue'" -SearchBase $searchBaseOU -Properties GivenName, Surname, DisplayName, Company, Department, memberof, PhysicalDeliveryOfficeName | 
Where-Object { $_.Enabled -eq $true } | ForEach-Object {
    # 先构建用户基础属性对象
    $exportObj = [PSCustomObject]@{
        GivenName     = $_.GivenName
        Surname       = $_.Surname
        DisplayName   = $_.DisplayName
        Company       = $_.Company
        Department    = $_.Department
        Location      = $_.PhysicalDeliveryOfficeName
        账号名         = $_.SamAccountName
    }
    # 遍历所有目标组,逐个追加成员状态列
    foreach ($group in $targetGroups) {
        $isMember = $_.memberof -contains $group.DistinguishedName
        # 组名直接作为列名,值可自定义为是/否或Y/N
        $exportObj | Add-Member -MemberType NoteProperty -Name $group.Name -Value ($isMember ? "是" : "否")
    }
    $exportObj
} | Export-Csv -Path 'H:\My Documents\PowerShell_exports\Users_export.csv' -NoTypeInformation -Encoding UTF8

注意事项

  • 运行脚本前需确保设备已安装ActiveDirectory模块,可直接在域控制器、安装了RSAT AD管理工具的Windows设备上运行
  • 若导出的CSV打开后出现中文乱码,可将-Encoding UTF8替换为-Encoding UTF8BOM(PowerShell 7及以上版本支持)或者-Encoding Default
  • 脚本会自动匹配所有A_ACC前缀的组生成对应列,新增/删除对应前缀的组无需修改代码逻辑,执行时会自动适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:15:00