Windows

Exécution programmée d’un script PowerShell

Exécution programmée d’un script PowerShell

Comment exécuter automatiquement un script PowerShell sur un poste client à heure fixe ou lors d’un événement particulier tel que le login/logout ?

Bien sûr, nous allons utiliser le planificateur de tâches de Windows. Vous pourrez donc réaliser cette opération sur Windows 7, Windows 8 mais bien entendu également sur Windows Server.

Etape 1 – Une script de test

Pour l’exemple, il nous faut bien entendu un script à planifier. Je vous propose ces quelques lignes qui vont afficher un popup avec la date et l’heure du jour.

[System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
$dateoftheday = get-date -uformat "%d-%m-%Y"
$timeofthemoment = get-date -uformat "%H:%M"
[Windows.Forms.MessageBox]::Show(“Coucou ! Nous sommes le $dateoftheday et il est $timeofthemoment.”, “Coucou c'est moi”, [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)

Etape 2 – Le planificateur de tâches (ou Task Scheduler si votre OS est en EN)

Démarrez le planificateur de tâches.

Une fois dans la fenêtre principale, je vous recommander d’éviter l’option créer une tâche « basique » mais plutôt créer une tâche, « normale » si je puis dire.

Vous devriez voir la fenêtre suivante :

Task Scheduler de Windows

Il n’est pas nécessaire de remplir l’ensemble des options. Sur cette première fenêtre, vous n’avez qu’à simplement renseigner un nom pour votre tâche programmée. Dans mon cas, je l’appelle « Display Popup« .

Passez ensuite sur le second onglet, Triggers. C’est là que nous allons pouvoir définir quand et sous quelle identité notre tâche devra s’exécuter. Vous pouvez choisir d’exécuter cette tâche à un jour et une heure précise mais pour notre exemple imaginons que nous voulons l’exécuter à chaque fois qu’un utilisateur démarre son ordinateur, après qu’il se soit identifié avec son compte.

Nous sélectionner dans le premier menu déroulant « At log on » pour que la tâche démarre dès que l’utilisateur s’identifie sur son poste et que sa session s’ouvre. Si votre tâche nécessite par exemple des droits administrateurs, vous pouvez définir le compte sous lequel elle doit s’exécuter.

Configuration du déclenchement

Les autres options sont superflues.

Mais sachez que vous pouvez par exemple :

  • décaler l’exécution de la tâche de 15 minutes après l’identification de l’utilisateur,
  • répéter son exécution toutes les heures,
  • définir une période de début et de fin (si par exemple il s’agit d’une tâche qui doit expirer après une période donnée),

Veillez bien entendu à cocher la dernière option « Activée« /Enabled pour que votre tâche soit active.

Nous passons maintenant au troisième onglet « Actions« .

Sélectionner « Démarrer un programme » dans le menu déroulant « Action« .

Pour exécuter un script PowerShell, il nous suffit de préciser que nous voulons exécuter le prompt Powershell.exe ainsi que le chemin où se trouve notre script PowerShell.

Démarrage du script PowerShell

Notez que pour cet exemple, j’ai déposé tout simplement le script à la racine du disque C:\.

C’est terminer votre tâche est prête à s’exécuter.

Etape 3 – Pour aller plus loin

Vous pouvez afficher les différentes options qui vous sont proposées par les deux derniers onglets.

Cela n’a pas d’utilité particulière pour notre exemple mais vous remarquerez que vous pouvez tout de même gérer plusieurs cas intéressants :

  • Les conditions d’exécution de la tâche : si l’ordinateur s’ennuie (ne fait rien), si la machine est sur secteur ou sur batterie, s’il est connecté au réseau…
  • Permettre l’exécution test de la tâche planifiée,
  • L’exécuter dès que si possible si nous manquons la fenêtre d’exécution (dans le cas où cela serait à heure/jour fixe),
  • etc.

Etape 4 – Test de la tâche

Pour vérifier que notre tâche fonctionne correctement, il ne vous reste plus qu’à vous déconnecter de votre ordinateur.

Menu démarrer, se déconnecter puis vous re-connecter à votre session à saisissant à nouveau votre identifiant/mot de passe.

Vous devriez voir le popup suivant :

Confirmation de l’exécution du script

D’une manière plus générale, sachez que peu importe la tâche que vous créez vous pouvez forcer son exécution au moment que vous souhaitez pour en tester le bon fonctionnement.

Il vous suffit de la sélectionner dans la fenêtre principale du planificateur de tâches, puis dans le panneau latéral à droite, vous pouvez : exécuter, terminer (pour forcer l’arrêt) ou bien la désactiver temporairement.

Share
Published by
thibault

Recent Posts

Focus Cell : Nouvelle fonctionnalité dans Microsoft Excel pour améliorer votre productivité

Focus Cell : Nouvelle fonctionnalité dans Microsoft Excel pour améliorer votre productivité Nouvelle fonctionnalité «…

6 jours ago

OpenAI envisage de lancer son propre navigateur internet, une menace pour Google ou Microsoft ?

OpenAI envisage de lancer son propre navigateur, une menace pour Google ou Microsoft ? OpenAI,…

7 jours ago

Microsoft Hotpatch arrive sur Windows 11 : une révolution pour les mises à jour

Microsoft annonce les mises à jour à chaud « Hotpatch » pour Windows 11 24H2 ! Microsoft…

1 semaine ago

Windows 365 Link : la passerelle vers votre PC dans le Cloud

Mise en situation du produit Windows 365 Link par microsoft Microsoft s’apprête à révolutionner le…

1 semaine ago

Antitrust : Google face à une tempête judiciaire aux États-Unis

Google est au cœur d’une bataille juridique antitrust majeure avec le ministère américain de la…

2 semaines ago

Microsoft 365 : l’abonnement mensuel pour les entreprises va augmenter

Microsoft 365 : l'abonnement mensuel pour les entreprises va augmenter (encore) Microsoft vient d'annoncer une…

2 semaines ago