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

Meta met fin à Workplace : cap sur l’IA et le métavers

C'est la fin du réseau social d'entreprise par Facebook ! Dans un mouvement stratégique majeur,…

1 jour ago

VMware Fusion Pro et Workstation Pro : désormais gratuits pour une utilisation personnelle !

VMware Workstation désormais gratuit pour une utilisation personnelle. VMware Fusion et Workstation désormais gratuits Bonne…

2 jours ago

Fuite de données chez Dell : noms et adresses de clients exposés

Le constructeur de PC DELL piraté Le géant de l'informatique Dell a subi une faille…

4 jours ago

Le chef de Lockbit démasqué un coup dur pour le gang de ransomware ?

Le site du groupe de pirates Lockbit est sous contrôle des autorités Dmitri Yuryevich Khoroshev,…

5 jours ago

FT Group et OpenAI signent un accord pour améliorer ChatGPT avec les contenus journalistiques

Le journal Financial Times ouvre son contenu à OpenAI Le Financial Times (FT) et OpenAI,…

1 semaine ago

Microsoft nommé Leader dans le Cloud lié au développement d’IA générative selon Gartner

Microsoft est fier d'annoncer qu'il a été nommé Leader pour la cinquième année consécutive dans…

1 semaine ago