用于获取邮箱大小列表的Exchange 2013 Powershell脚本错误

编辑:它看起来像问题是Exchangepipe理员angular色的问题。 当我的主pipe升级我们的服务器到Exchange 2013,看起来像我的帐户没有被添加到任何一个。 这也解释了为什么我永远无法用我的账户loginEAC。 我已经更新了pipe理angular色,我以前的脚本现在正在工作。

当我使用下面的脚本,它只是为我自己返回信息。

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize 

我也尝试了以下两个脚本,但都返回的错误,无法find-Server或-Database参数。

 Get-MailboxStatistics -Server SERVERNAME | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount -auto Get-MailboxStatistics -database "DATABASENAME" | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount -auto 

我已经尝试以pipe理员身份运行Exchange Management Powershell,并且首先使用“#Enable Exchange cmdlet”,但似乎都没有帮助解决这个问题。

让我知道是否需要其他信息,并提前感谢。

如果您没有在屏幕上看到您认为您应该看到的内容,请注意最后一行。 我不记得是我自己写的,还是从几年前在网上发现的。 也适用于Exchange 2010(如果更改为V14)。 如果您打开Exchange PowerShell窗口,则可以省略连接到Exchange的部分。 我也离开了我的testing线。

 # Make powershell connection to Exchange . 'E:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1' $AllMailboxes = @() $Mailboxes = Get-Mailbox -ResultSize Unlimited | Select DisplayName, Database, IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, RetainDeletedItemsFor, Alias #$Mailboxes = Get-Mailbox -ResultSize 10 | Select DisplayName, Database, IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, RetainDeletedItemsFor, Alias foreach ($Mailbox in $Mailboxes){ $MailboxStats = "" |Select DisplayName,Database,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota,TotalItemSizeInMB,ItemCount,StorageLimitStatus,RetainDeletedItemsFor $Stats = Get-MailboxStatistics -Identity $Mailbox.Alias $MailboxStats.DisplayName = $Mailbox.DisplayName $MailboxStats.Database = $Mailbox.Database if ($Mailbox.IssueWarningQuota -eq "unlimited") {$MailboxStats.IssueWarningQuota = "database default"} else {$MailboxStats.IssueWarningQuota = $Mailbox.IssueWarningQuota} if ($Mailbox.ProhibitSendQuota -eq "unlimited") {$MailboxStats.ProhibitSendQuota = "database default"} else {$MailboxStats.ProhibitSendQuota = $Mailbox.ProhibitSendQuota} if ($Mailbox.ProhibitSendReceiveQuota -eq "unlimited") {$MailboxStats.ProhibitSendReceiveQuota = "database default"} else {$MailboxStats.ProhibitSendReceiveQuota = $Mailbox.ProhibitSendReceiveQuota} if ($Stats.TotalItemSize -eq $NULL){$MailboxStats.TotalItemSizeInMB = 0} else {$MailboxStats.TotalItemSizeInMB = $Stats.TotalItemSize.Value.ToMB()} $MailboxStats.ItemCount = $Stats.ItemCount $MailboxStats.StorageLimitStatus = $Stats.StorageLimitStatus $MailboxStats.RetainDeletedItemsFor = $Mailbox.RetainDeletedItemsFor $AllMailboxes += $MailboxStats } $AllMailboxes | Sort-Object StorageLimitStatus,TotalItemSizeInMB -descending | Export-Csv E:\Temp\mailboxsizes.csv -NoTypeInformation 

一个简单的方法是将所有的数据库传送给查询:

 get-MailboxDatabase | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount -auto