15/11/2024

VMware

Planifier l’exécution d’un script PowerCLI avec Windows

I. Présentation

Les command-let PowerCLI sont utiles, un script l'est aussi, un script PowerShell faisant appel aux command-let PowerCLI dont l'exécution est planifiée, l'est encore plus.

Nous allons voir dans ce tutoriel comment planifier l'exécution d'un script PowerShell contenant des instructions PowerCLI grâce aux "Tâches planifiées" de Windows. Par défaut, Windows exécute les scripts PowerShell avec la console PowerShell mais cette dernière ne connaît pas les command-let de PowerCLI, ce qui crée des problèmes lors de l'exécution. Il faut donc créer la tâche planifiée d'une certaine manière et ajouter une ligne de code dans le script pour indiquer qu'il faut ajouter le composant enfichable correspondant à PowerCLI dans la console PowerShell active.

II. Modification du script

Comme je le disais précédemment, le script doit être modifié et la ligne suivante doit être ajoutée en début de script :

Add-PSSnapin VMware.VimAutomation.Core

Ceci signifie qu'on ajoute le composant "VMware.VimAutomation.Core" à la console PowerShell active dans le but de pouvoir exécuter les command-let PowerCLI.

III. Création de la tâche planifiée

Le script contenant les informations nécessaires à l'exécution, nous allons créer la tâche planifiée permettant de l'exécuter.

Accédez aux tâches planifiées en allant dans "Démarrer" puis faites clic droit sur "Ordinateur" et cliquez sur "Gérer".

powercli13

Ensuite, allez dans "Configuration", "Planificateur de tâches" puis sélectionnez "Bibliothèque du Planificateur de tâches".

powercli14

Créez une tâche en faisant clic droit dans la zone centrale et "Créer une nouvelle tâche". Ensuite, remplissez les différents champs selon ce que vous mettez en place. L'onglet qui nous intéresse plus particulièrement est l'onglet "Actions" qui permet d'indiquer ce qu'on doit faire lors de l'exécution de la tâche.

Allez dans l'onglet "Actions" et cliquez sur "Nouveau", vous devriez obtenir ceci :

powercli15

Sélectionnez "Démarrer un programme" dans la zone "Action". En ce qui concerne le champ "Programme/Script" indiquez "powershell.exe" pour indiquer qu'on exécuter la console PowerShell à chaque exécution de la tâche. De plus, et c'est essentiel, dans le champ "Ajouter des arguments" indiquez ceci (en adaptant) :

-file "chemin_vers_le_script"

Cela permet d'ajouter un argument lors de l'exécution de PowerShell et en l'occurrence dans ce cas, on précise que la console PowerShell doit exécuter le script PowerShell précisé après le paramètre "file". Exemple avec un script qui s'appelle "neoflow.ps1" et qui se situe à la racine de la partition "C" :

powercli16

IV. Dépannage

Si l'exécution du script ne fonctionne pas, vérifiez la politique d'exécution de scripts PowerShell qui est appliquée sur votre système, et passez la sur l'état "bypass" afin d'essayer si ça fonctionne. Pour plus d'informations, consultez le tutoriel sur l'ExecutionPolicy de PowerShell.

Si ça ne fonctionne toujours pas, essayez d'exécuter votre script sans passer par une tâche planifiée en faisait clic droit dessus puis "Exécuter avec PowerShell" afin de voir s'il n'y a pas un problème dans le contenu du script (et assurez vous d'avoir ajouté la ligne indiquée en début de tutoriel).

author avatar
Florian BURNEL Co-founder of IT-Connect
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.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

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.