По умолчанию командлеты генерируют ошибки, не заканчивающиеся сценариями, которые не обрабатывает try / catch. Вы можете изменить это поведение, используя автоматическую переменную $ErrorActionPreference
или общий параметр -ErrorAction
:
# or `$ErrorActionPreference = 'Stop'`
foreach ($s in $servers) {
try {
Test-Connection -TargetName $s.server -Count 1 -ErrorAction Stop
}
catch {
"$_"
}
}