如何抑制来自 Exchange 2010 的 PowerShell Get-MailboxStatistics
cmdlet 的警告?
我已经尝试过这两个选项:
Get-MailboxStatistics -WarningAction SilentlyContinue
Get-MailboxStatistics -ErrorAction SilentlyContinue
但是,我仍然会在控制台上输出有关尚未登录其邮箱的用户的警告:
警告:用户尚未登录邮箱...[截图]...,因此没有数据可返回。用户登录后,此警告将不再出现。
答案1
我还尝试了 $WarningActionPreference = "SilentlyContinue" ——这会将所有警告消息设置为静音。看起来有些地方出了问题。看起来有一个错误。
答案2
我一直在尝试这个问题,试图重现这个问题(不过,我在 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)
>
这似乎正常工作。值得一提的是,错误和警告操作的变量实际上是ErrorActionPreference
和WarningPreference
。不确定它们为什么会有这样的差异。
作为问题中特定命令的解决方法,您可以限定输出,例如:
>Get-MailboxStatistics |where { $_.LastLogonTime }
其中似乎只列出了那些邮箱有登录时间。