IoanPopovici
5/17/2016 - 8:25 AM

Powershell Error Handling with Try/Catch, using multiple commands or variables

Powershell Error Handling with Try/Catch, using multiple commands or variables

##  Powershell Error Handling with Try/Catch, using multiple commands or variables
​
#  Declaring module Paths as array
$OSDScriptsPaths =@(
    "C:\Windows\System32\WindowsPowerShell\v1.0\Modules\OSDScripts",
    "C:\Program Files\WindowsPowerShell\Modules\OSDScripts"
)

#  Parse OSDScriptsPaths array and for each item try to remove the module using -ErrorAction Stop parameter and Err variable to store execution errors
#  We use -ErrorAction Stop in order to treat all errors as Terminating Errors
ForEach ($Path in $OSDScriptsPaths) {
    Try {
        Remove-Item -Path $Path -Recurse -Force -ErrorAction Stop -ErrorVariable +Err
        Write-Host "Delete $Path - Successful!"
    }
    
    #  Catch Item Not Found Exception error
    Catch [System.Management.Automation.ItemNotFoundException]
    {
        Write-Host "$Path - Not Found!" -ForegroundColor Green
    }

    #  Catch all other errors
    Catch {
        Write-Host "Delete $Path - Failed!"
        Write-Host "Failed with Error: "$Err
    }
}