Arhn - архитектура программирования

Powershell 2: невозможно подавить предупреждающее сообщение

Я делаю вызов командлета «set-distributiongroup» в powershell 2. Я просто устанавливаю значение параметра «hiddenFromAddressListsEnabled» в предопределенное логическое значение.

Однако, что бы я ни пытался, он отображает предупреждающее сообщение, если логическое присваивание фактически не изменяет текущее значение «hiddenFromAddressListsEnabled».

Вот основная команда, которую я вызываю:

set-DistributionGroup -identity TestGroup                  `
                      -hiddenFromAddressListsEnabled=$true

Давайте семантически определим то, что я выше, как «команда».

Теперь я попытался добавить несколько разных вариантов, все с правильным продолжением строки и синтаксисом. Вот эти варианты:

command > $null
command 2> $null
command -ErrorAction:silentlycontinue
command -ErrorVariable $throwAway
command -WarningAction:silentlycontinue
command -WarningVariable $throwAway
$var = command

Независимо от различных комбинаций одного или нескольких из вышеперечисленных, я все равно получаю желтое ПРЕДУПРЕЖДЕНИЕ: сообщение плевать на вывод. В частности, это:

WARNING: The command completed successfully but no settings of
'<xxxxxx>/Users/TestGroup' have been modified.

Любые предложения по ключевой концепции, которую я не понимаю? Я хочу, чтобы команда не производила этот вывод, и я хочу, чтобы она продолжалась без вывода сообщений, если это произойдет.

Спасибо!!

12.09.2011

  • Разве -hiddenFromAddressListsEnabled=$true не должно быть -hiddenFromAddressListsEnabled:$true или -hiddenFromAddressListsEnabled $true? 12.09.2011
  • Да. Это была опечатка, которую я обнаружил сразу после написания этого поста. Тем не менее, исходная проблема все еще остается. 13.09.2011

Ответы:


1

Я пытался подавить предупреждающие сообщения при остановке службы:

WARNING: Waiting for service 'Service Description' to finish stopping...

Для меня работало следующее:

Stop-Service $svc.Name -WarningAction SilentlyContinue
25.09.2012

2

Если это просто предупреждение, вызывающее проблему, почему бы вам не установить в своем скрипте переменную $WarningPreference?

PS C:\> $WarningPreference='silentlycontinue'
PS C:\> Write-Warning "coucou"
PS C:\> $WarningPreference='continue'
PS C:\> Write-Warning "coucou"
AVERTISSEMENT : coucou
13.09.2011
  • Потому что, проще говоря, это не сработало. Я сделал именно то, что вы предложили, чтобы установить для WarningPrefernce тихое продолжение, но предупреждение все равно появилось на консоли. 14.09.2011

  • 3

    Вы можете столкнуться с этой ошибкой: http://connect.microsoft.com/PowerShell/feedback/details/541500/warning-verbose-and-debug-streams-do-not-respect-action-preferences-каконидолжны

    В любом случае, ваша команда должна выглядеть так:

    Set-DistributionGroup -Identity TestGroup -HiddenFromAddressListsEnabled $true
    
    12.09.2011
  • Мммм - это печально. Я подтвердил, что моя команда выглядит идентично тому, что вы указали. Похоже, что если я действительно не хочу, чтобы это предупреждающее сообщение появлялось, мне нужно обернуть вызов внутри некоторой (крайне ненужной) логики: если текущее значение уже равно желаемому значению, не делайте этого. попробуй позвонить. Звучит правильно? 12.09.2011
  • да, вы можете использовать Get-DistributionGroup, чтобы найти текущее значение и установить его, если оно не соответствует вашим требованиям. И все это из-за предупреждающего сообщения? 13.09.2011
  • да, все это из-за предупреждающего сообщения. Мой код будет работать с десятками тысяч записей, и возможность быстрого сканирования файла журнала на наличие проблем будет иметь решающее значение. Более критично, чем эффективность, полученная за счет отказа от этого типа проверки. Я не хочу, чтобы 10 000 предупреждающих сообщений загромождали журналы. Чего я действительно хочу, так это того, чтобы Microsoft объединила свои действия и сделала все формы обработки вывода согласованными. :) 13.09.2011
  • Можете ли вы попробовать это, это работает на моей тестовой виртуальной машине: Set-Mailbox User1 -HiddenFromAddressListsEnabled $false -WarningAction SilentlyContinue 13.09.2011
  • К сожалению, я все еще получил предупреждение, написанное на консоли. :( 14.09.2011
  • У меня это работало на машине Exchange 2007. Кстати, что вы делаете, чтобы логировать операцию? 14.09.2011

  • 4

    Ваша команда неверна. По этой причине вы получаете желтое сообщение об ошибке. Команда должна выглядеть так:

    Set-DistributionGroup -Identity TestGroup -HiddenFromAddressListsEnabled $true
    

    Or

    Set-Distributionaliste -Identity TestGroup -HiddenFromAddressListsEnabled:$true
    

    Но нет

    Set-DistributionGroup -Identity TestGroup -HiddenFromAddressListsEnabled=$true
    
    10.09.2012

    5

    только что наткнулся на эту тему при поиске по вопросу, мой случай PowerShell v2, только после настройки

    $WarningPreference = "SilentlyContinue"
    

    Write-Warning "бла" - мне ничего не вернуло... параметр команды тоже не сильно изменился с моей стороны.

    21.04.2015
  • большое спасибо. это было решение, которое мне было нужно. 13.06.2016

  • 6

    У меня была такая же проблема с консолью управления Exchange в 2010 году. Проблема в том, что EMC работает на PowerShell 2.0, который, как уже говорилось ранее, имеет некоторые ошибки, связанные с настройками предупреждений.

    Я нашел дерзкий обходной путь: запустить мой скрипт в ванильной оболочке PowerShell 4.0, а затем импортировать командлеты EMC и запустить новый удаленный сеанс PS, например...

    . 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
    Connect-ExchangeServer -auto
    

    ...затем -WarningAction:SilentlyContinue внезапно начинает вести себя как надо.

    16.06.2014

    7

    Тебе стоит попробовать

    Set-DistributionGroup -Identity TestGroup -HiddenFromAddressListsEnabled $true -WarningAction silentlyContinue
    
    05.10.2011

    8

    Я столкнулся с той же проблемой, следующая команда, кажется, выполняет эту работу (PS 3.0):

    Stop-Service<or whatever command> $svc.Name -WarningPreference SilentlyContinue
    

    Не знаю точно, в чем разница с -WarningAction.

    Надеюсь это поможет !

    02.12.2013

    9

    Если вы вызываете PowerShell версии 2.0, вы должны использовать «-WarningAction без звукаПродолжить». У меня была та же проблема, но в сценарии, если я вызываю, например, "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -version 2.0", вы можете использовать этот параметр. Я пытался выполнить запланированное задание и использовать сценарий ps1.

    05.02.2014

    10

    Попробуйте что-то вроде этого:

    PS C:\> {command} | Out-Null
    

    Для получения дополнительной информации: Technet: Out-Null

    01.08.2013
  • Почему этот отрицательный голос, это (мой) официальный метод подавления предупреждений. И здесь это не было представлено. 11.09.2013
  • Это не работает, например, с командлетом Stop-Service. 26.10.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..