none
Как пропустить ошибки при удалении атрибутов из УЗ AD PowerShell RRS feed

  • Вопрос

  • Здравствуйте.

    Пишу скрипт на PS для автоматизации увольнения сотрудников.

    Есть один блок с удалением некоторых атрибутов из УЗ AD. Но к сожалению не у всех УЗ есть этот атрибут. И когда его нет валит ошибки что ключ remove не работает со значением null.

    Set-ADUser 1 -Remove @{ параметр=переменная ….}  -ErrorAction SilentlyContinue -WarningAction SilentlyContinue

    Set-ADUser : Cannot validate argument on parameter 'Remove'. The argument is null or an element of the argument collection contains a null value.

    Параметры  -ErrorAction SilentlyContinue -WarningAction SilentlyContinue

    не помогают. Как это провернуть, через if?


    13 октября 2022 г. 12:20

Ответы

  • Используйте Try {} Catch {}

    Что-то типа:

    Try {
    Set-ADUser 1 -Remove @{ параметр=переменная ….}
    }
    
    Catch {
    # --- сюда пишем что хотим при срабатывании, либо просто оставляем пустые скобки
    }

    Удачи!

    14 октября 2022 г. 6:18

Все ответы

  • Используйте Try {} Catch {}

    Что-то типа:

    Try {
    Set-ADUser 1 -Remove @{ параметр=переменная ….}
    }
    
    Catch {
    # --- сюда пишем что хотим при срабатывании, либо просто оставляем пустые скобки
    }

    Удачи!

    14 октября 2022 г. 6:18
  • Спасибо.

    Сделал через if else

        

    if ( переменная = 'Null' )

       {
         Write-Output "Действий не требуется"
        }
    else
        {
        Set-ADUser 1 -Remove @{ параметр=переменная...  }

        }

    Не знаю на сколько мой вариант грамотен, но он работает. Сейчас попробую ваш вариант.

    14 октября 2022 г. 7:47
  • Ваш вариант мне показался даже более простым, остаил его. 

    Ещё раз спаибо.

    14 октября 2022 г. 9:32