Utiliser des points d’arrêt dans les scripts Windows PowerShell

Effectué

Un point d’arrêt suspend un script et fournit une invite interactive. À l’invite interactive, vous pouvez interroger ou modifier des valeurs de variables, puis continuer le script. Vous utilisez des points d’arrêt pour résoudre des problèmes de scripts qui ne se comportent pas comme prévu.

À l’invite de commandes Windows PowerShell, vous pouvez définir des points d’arrêt à l’aide de la cmdlet Set-PSBreakPoint. Des points d’arrêt peuvent être définis en fonction de la ligne du script, d’une commande spécifique utilisée ou d’une variable spécifique utilisée. L’exemple suivant montre comment définir un point d’arrêt à une ligne spécifique d’un script :

Set-PSBreakPoint -Script "MyScript.ps1" -Line 23

Quand vous définissez un point d’arrêt basé sur une ligne, vous devez être prudent lors de la modification du script. Lorsque vous modifiez le script, vous pourriez ajouter ou supprimer des lignes. Le point d’arrêt n’affectera pas le code que vous avez initialement prévu.

L’exemple suivant montre comment définir un point d’arrêt pour une commande spécifique :

Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"

Lorsque vous définissez un point d’arrêt basé sur une commande, vous pouvez inclure des caractères génériques. Par exemple, vous pourriez utiliser la valeur *-ADUser pour déclencher un point d’arrêt pour les cmdlets Get-ADUser, Set-ADUser, New-ADUser et Remove-ADUser.

Pour définir un point d’arrêt pour une variable spécifique, procédez comme suit :

Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite

Vous pouvez utiliser le paramètre -Mode pour les variables, afin d’identifier si vous souhaitez interrompre l’exécution lorsque la valeur de la variable est lue, écrite ou les deux. Les valeurs valides sont Read, Write et ReadWrite.

L’action par défaut pour la cmdlet Set-PSBreakPoint est Break, qui fournit l’invite interactive. Toutefois, vous pouvez utiliser le paramètre -Action pour spécifier du code s’exécutant à la place. Cela vous permet d’effectuer des opérations complexes, telles que l’évaluation de la valeur de la variable et l’interruption de l’exécution uniquement si la valeur est en dehors d’une plage spécifique.

Notes

Les points d’arrêt sont stockés en mémoire plutôt que dans le script. Les points d’arrêt ne sont pas partagés entre plusieurs invites Windows PowerShell, et sont supprimés une fois l’invite fermée.

PowerShell ISE

Dans Windows PowerShell ISE, vous pouvez définir des points d’arrêt en fonction de la ligne. Les options liées aux points d’arrêt figurent dans le menu Débogage. Les lignes que vous configurez en tant que points d’arrêt sont mises en surbrillance, ce qui facilite leur identification. En outre, dans Windows PowerShell ISE, lorsque vous ajoutez ou supprimez des lignes de script, les points d’arrêt sont mis à jour automatiquement avec le numéro de ligne correct.

Visual Studio Code

Microsoft Visual Studio Code vous permet de définir et d’utiliser des points d’arrêt avec des options plus avancées que l’environnement d’écriture de scripts intégré (ISE) PowerShell. Vous pouvez configurer des points d’arrêt conditionnels déclenchés lorsque des variables s’inscrivent en dehors d’une plage ou correspondent à une valeur spécifique.

Les informations sur le contenu des variables sont également plus faciles à trouver dans Visual Studio Code. Une fois qu’un point d’arrêt a été déclenché et que vous vous trouvez dans le débogueur, il y a une section de variables qui affiche le contenu des variables afin que vous n’ayez pas à les interroger.