|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Обработка ошибок |
|
PowerShell - [решено] Обработка ошибок
|
fascinating rhythm Сообщения: 6626 |
Добрый день, коллеги!
Есть строчка подключения к серверу Exchange: Import-PSSession (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch1.domain.ru/PowerShell/ -Authentication Kerberos) -DisableNameChecking Как сделать, чтобы при ошибке подключения к exch1 пробовало подключаться к exch2, и при ошибке - к exch3? Можно ли как-то сделать здесь if-then? Не хочется вложенный try-catch делать, это громоздко и вроде как не рекомендуется. |
|
------- Отправлено: 12:27, 13-11-2019 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать try-catch делать лучше всегда, но не для этого.
![]() пошика под рукой нет, поэтому приблизительно на глаз дожна сработать такая стрёмная конструкция: $pssession = (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch1.domain.ru/PowerShell/ -Authentication Kerberos) & if (!$?) { $pssession = (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch2.domain.ru/PowerShell/ -Authentication Kerberos) & if (!$?) { $pssession = (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch3.domain.ru/PowerShell/ -Authentication Kerberos) & if (!$?) { $pssession = $true} }} if ($pssession) {write-host "к третьему тоже не подключлся :("} else { Import-PSSession ($pssession) -DisableNameChecking } |
Последний раз редактировалось Elven, 13-11-2019 в 15:03. Отправлено: 14:22, 13-11-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Спасибо! $? - это круто!
Переделал в такой вариант: $c = 1 do {$pssession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch$($c).domain.ru/PowerShell/ -Authentication Kerberos -ErrorAction SilentlyContinue; $c++} until ($? -or $c -gt 3) if (!$?) {write-host -fore red "Не удалось подключиться ни к одному серверу Exchange"; sleep 2; exit} Import-PSSession $pssession -DisableNameChecking -ErrorAction SilentlyContinue if (!$?) {write-host -fore red "Ошибка импорта удалённой сессии Powershell"; sleep 2; exit} |
------- Последний раз редактировалось DJ Mogarych, 14-11-2019 в 10:37. Отправлено: 16:50, 13-11-2019 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Перехват ошибок | lox-ness | Скриптовые языки администрирования Windows | 3 | 28-10-2019 07:09 | |
PowerShell - [решено] обработка ошибок | lox-ness | Скриптовые языки администрирования Windows | 1 | 14-01-2018 19:45 | |
Разное - Череда ошибок | Dius | Microsoft Windows 8 и 8.1 | 1 | 24-12-2014 09:26 | |
Медиа - [решено] Картинки ошибок | Anton1995 | Хочу все знать | 4 | 24-05-2010 23:29 | |
Исправление ошибок | Mikke | Microsoft Windows 95/98/Me (архив) | 10 | 03-06-2004 05:34 |
|