PowerShell ISE : purger les variables sans redémarrer

I. Présentation

J'ai l'habitude de coder des scripts avec PowerShell ISE notamment quand je me trouve directement sur un serveur puisqu'il est intégré directement à Windows Server. Ceux qui connaissent cet éditeur de code savent qu'il est contraignant dans sa façon de gérer les variables et clairement, ça peut être gênant pour du debug.

En effet, lorsqu'un script est exécuté, PowerShell ISE va garder en mémoire les variables et leurs valeurs d'une exécution à l'autre. Autrement dit, une exécution du script peut, potentiellement, impacter la prochaine : de quoi ajouter une complexité supplémentaire lorsqu'il s'agit de faire un troubleshooting...

La solution : fermer PowerShell ISE et le rouvrir. Mouais, c'est un peu pénible car il faut rouvrir le script, voire mêmes les scripts... Pas très pratique. Il y a une autre solution : supprimer toutes les variables de la session PowerShell ISE en cours à l'aide d'une commande. Voyons ça ensemble...

II. Supprimer les variables dans PowerShell ISE

Au sein de la console de PowerShell ISE, nous allons exécuter la commande suivante :

Remove-Variable * -ErrorAction SilentlyContinue

Elle va tout simplement supprimer toutes les variables, et donc par extension, les valeurs associées. Manipulation simple mais radicale.

En fait, il y a deux autres choses que l'on peut purger au sein de la session PowerShell ISE : les erreurs et les modules chargés. Voyons comment faire également.

III. Purger les erreurs et les modules chargés dans PowerShell ISE

Pour aller plus loin supprimer également les modules chargés dans la session PowerShell ISE, nous pouvons exécuter la commande suivante :

Remove-Module * -ErrorAction SilentlyContinue

Enfin, pour se débarrasser de l'historique des erreurs de la session en cours, nous allons exécuter cette commande :

$error.Clear()

En résumé, vous pouvez repartir à blanc en exécutant les trois commandes suivantes sans fermer l'éditeur de code :

Remove-Variable * -ErrorAction SilentlyContinue
Remove-Module * -ErrorAction SilentlyContinue
$error.Clear()

Bon, maintenant il faut continuer le troubleshooting...

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5566.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.