当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 报告 Exchange 邮箱统计信息的新方法

作者:精品下载站 日期:2024-12-14 04:13:19 浏览:14 分类:玩电脑

报告 Exchange 邮箱统计信息的新方法


一个问题引发了关于如何最好地报告 Exchange 邮箱统计信息的一些新想法

Practical365.com 的根源在于 ExchangeServerPro.com,这是一个致力于 Exchange Server 管理各个方面的网站。这意味着该网站仍然支持 2010 年至 2015 年期间撰写的数百篇帖子。这些帖子所涉及的主题仍然存在问题,我们会尽力回答这些问题,即使这些问题涉及长期过时的服务器的问题。

最近有关 Exchange 邮箱的报告文件夹统计信息的文章的一个问题询问如何查找包含 50 GB 以上邮箱的最早接收日期的项目的文件夹。提问者编写的 PowerShell 代码是一个很好的例子,说明一组管道命令可以变得多么复杂。管道式单行命令可能是完成任务的一种好方法,但它们也难以阅读和维护,Michel de Rooij 在他的实用 PowerShell 专栏中指出了这一点。无论如何,我尝试帮助开发对我有用的代码版本。至少,它适用于 Exchange Online。

这次经历让我思考了为报告 Exchange 邮箱统计信息而编写的许多脚本。这是经典的 Exchange PowerShell 脚本之一,大多数 Exchange 管理员可能都有自己的版本。我上次运行该主题时使用图形邮箱使用数据而不是 Exchange cmdlet 来获得一些速度。世界还能接受另一个版本吗?嗯,也许是这样。

经典脚本的新演绎

我对这个经典脚本的新看法可以从 GitHub 获取。该脚本速度并不快,因为它使用 Get-ExoMailboxStatisticsGet-ExoMailboxFolderStatistics cmdlet,这两个命令都不以敏捷着称。运行 Get-ExoMailbox cmdlet 来获取大量邮箱进行处理也需要时间。在较大的组织中,最好使用 Get-ExoMailbox cmdlet 应用过滤器来查找不同的邮箱集,例如部门或办公室中的所有邮箱。

该脚本的基本轮廓是:

  • 运行 Get-ExoMailbox 来查找要处理的邮箱。
  • 对于每个邮箱,运行 Get-ExoMailboxStatistics 来获取邮箱统计信息。如果邮箱有存档,则脚本运行 Get-ExoMailboxStatistics 来获取存档邮箱的统计信息。
  • 运行 Get-ExoMailboxFolderStatistics 来获取邮箱文件夹的详细信息。与以前一样,如果邮箱启用了存档,则脚本会再次运行 cmdlet 以获取存档邮箱中文件夹的详细信息。这些命令包括一个过滤器,以避免处理用于邮箱中存在但用户通常不访问的不同后台操作的文件夹,例如日历日志记录、冲突、PersonMetaData 和审核。
  • 该脚本捕获每个文件夹的详细信息,包括文件夹中最旧和最新的项目。
  • 该脚本还捕获主邮箱和存档邮箱的总体统计信息。
  • 由于 Get-ExoMailbox cmdlet 不会返回用户的城市、部门、办公室或职位等详细信息,因此脚本运行 Get-User cmdlet 来获取此信息。运行 Get-User 会增加处理每个邮箱所需的时间,因此如果您不想使用此信息,则应在脚本中注释掉此行。总的来说,我认为 Get-User 获取的信息很有帮助,这就是它出现在脚本中的原因。
  • 处理完所有邮箱后,脚本会生成 HTML 报告。图 1 显示了为邮箱报告的数据的典型示例。该脚本还会生成一个 CSV 文件,其中包含邮箱统计信息的详细信息。

[玩转系统] 报告 Exchange 邮箱统计信息的新方法

正如您所看到的,报告列出了:

  • 总体邮箱统计。
  • 主邮箱中的文件夹。
  • 主邮箱的可恢复项目文件夹(有时最好知道这些文件夹是否接近其配额限制)。
  • 如果邮箱启用了存档,则报告会列出存档邮箱中的文件夹和可恢复项目文件夹。

使用报告数据的其他方式

脚本捕获的两个 PowerShell 列表中记录的数据可以进行切片和切块以生成其他报告。例如,要按大小顺序列出邮箱,请运行以下命令(输出如图 2 所示):

$MbxReport | Sort-Object {$_.'Primary mailbox size bytes' -as [float]} -Descending | Format-Table Mailbox, 'Primary Mailbox Size GB', 'Primary Mailbox total items', 'Archive mailbox size GB' -AutoSize

[玩转系统] 报告 Exchange 邮箱统计信息的新方法

由于 $MbxReport 列表包含城市、部门和办公室等用户的详细信息,因此您可以根据这些属性对日期进行排序和查询。例如:

$MbxReport | Where-Object City -match 'Dublin' | Format-Table Mailbox, 'Primary Mailbox Size GB', 'Primary Mailbox total items', 'Archive mailbox size GB' -AutoSize

该脚本仅报告用户邮箱。有些人可能喜欢包括共享邮箱。如果是这样,您可以将 Get-ExoMailbox 命令修改为:

[array]$Mailboxes = Get-ExoMailbox -RecipientTypeDetails UserMailbox, SharedMailbox -ResultSize Unlimited `
    -PropertySets Archive -Properties DisplayName, RecipientTypeDetails | Sort-Object DisplayName

该脚本捕获 $MbxReport 列表中的邮箱类型,因此如果您添加共享邮箱,它将过滤用户和共享邮箱并分别报告每种类型。例如,此命令查找报告中的所有用户邮箱:

$MbxReport | Where-Object 'Mailbox type' -match 'Usermailbox'

我尚未在本地 Exchange Server 上测试过代码,但我认为如果将 Get-ExoMailbox 替换为 Get-Mailbox Get -ExoMailboxStatisticsGet-MailboxStatistics,以及 Get-ExoMailboxFolderStatisticsGet-MailboxFolderStatistics。但是,我无法提供保证,因为我没有本地服务器来运行脚本。

也许这个剧本会成为经典

与往常一样,该脚本说明了原理,并且可以通过多种方式进行改进,特别是通过更好的错误处理。我想我正在等待 Michel de Rooij 在未来的实用 PowerShell 专栏中描述处理错误的最佳方法。与此同时,我有趣地思考如何处理自 2006 年以来很多人编写的脚本。这个脚本可能永远不会成为经典,但我认为它有一些有价值的新元素。但我想在写了 240 多行 PowerShell 后我会这么说。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯