Comment supprimer les erreurs PowerShell
- Introduction à l’action d’erreur dans PowerShell
-
Utiliser le paramètre
-ErrorAction
dans PowerShell - Définir les préférences d’action d’erreur dans PowerShell
-
Utiliser le paramètre d’instruction
Try-Catch
dans PowerShell - Conclusion

Cet article plonge dans le monde complexe de la gestion des erreurs PowerShell, explorant diverses méthodes telles que le paramètre -ErrorAction
, la définition des préférences d’action d’erreur et l’emploi de l’instruction Try-Catch
. Chacune de ces méthodes sert un but unique, allant de la continuité silencieuse de l’exécution des scripts malgré les erreurs à l’implémentation de mécanismes sophistiqués de gestion des erreurs.
Cette exploration détaillée est conçue pour doter à la fois les scriptants novices et chevronnés des connaissances nécessaires pour prendre des décisions éclairées concernant la gestion des erreurs dans leurs scripts PowerShell, garantissant qu’ils peuvent gérer efficacement les situations inattendues et maintenir l’intégrité des scripts.
Introduction à l’action d’erreur dans PowerShell
Bien qu’il soit facile de supprimer les erreurs de Windows PowerShell, le faire n’est pas toujours la meilleure option (bien que cela puisse l’être). Si nous demandons imprudemment à PowerShell de cacher les erreurs, cela peut amener notre script à se comporter de manière imprévisible.
Supprimer les messages d’erreur rend également le dépannage et la collecte d’informations beaucoup plus compliqués. Soyez donc prudent et faites attention à l’utilisation des extraits suivants que vous verrez dans cet article.
Utiliser le paramètre -ErrorAction
dans PowerShell
Le paramètre -ErrorAction
dans PowerShell est conçu pour dicter la façon dont un cmdlet répond aux erreurs d’exécution. Par défaut, PowerShell affichera les erreurs dans la console et continuera l’exécution.
Cependant, dans certaines situations, vous pourriez vouloir modifier ce comportement - par exemple, pour supprimer les messages d’erreur ou pour arrêter l’exécution lorsqu’une erreur se produit. C’est là que -ErrorAction
devient crucial.
Commande :
Get-Service 'svc_not_existing' -ErrorAction SilentlyContinue
Write-Host "This line will execute regardless of the above command's result."
Dans notre script, nous essayons de récupérer un service nommé 'svc_not_existing'
, un service qui présumément n’existe pas. En appliquant -ErrorAction SilentlyContinue
, nous instructons PowerShell à continuer sans interruption, évitant l’affichage d’un message d’erreur s’il ne parvient pas à localiser le service.
Par la suite, notre script passe sans heurts à la commande Write-Host
. Cette commande affiche un message spécifique dans la console.
Sortie :
Définir les préférences d’action d’erreur dans PowerShell
Si nous avons besoin qu’un script se comporte d’une certaine manière (comme supprimer les erreurs), nous pourrions envisager de configurer certaines variables de préférence. Les variables de préférence agissent comme des paramètres de configuration pour PowerShell.
Nous pourrions utiliser une variable de préférence pour contrôler le nombre d’éléments d’historique que PowerShell conserve ou forcer PowerShell à demander à l’utilisateur avant de réaliser des actions spécifiques.
Par exemple, voici comment vous pouvez utiliser une variable de préférence pour définir le paramètre -ErrorAction
à SilentlyContinue
pour toute la session.
Commande :
$ErrorActionPreference = 'SilentlyContinue'
Get-Service 'nonexistent_service'
Write-Host "This message is displayed even if the previous command fails."
Dans notre script, nous commençons par définir $ErrorActionPreference
à 'SilentlyContinue'
. Cette action garantit que le paramètre est appliqué à toutes les commandes suivantes dans notre script.
En conséquence, toutes les erreurs qui apparaîtraient normalement sont effectivement supprimées.
Ensuite, nous utilisons le cmdlet Get-Service
pour essayer de récupérer un service inexistant. Dans des circonstances normales, cela déclencherait une erreur. Cependant, grâce à notre paramètre antérieur de $ErrorActionPreference
, toute erreur qui aurait été générée reste invisible et discrète.
Après cela, notre script passe gracieusement à la commande Write-Host
. Cette commande est responsable de l’affichage d’un message dans la console.
Sortie :
Il existe de nombreuses autres actions d’erreur que nous pouvons spécifier pour le paramètre d’option ErrorAction
.
Continue
: PowerShell affichera le message d’erreur, mais le script continuera de s’exécuter.Ignore
: PowerShell ne produit aucun message d’erreur, n’écrit aucune sortie d’erreur sur l’hôte et continue l’exécution.Stop
: PowerShell affichera le message d’erreur et arrêtera l’exécution du script.Inquire
: PowerShell affiche le message d’erreur mais demandera d’abord confirmation si l’utilisateur souhaite continuer.SilentlyContinue
: PowerShell continue silencieusement l’exécution du code si le code ne fonctionne pas ou a des erreurs non terminantes.Suspend
: PowerShell suspend le flux de travail du script.
Utiliser le paramètre d’instruction Try-Catch
dans PowerShell
L’instruction Try-Catch
est un outil puissant dans PowerShell pour gérer et réagir aux erreurs d’une manière contrôlée et sophistiquée. Elle permet aux scriptants d’essayer
un bloc de code et de capturer
toutes les exceptions (erreurs) qui se produisent lors de son exécution.
Cette approche est bénéfique lorsque vous souhaitez gérer les erreurs avec élégance, effectuer des actions spécifiques lorsque une erreur se produit ou prévenir les erreurs d’interrompre abruptement votre script.
Commande :
try {
Get-Service 'nonexistent_service'
}
catch {
Write-Host "An error occurred: $_"
}
Dans ce script, nous encapsulons d’abord une commande susceptible de provoquer une erreur, Get-Service 'nonexistent_service'
, dans un bloc try
. Nous tentons de récupérer un service qui n’existe probablement pas, ce qui entraînerait normalement une erreur.
Cependant, plutôt que de laisser cette erreur terminer le script ou d’afficher une exception non gérée, nous la capturons. Dans le bloc catch
, nous exécutons une commande Write-Host
pour afficher un message d’erreur personnalisé, y compris les détails de l’erreur ($_
représente l’objet d’erreur actuel).
Sortie :
Conclusion
Alors que nous concluons notre voyage à travers les différents aspects de la gestion des erreurs dans PowerShell, il est clair que la puissance de ce langage de script réside dans sa flexibilité et sa profondeur. De la simplicité du paramètre -ErrorAction
au contrôle nuancé offert par les instructions Try-Catch
, PowerShell fournit une riche boîte à outils pour gérer les erreurs dans une variété de scénarios.
Comprendre ces outils et savoir quand les appliquer est essentiel pour écrire des scripts robustes et résilients. Nous avons exploré comment supprimer les erreurs peut être à la fois une bénédiction et un risque, selon le contexte, et vu comment capturer des erreurs pour une analyse ultérieure.
À présent, vous devriez avoir une compréhension complète de ces méthodes et être bien équipé pour les appliquer dans vos projets de script.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn