Я пытаюсь использовать функцию, чтобы подтвердить или опровергнуть, сделали ли мы это без командлета без ошибки - я запускаю несколько командлетов AD / Exchange и сохраняю / выводю результаты в .csvв конце.Я забыл импортировать модуль Exchange, который работал для меня, так как он прекратился так, как я не ожидал, когда использовал Get-DistributionList.
Я пытался использовать $?вместо Try..Catch, принудительно останавливая советник, и сначала сохраняя параметр в переменной, но поскольку модуль не установлен и командлет не распознан, он просто останавливает программу.
Вот по сути то, что я хочу сделать:
function Test-Success ($cmdlet){
try{
$cmdlet
"Y"
} catch {
"Err -- Perform manually."
}
}
Test-Success(Get-DistributionList)
Но я получаю следующую ошибку, и сценарий останавливается:
Get-DistributionList : The term 'Get-DistributionList' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct
and try again.
At line:46 char:10
+ Test-Success(Get-DistributionList)
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-DistributionList:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
В худшем случае, я могу просто сделать попытку... ловить каждый раз, как кажется, работает таким образом (пример:)
try {
Get-DistributionList
"y"
} catch {
"Err -- Perform manually"
}
Любая помощь приветствуется! Я надеюсь, что есть обходной путь, чтобы не завершить программуесли командлет не работает таким образом, но я не очень хорошо знаком с PowerShell, и мои собственные поиски были неубедительными.