【发布时间】:2017-11-30 13:20:38
【问题描述】:
我需要为 4000 个用户运行 Get-MailboxStatistics,我在想有一种方法可以加速 Get-MailboxStatistics。
我在论坛上阅读了如何使用Get-MailboxStatistics -Server,但我认为它不能用于Exchange Online。因为我们不知道邮箱所在的服务器。
我可以使用以下 cmdlet:
$MailboxStat = Invoke-Command -ScriptBlock {
Get-MailboxStatistics $mailbox.UserPrincipalName |
Select-Object TotalItemSize,DisplayName
}
我只需要每个邮箱用户的TotalItemSize 和DisplayName。我不知道这是否真的会加速。
【问题讨论】:
-
将您的命令放入
Invoke-Command不会加快速度。Invoke-Command可用于在远程计算机上并行运行脚本块,但这不是您要在此处完成的任务。您可以使用Job cmdlets 或Runspaces 在您的系统上并行运行任务。 -
您能否进一步阐明“加速”的含义?您是否已经遍历了 4000 个用户中的每一个并运行 Get-MailboxStatistics 命令,但获得结果的速度不够快?您是否对每个邮箱单独运行上述代码?
-
是的,我正在为 4000 个用户循环运行,Get-MailboxStatistics 需要一秒钟来检索详细信息。我正在分别针对每个邮箱运行
标签: powershell office365 exchange-server powershell-remoting