Как подавить предупреждения из 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" - при этом все предупреждающие сообщения будут отключены. Похоже, что-то сломалось. Похоже, это ошибка.