Назад | Перейти на главную страницу

Exchange 2010 подавляет предупреждения Get-MailboxStatistics

Как подавить предупреждения из Exchange 2010 PowerShell Get-MailboxStatistics командлет?

Я пробовал оба варианта:

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

Однако я все еще получаю это предупреждение на консоли о пользователях, которые не вошли в свои почтовые ящики:

ВНИМАНИЕ: Пользователь не вошел в почтовый ящик ... [вырезано] ..., поэтому нет данных для возврата. После входа пользователя в систему это предупреждение больше не будет появляться.

Я играл с этим, пытаясь воссоздать проблему (хотя я использую 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 на самом деле ErrorActionPreference и WarningPreference. Не знаю, почему они так различаются.

В качестве обходного пути для конкретной команды в вопросе вы можете квалифицировать вывод примерно так:

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

Который, кажется, перечисляет только те почтовые ящики, которые иметь время входа в систему.

Я также попробовал $ WarningActionPreference = "SilentlyContinue" - при этом все предупреждающие сообщения будут отключены. Похоже, что-то сломалось. Похоже, это ошибка.

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