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

如何合并/追加两个Exchange PowerShell脚本的导出信息至同一CSV?

解决Exchange 2010中邮箱与邮箱统计信息合并导出CSV的问题

直接追加CSV内容会导致列不匹配,正确的做法是在PowerShell中先将邮箱信息与对应的统计信息合并为同一对象,再导出到CSV文件。以下是可行的脚本:

Get-Mailbox -ResultSize Unlimited | ForEach-Object {
    # 保存当前邮箱对象
    $mailbox = $_
    # 获取当前邮箱的统计信息
    $mailboxStats = Get-MailboxStatistics -Identity $mailbox.Identity | Select-Object StorageLimitStatus, TotalItemSize
    # 合并邮箱属性与统计信息属性,输出新对象
    $mailbox | Select-Object AddressBookPolicy, ProhibitSendQuota, SamAccountName, UserPrincipalName, WhenMailboxCreated, Alias, OrganizationalUnit, CustomAttribute1, DisplayName, PrimarySmtpAddress, RecipientType, RecipientTypeDetails, WindowsEmailAddress, WhenChanged, WhenCreated,
        @{Name='StorageLimitStatus'; Expression={$mailboxStats.StorageLimitStatus}},
        @{Name='TotalItemSize'; Expression={$mailboxStats.TotalItemSize}}
} | Export-Csv -NoTypeInformation .\Mailboxes_combined.csv -Delimiter ";" -Encoding Unicode

关键说明:

  • 遍历每个邮箱对象,为每个邮箱单独获取对应的统计信息,确保邮箱标识一一对应,避免数据错位
  • 通过计算属性(@{Name=; Expression=})将统计信息的字段添加到原邮箱对象中,最终导出的CSV包含所有需要的列,且同一邮箱的所有信息在同一行
  • 无需事后追加文件,一次性完成数据合并与导出

为什么AddContent无法解决问题:

AddContent仅负责将文本内容追加到文件末尾,不会解析CSV的列结构。第二个脚本导出的CSV表头和数据会被当成新行内容直接添加,导致列数不匹配,出现数据错位的情况。

内容的提问来源于stack exchange,提问作者Mike JCR iTech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:35:22