如何用PowerShell导出名称含E3的AD组内所有O365用户详细信息
PowerShell批量导出所有含E3名称AD组下的用户信息脚本
直接使用如下脚本即可实现需求:
# 定义输出文件路径,可自行修改为你需要的路径 $outputPath = "c:\temp\365\O365E3LicenseUsers.csv" # 自动创建输出目录,避免路径不存在报错 $outputDir = Split-Path $outputPath -Parent if (-not (Test-Path $outputDir)) { New-Item -ItemType Directory -Path $outputDir -Force | Out-Null } # 查询所有名称包含E3的AD组 Get-ADGroup -Filter "Name -like '*E3*'" | ForEach-Object { # 递归获取每个组下的所有用户成员 Get-ADGroupMember -Identity $_.DistinguishedName -Recursive | Where-Object ObjectClass -eq "user" } | Get-ADUser -Properties DisplayName, SamAccountName, UserPrincipalName, Mail, Manager, Department, Enabled | # 选择需要导出的字段,按UserPrincipalName去重避免同一用户多组重复导出 Select-Object DisplayName, SamAccountName, UserPrincipalName, Mail, Manager, Department, Enabled | Unique -Property UserPrincipalName | # 导出为CSV,关闭类型信息、使用UTF8编码避免中文乱码 Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8
脚本说明
- 核心逻辑通过
Get-ADGroup -Filter "Name -like '*E3*'"批量匹配所有名称带E3的AD组,无需手动逐个指定组名 - 新增自动去重逻辑,避免同一用户属于多个E3组时重复出现在导出结果中
- 把原脚本的
-Properties *改为仅指定需要查询的属性,大幅提升AD查询效率,适合用户量较大的场景 - 新增输出目录自动创建逻辑、UTF8编码配置,避免路径不存在报错、中文乱码问题
注意事项
- 脚本需要在安装了ActiveDirectory PowerShell模块的设备上运行,可通过
Install-WindowsFeature RSAT-AD-PowerShell安装对应模块 - 如果你需要限定查询的组的OU范围,可以在
Get-ADGroup后添加-SearchBase "OU=许可组,DC=你的域名,DC=后缀"参数,避免匹配到其他无关的带E3名称的组 - 如果需要导出更多用户属性,只需在
Get-ADUser的-Properties参数和Select-Object的字段列表中同步添加对应属性名即可
内容的提问来源于stack exchange,提问作者user17076843
相关产品推荐
相关产品推荐

