Benutzer mit den meisten Antworten
PS catch Exception

Frage
-
Hallo,
ich bekomme bei dem Cmd (Get-DfsnFolder -Path $dfsFolderPath).Description folgenden Error:
Get-DfsnFolder : Cannot get DFS folder properites on "path to share"
At Y:\User\scripts\In Progress\DFS_Report_New.ps1:42 char:10
+ $desc = (Get-DfsnFolder -Path $dfsFolderPath).Description -replace "; ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (MSFT_DfsNamespaceFolder:Root\Microsoft\...NamespaceFolder) [Get-DfsnFolder], CimException
+ FullyQualifiedErrorId : Windows System Error 1168,Get-DfsnFolder
Get-DfsnFolder : The requested object could not be found.
At Y:\User\scripts\In Progress\DFS_Report_New.ps1:42 char:10
+ $desc = (Get-DfsnFolder -Path $dfsFolderPath).Description -replace "; ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (MSFT_DfsNamespaceFolder:Root\Microsoft\...NamespaceFolder) [Get-DfsnFolder], CimException
+ FullyQualifiedErrorId : MI RESULT 6,Get-DfsnFolderDer Error kommt nur bei manchen DFS folder. Ich würde diese gerne mit einem try catch block abfangen und eine Ausgabe in der Konsole machen. Das script soll danach einfach weiterlaufen.
Bisher habe ich folgendes:
try{$desc = (Get-DfsnFolder -Path $dfsFolderPath).Description -replace ";", " "}catch {"Exception caught - Cannot get DFS folder properties on $dfsFolderPath"}
Aber es wird mir trotzdem nur der Error geworfen und nicht die Ausgabe aus dem Catch-Block.
Danke.
- Bearbeitet tim--97 Montag, 14. Dezember 2020 10:42
Antworten
-
Moin,
das bedeutet, dass die Ausnahme nicht-terminierend ist. mit -ErrorAction Stop im auslösenden Cmdlet machst Du die Ausnahme terminierend.
Es ist eigentlich auch ein ganz guter Stil, am Anfang des Skriptes
$ErrorActionPreference = "Stop"
zu setzen und dann alle Ausnahmen routinemäßig abzufangen.
Evgenij Smirnov
Alle Antworten
-
Moin,
das bedeutet, dass die Ausnahme nicht-terminierend ist. mit -ErrorAction Stop im auslösenden Cmdlet machst Du die Ausnahme terminierend.
Es ist eigentlich auch ein ganz guter Stil, am Anfang des Skriptes
$ErrorActionPreference = "Stop"
zu setzen und dann alle Ausnahmen routinemäßig abzufangen.
Evgenij Smirnov