Mon try/catch PowerShell n'attrape pas les erreurs

Posée par Mehdi Haddad·il y a 21 jours· 28 vue(s)

0

Get-CimInstance sur un serveur éteint affiche une erreur rouge mais mon bloc catch n'est jamais exécuté.

1 réponse(s)

  • 2

    Réponse acceptée

    La plupart des erreurs de cmdlets sont non bloquantes : elles s'affichent et le script continue, sans déclencher catch. Ajoutez -ErrorAction Stop sur la commande (ou $ErrorActionPreference = 'Stop' en tête de script) :

    try {
        Get-CimInstance Win32_OperatingSystem -ComputerName $s -ErrorAction Stop
    } catch {
        Write-Warning "$s : $($_.Exception.Message)"
    }