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

PowerShell脚本问题:Office 365联机存档邮箱项目计数结果不准确

解决Office 365存档邮箱项目数统计不准确的问题

我明白你遇到的困扰——手动存档了3封邮件,脚本却只返回1,甚至空存档邮箱也显示1,这确实让人头疼。咱们来一步步排查和解决:

问题根源

你当前用的Get-MailboxStatistics -Archive返回的ItemCount统计的是邮箱所有项目的总数,包括系统自动创建的隐藏文件夹(比如\Recoverable Items下的子文件夹)里的项目。即使你没有手动存档任何邮件,存档邮箱里也可能存在1个系统维护的隐藏项目,这就是为什么空邮箱也会显示1的原因。而你手动存档的3封邮件在用户可见的文件夹里,被系统项目的统计结果覆盖了。

解决方案:精准统计用户可见文件夹的项目数

我们可以改用Get-MailboxFolderStatistics来遍历存档邮箱的用户文件夹,排除系统文件夹后累加项目数,这样就能得到真实的手动存档邮件数量。修改后的脚本如下:

$results = @()
$mailboxes = Get-Mailbox -ResultSize Unlimited -Archive

foreach ($mailbox in $mailboxes) {
    $upn = $mailbox.UserPrincipalName
    $username = $mailbox.UserName

    # 获取存档邮箱的文件夹统计,排除系统相关文件夹
    $userFolderStats = Get-MailboxFolderStatistics -Identity $upn -Archive | 
        Where-Object { 
            $_.FolderPath -notlike "\Recoverable Items*" -and 
            $_.FolderPath -notlike "\*System*" -and
            $_.FolderPath -notlike "\Root"
        }

    # 累加所有用户文件夹的项目数
    $totalUserItems = ($userFolderStats | Measure-Object -Property ItemsInFolder -Sum).Sum

    $results += [PSCustomObject]@{
        UserPrincipalName = $upn
        UserName          = $username
        TotalItemCount    = $totalUserItems
    }
}

$results | Export-CSV "c:\results5.csv" -NoTypeInformation -Encoding UTF8

脚本说明

  1. 过滤系统文件夹:通过Where-Object排除了Recoverable Items、系统文件夹和根目录,只统计用户实际使用的文件夹(比如存档的收件箱、已发送邮件等)。
  2. 累加项目数:用Measure-Object对所有用户文件夹的ItemsInFolder求和,得到真实的手动存档项目总数。
  3. 输出结果:将结果存入数组后导出为CSV,保证数据准确性。

你可以运行这个脚本试试,应该就能得到你期望的3这个数值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:22:46