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

PowerShell导出AD特定分发组至CSV失败求助

解决PowerShell导出AD分发组到CSV无内容的问题

你的脚本有两个关键问题导致无法正确写入CSV:

  1. Export-Csv未接收管道输入:你把查询命令和导出命令分开执行,单独运行Export-Csv时没有传入任何数据对象,自然会提示缺少InputObject参数,无法写入内容。
  2. 未获取Exchange专属属性:Get-ADGroup默认不会返回primarySmtpAddress(这是Exchange分发组的属性),必须显式指定要获取该属性,否则select-object会输出空值。

修复方案一:合并查询,一次性导出(推荐)

把三个查询条件合并,减少重复操作,同时确保获取到所需属性:

# 一次性查询所有符合条件的AD组,指定获取Exchange的primarySmtpAddress属性
$targetGroups = Get-ADGroup -Filter {Name -like '*prodnotify*' -or Name -like '*devnotify*' -or Name -like '*prod_ops*'} -Properties DisplayName, primarySmtpAddress

# 筛选需要的列并导出到CSV
$targetGroups | Select-Object DisplayName, primarySmtpAddress | Export-Csv -Path "C:\Users\username\Documents\WindowsPowerShell\CSVs\Test.csv" -Delimiter ";" -NoTypeInformation

Write-Host "`nDone. Press any key to exit."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

修复方案二:保留原查询结构,修正管道连接

如果需要保留三次独立查询的结构,要确保每个查询结果直接通过管道传给Export-Csv:

# 每个查询直接管道到导出命令,确保数据被传递
Get-ADGroup -Filter "Name -like '*prodnotify*'" -Properties DisplayName, primarySmtpAddress | Select-Object DisplayName, primarySmtpAddress | Export-Csv -Path "C:\Users\username\Documents\WindowsPowerShell\CSVs\Test.csv" -Delimiter ";" -Append -NoTypeInformation

Get-ADGroup -Filter "Name -like '*devnotify*'" -Properties DisplayName, primarySmtpAddress | Select-Object DisplayName, primarySmtpAddress | Export-Csv -Path "C:\Users\username\Documents\WindowsPowerShell\CSVs\Test.csv" -Delimiter ";" -Append -NoTypeInformation

Get-ADGroup -Filter "Name -like '*prod_ops*'" -Properties DisplayName, primarySmtpAddress | Select-Object DisplayName, primarySmtpAddress | Export-Csv -Path "C:\Users\username\Documents\WindowsPowerShell\CSVs\Test.csv" -Delimiter ";" -Append -NoTypeInformation

Write-Host "`nDone. Press any key to exit."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

更适合Exchange Online的方案

既然你已经导入了ExchangeOnlineManagement模块,建议用专门的Exchange命令Get-DistributionGroup,它默认就包含PrimarySmtpAddress属性,无需额外指定:

# 查询Exchange Online中的分发组
$targetGroups = Get-DistributionGroup -Filter {Name -like '*prodnotify*' -or Name -like '*devnotify*' -or Name -like '*prod_ops*'}

$targetGroups | Select-Object DisplayName, PrimarySmtpAddress | Export-Csv -Path "C:\Users\username\Documents\WindowsPowerShell\CSVs\Test.csv" -Delimiter ";" -NoTypeInformation

Write-Host "`nDone. Press any key to exit."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:33:14