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

Google Chrome bloque uBlock Origin : Quand la sécurité masque des intérêts commerciaux

Google Chrome bloque uBlock Origin : Quand la sécurité masque des intérêts commerciaux Depuis début…

4 semaines ago

Vie privée préservée : l’Assemblée rejette les portes dérobées

Vie privée préservée : l'Assemblée rejette les portes dérobées L'Assemblée nationale française rejette la mise…

4 semaines ago

Microsoft abandonne Remote Desktop Connection au profit de la Windows App

Microsoft abandonne Remote Desktop Connection au profit de la Windows App Microsoft a récemment annoncé…

1 mois ago

Google contraint de vendre Chrome après une décision antitrust

Google contraint de vendre Chrome après une décision antitrust Le département américain de la Justice…

1 mois ago

L’évolution de la technologie et le déclin des plateformes numériques

Illustration - Image générée par IA L'avancement technologique a radicalement transformé notre façon de communiquer,…

1 mois ago

Discord prépare son entrée en Bourse : une nouvelle ère pour la plateforme des gamers

Depuis sa création en 2015, Discord est devenue une plateforme incontournable dans le monde du…

1 mois ago