![]() |
Не пишется лог в PowerShell
Привет!
Подскажите пожалуйста, почему не пишется лог? Где я не прав? Код:
[array]$var = Get-ADUser -SearchBase "OU=Accounts,DC=TEST,DC=LOC" -Properties * -Filter * В процессе работы скрипта происходит несколько ошибок, сервер недоступен и сбой аутентификации, но данные ошибки не записываются в файл лога. Все пути правильные. Если надо, добавлю пояснения. |
В процессе работы возникают ошибки, которые должны отлавливаться блоком CATCH, если я все правильно понимаю...
Ошибки: 1. Get-ADUser : Не удается установить связь с сервером. Возможные причины: сервер не существует, выключен или на нем не запущены веб-службы Active Di rectory. C:\Users\p59_adm1\Desktop\Data request.ps1:22 знак:12 + $usr = Get-ADUser -Server $val1 -Credential $cred -Properties * - ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [Get-ADUser], ADServerDownException + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADUser 2. Get-ADUser : Сбой аутентификации на удаленном сервере (поток может оставаться доступным для повторных попыток аутентификации). C:\Users\p59_adm1\Desktop\Data request.ps1:22 знак:12 + $usr = Get-ADUser -Server $val1 -Credential $cred -Properties * - ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : Ошибка безопасности: (:) [Get-ADUser], AuthenticationException + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.Security.Authentication.AuthenticationException,Microsoft.ActiveDirecto ry.Management.C ommands.GetADUser Но в файле логов ничего нет. Пробовал явно указывать с блоке Catch ошибку, тоже ничего. Т.е. catch [System.Security.Authentication.AuthenticationException]{ code ... } |
Цитата:
А вот с write-host во втором catch - нефига непонятно. Если это попытка писать в файл, то понятно почему не удачаная. Ну и насчет же использования двух catch: насколько мне известно это используется, обычно, чтобы нормально разделить ошибки и, соответственно, их обработку, однако никаких условий в catch я не вижу, следовательно будет выполнен один из catch (какой - без идей, у меня без указания дополнительных условий пошик вообще отказался выполняться при двух catch). Судя по описываемой проблеме - выполняется только второй catch, а первый т.о. игнорируется. |
Цитата:
После публикации поста я удалил тот код, но все равно не пишется лог. Код:
[array]$var = Get-ADUser -SearchBase "OU=Accounts,DC=TEST,DC=LOC" -Properties * -Filter * |
Цитата:
Как тогда вы ожидаете увидеть их в логе? |
Понял.
Как-то до меня не дошло очевидное... Спасибо! |
Дурацкий вопрос, но я не могу понять, какой тип ошибки указывать в CATCH...
Вот ошибка: Get-ADUser : Не удается установить связь с сервером. Возможные причины: сервер не существует, выключен или на нем не запущены веб-слу жбы Active Directory. C:\Users\p59_adm1\Desktop\Data request.ps1:23 знак:16 + ... $usr = Get-ADUser -Server $val1 -Credential $cred -Properties * ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [Get-ADUser], ADServerDownException + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADUser Если указываю ADServerDownException, ПС пишет, "Не удалось найти тип" Если указываю Microsoft.ActiveDirectory.Management.Commands.GetADUser, ПС игнорирует и пишет в общий блок CATCH. |
Цитата:
Код:
catch [Microsoft.ActiveDirectory.Management.ADServerDownException] {} |
Fors1k, Спасибо!
|
Время: 13:11. |
Время: 13:11.
© OSzone.net 2001-