Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] как использовать ошибку в предыдущей команде для условия

Ответить
Настройки темы
PowerShell - [решено] как использовать ошибку в предыдущей команде для условия

Новый участник


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как указать в условии ошибку предыдущей команды?

Код: Выделить весь код
Param(
[string] $csv
)

Import-Csv $csv | ForEach-object -process `
{`
$EEA =  $_.E
    New-MailContact `
	     -ExternalEmailAddress $EEA `
		 -Name $_.N `
		 -Alias $_.A `
		 -FirstName $_.FN `
		 -Initials $_.I `
		 -LastName $_.LN `
		 -OrganizationalUnit $_.OU
Out-Null | Get-Contact $_.A | if Get-Contact = ?EROR? then echo "Такого контакта нет" Else Set-Contact -Department $_.D} `
}

Отправлено: 20:01, 25-06-2014

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Import-Csv $csv | ForEach-object -process `
{`
$EEA =  $_.E
	try {
    New-MailContact `
	     -ExternalEmailAddress $EEA `
		 -Name $_.N `
		 -Alias $_.A `
		 -FirstName $_.FN `
		 -Initials $_.I `
		 -LastName $_.LN `
		 -OrganizationalUnit $_.OU -ErrorAction Stop | Set-Contact -Department $_.D
	}
	catch {
		"$_"
	}
}

Отправлено: 08:08, 26-06-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


The operation couldn't be performed because object '***' couldn't be found on '*******'.
+ CategoryInfo : NotSpecified: ( [Get-Contact], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : C5209E5F,Microsoft.Exchange.Management.RecipientTasks.GetContact
+ PSComputerName : *******

Что записать в cath?

catch [System.Management.Automation.ManagementObjectNotFoundException] {
write-host 'CommandNotFoundException'
}

непроходит

Отправлено: 12:09, 26-06-2014 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


1) Какой смысл использовать Get-Contact?
2) Как-то так:

Код: Выделить весь код
try {
	Get-Contact $_.A -ErrorAction Stop | Set-Contact -Department $_.D
}
catch {
	if($_.CategoryInfo.Reason -eq "ManagementObjectNotFoundException") {
		"Такого контакта нет"
	}
}

Отправлено: 12:33, 26-06-2014 | #4


Новый участник


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не отлавливает(((

Отправлено: 12:49, 26-06-2014 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Я говорю отлавливает. И чья правда?


Отправлено: 12:58, 26-06-2014 | #6


Новый участник


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg Capture.JPG
(45.0 Kb, 6 просмотров)

Что не так?

Отправлено: 13:08, 26-06-2014 | #7


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Подозреваю , что сначала были пробы catch [System.Management.Automation.ManagementObjectNotFoundException] и прочие. Так что для начала рестарт шелла с нуля и вывод.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:10, 26-06-2014 | #8


Новый участник


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не работает в Exchange shell попробовал просто из Powershell -psconsolefile "C:\Program Files\Microsoft\Exchange Server\V14\Bin\exshell.psc1" все получилось

но если запускаю скрипт - вылетает на первой же записи с той же ошибкой

Код: Выделить весь код
Param(
[string] $csv
)

Import-Csv $csv | ForEach-object -process `
{
$EEA =  $_.E 
    Get-Contact $_.A -ErrorAction Stop
    catch {
	if($_.CategoryInfo.Reason -eq "ManagementObjectNotFoundException") {
Write-Host "Такого контакта нет" -ForeGround Magenta
}
}
}

Отправлено: 13:57, 26-06-2014 | #9


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


А где блок try{} ?

Отправлено: 14:01, 26-06-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] как использовать ошибку в предыдущей команде для условия

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - Использовать или не использовать inner join для соединения таблиц ineXPert Программирование и базы данных 1 17-02-2012 01:18
Интерфейс - [решено] Проблема выбора целевой папки для записи файла при команде "Сохранить как". GrayWolf Microsoft Windows 7 11 19-09-2010 13:10
Как использовать камеру miniDV для видеонаблюдения? PLATON Видео и аудио: обработка и кодирование 0 01-03-2010 14:21
как использовать оперативную память для видео памяти? aleksandrs7833 Ноутбуки 5 09-05-2008 22:00
DirectX 10: только для Vista и никакой совместимости с предыдущей версией. ShaddyR Новости и события Microsoft 12 24-07-2007 13:05




 
Переход