Mój przypadek:ErrorActionPreference i ErrorAction SilentlyContinue Get-PSSessionConfiguration
$ErrorActionPreference = "Stop";
"1 - $ErrorActionPreference;"
Get-ChildItem NoSuchFile.txt -ErrorAction SilentlyContinue;
"2 - $ErrorActionPreference;"
Get-ChildItem NoSuchFile.txt -ErrorAction Stop;
"3 - $ErrorActionPreference;"
wyjściowa:
1 - Stop;
2 - Stop;
i wyświetli komunikat o błędzie ...
Teraz
$ErrorActionPreference = "Stop";
"1 - $ErrorActionPreference;"
(Get-PSSessionConfiguration -Name "MyShellUri" -ErrorAction SilentlyContinue)
"2 - $ErrorActionPreference;"
wyjściowa:
1 - Stop;
i wyświetli komunikat o błędzie ...
Dlaczego nie działa -ErrorAction SilentlyContinue) przez Get-PSSessionConfiguration?
Aktualizacja:
Teraz
$ErrorActionPreference = "Continue"
"1 - $ErrorActionPreference;"
(Get-PSSessionConfiguration -Name "MyShellUri" -ErrorAction SilentlyContinue)
"2 - $ErrorActionPreference;"
wyjściowa:
1 - kontynuacja;
2 - Kontynuuj;
Teraz
$ErrorActionPreference = "SilentlyContinue"
"1 - $ErrorActionPreference;"
(Get-PSSessionConfiguration -Name "MyShellUri" -ErrorAction SilentlyContinue)
"2 - $ErrorActionPreference;"
wyjściowa:
1 - SilentlyContinue;
2 - SilentlyContinue;
Ten reference:
ErrorAction
wszechobecne parametr może być używany do milczenia błędy nie kończące użyciu wartości parametru SilentlyContinue
i może być użyty do konwersji nie kończące błędów błędów kończących użyciu wartości parametru Stop
. Nie może to jednak pomóc w zignorowaniu błędów związanych z zakończeniem i w takim przypadku funkcja Stop-Transcript wyrzuca błąd zakończenia. Jeśli chcesz ignorować, należy użyć try/catch np .:
try { Stop-Transcript } catch {}
Nie wiedziałem, że '-ErrorAction Stop' jest nadal potrzebny do' catch', aby uzyskać wyjątek: | – AceMark