Во-первых, признание, я все еще довольно зеленый от PowerShell. В любом случае у меня есть сценарий PowerShell, очень похожий на Сценарий PowerShell для перебора всех пользователей в группе
Он работает нормально (сценарий ищет членов группы и устанавливает атрибут AD и т. Д. Некоторое время он работал нормально, обработано около 2500 пользователей, но недавно произошел сбой) format-default: при получении элемента произошло следующее исключение «PSComputerName»: «Неизвестная ошибка (0x80005000)»
Есть один пользователь, который вызывает ошибку. Мой вопрос в том, как мне заставить PowerShell перехватить эту ошибку \ игнорировать ее и продолжить работу?
Спасибо
Нет греха в том, чтобы быть экологичным в технологиях!
Если вы просто хотите полностью игнорировать ошибку и двигаться дальше, вы можете добавить это в начало кода:
$ErrorActionPreference = SilentlyContinue
Никаких исключений не будет, и выполнение продолжится со следующего оператора. Однако это может быть чревато опасностями. В простых сценариях с несколькими операторами этого может быть достаточно. В более широком контексте это может иметь пагубные последствия.
Обычно лучше перехватить исключение и обработать его, и в этом случае вы захотите изучить использование блока try / catch. Это позволит вам попробовать немного кода, и если возникнет исключение, поймайте его и сделайте что-нибудь с ошибкой.
У Scripting Guy есть довольно хорошие сообщения о Powershell: