Exchange 2010禁止Get-MailboxStatistics警告

如何从Exchange 2010的PowerShell Get-MailboxStatistics cmdlet中取消警告?

我已经尝试了这两个选项:

Get-MailboxStatistics -WarningAction SilentlyContinue
Get-MailboxStatistics -ErrorAction SilentlyContinue

但是,我仍然得到这个警告输出到控制台关于用户没有login到他们的邮箱:

警告:用户还没有login到邮箱… [剪切] …,所以没有数据要返回。 用户login后,此警告将不再显示。

我也尝试了$ WarningActionPreference =“SilentlyContinue” – 这将设置所有的警告消息沉默。 看起来有些坏了 看起来像有一个错误。

https://connect.microsoft.com/PowerShell/feedback/details/541500/warning-verbose-and-debug-streams-do-not-respect-action-preferences-the-way-they-should

我一直在玩这个,试图重现这个问题(虽然我在Exhcange 2007上,所以这可能会有所作为,我对PowerShell也很新颖)。 从一个新的邮箱"Testy McTest"

 >get-variable |where { $_.Name -match "Preference" } Name Value ---- ----- ConfirmPreference High DebugPreference SilentlyContinue ErrorActionPreference Continue ProgressPreference Continue VerbosePreference SilentlyContinue WarningPreference Continue WhatIfPreference False 

我可以运行以下内容:

 >Get-MailboxStatistics "Testy McTest" WARNING: There is no data to return for the specified mailbox 'Testy McTest', because it has not been logged on to. >Get-MailboxStatistics -WarningAction SilentlyContinue "Testy McTest" (No Output) >Set-Variable WarningPreference SilentlyContinue >Get-MailboxStatistics "Testy McTest" (No output) > 

这似乎正常工作。 值得一提的是,Error和Warning操作的variables实际上是ErrorActionPreferenceWarningPreference 。 不知道他们为什么这样不同。

作为问题中特定命令的解决方法,您可以使用类似于以下内容来限定输出:

 >Get-MailboxStatistics |where { $_.LastLogonTime } 

这似乎只列出具有login时间的邮箱。

懒惰的解决方法:将输出输出到|clip然后粘贴到记事本中。 没有错误!