Le script PowerShell réduit l’exécution manuelle de tâches répétitives. Si vous exécutez fréquemment des scripts à des moments prédéfinis ou à des intervalles de temps spécifiés, vous êtes peut-être fatigué d’exécuter des scripts de manière répétée. Dans ce cas, vous pouvez utiliser le planificateur de tâches de Windows pour automatiser l’exécution des scripts à votre place. Cela vous permettra d’économiser votre temps et vos efforts pour exécuter les scripts quotidiennement ou hebdomadairement. Voyons comment planifier un script PowerShell à travers le planificateur de tâches.
Il peut être fait de deux façons.
1.Planifier un script PowerShell en utilisant l’interface graphique du planificateur de tâches
2.Planifier un script PowerShell à partir du planificateur de tâches à l’aide de PowerShell
- Méthode 1 : Planifier un script PowerShell à l’aide du planificateur de tâches
- Automatiser le script PowerShell à partir du planificateur de tâches avec des paramètres
- Méthode 2 : Planifier un script PowerShell à partir du planificateur de tâches en utilisant PowerShell
- Définir le temps pour le planificateur:
- Set Actions to be Performed During Execution:
- Save Scheduler:
- Cas d’utilisation:
Méthode 1 : Planifier un script PowerShell à l’aide du planificateur de tâches
Ouvrir le planificateur de tâches (on le trouve dans les ‘Administrative tools’ ou en appuyant sur ‘Windows+R’ pour ouvrir exécuter, puis taper “taskschd.mscâ€.)
Pour exécuter un script à partir du planificateur de tâches, suivez ces étapes.
1.Ouvrez le planificateur de tâches -> Bibliothèque du planificateur de tâches -> Créer une tâche
2.Dans l’onglet Général, vous pouvez définir le nom du planificateur et la description sur la tâche comme pour quel but la tâche a été créée.
Les options de sécurité disponibles sont expliquées ci-dessous.
- Spécifiez l’utilisateur au nom duquel la tâche sera exécutée.
- Vous pouvez spécifier qu’une tâche doit être exécutée . Cela peut être fait en sélectionnant un bouton radio intitulé ‘Run Whether the user is logged on not’. Si ce bouton radio est sélectionné, la tâche ne s’exécutera pas de manière interactive. Pour qu’une tâche soit exécutée de manière interactive, sélectionnez le bouton radio ’Run only when user is logged on’.
- Lorsque le bouton radio ‘Run whether user is logged on or not’ est sélectionné, vous pouvez être invité à fournir les informations d’identification du compte, que vous sélectionniez ou non la case à cocher ‘Do not store password’. Si le compte n’est pas connecté pendant l’exécution de la tâche, les informations d’identification enregistrées seront utilisées.
- Si la tâche nécessite des privilèges élevés, alors sélectionnez l’option ‘Exécuter avec les privilèges les plus élevés.’
3.Passez à l’onglet Déclencheur et cliquez sur le bouton Nouveau. Ici, vous pouvez définir des conditions qui déclenchent une tâche.
- Vous pouvez spécifier quand lancer la tâche. Par exemple, vous pouvez la faire exécuter selon une planification, au démarrage, à la connexion ou chaque fois qu’un événement particulier se produit en sélectionnant le menu déroulant ‘Begin the task’.
- Vous pouvez configurer si vous voulez exécuter cette tâche une fois ou quotidiennement ou hebdomadairement ou mensuellement selon votre scénario.
- Dans les “Paramètres avancésâ€, vous pouvez choisir de retarder la tâche, de répéter la tâche, d’arrêter la tâche si elle s’exécute plus longtemps que la période de temps et la date d’expiration spécifiées.
- Délai de la tâche jusqu’à †» Cela ajoute un retard aléatoire, de sorte que la tâche ne s’exécutera pas à l’heure exacte de la journée.
- Répéter la tâche tous les †» Cela indique le nombre de fois qu’une tâche doit s’exécuter après le déclenchement d’un déclencheur.
- Répéter la tâche tous les †» Intervalle de temps entre chaque répétition de la tâche
- Pour une durée de- Combien de temps une tâche devrait continuer à se répéter
- Arrêter la tâche si elle s’exécute plus longtemps que- Si la tâche s’exécute plus longtemps que le temps prévu ou ne quitte jamais, la tâche s’arrêtera automatiquement si elle atteint la limite de temps mentionnée.
- Expirer †» Après la période de temps spécifiée, la planification ne sera pas déclenchée.
4.Ouvrez ensuite l’onglet suivant ‘Actions’ et cliquez sur le bouton ‘New’.
- Dans le menu déroulant Action, “Démarrer un programme†est défini par défaut. Vous pouvez le changer si nécessaire.
- En utilisant Browse, sélectionnez le champ programme/script. Pour planifier un script, nous devons sélectionner powershell.exe.
Vous pouvez trouver powershell.exe dans votre dossier system32\WindowsPowerShell\v1.0.
- Dans ‘Add arguments’, le paramètre -File est celui par défaut alors il suffit de spécifier le chemin du script. Par exemple, je vais planifier un script qui exporte le rapport d’état MFA des utilisateurs d’Office 365.
PowerShell
1
|
c :\GetMFAStatus.ps1
|
Si le chemin contient des espaces vides, il doit être entouré de guillemets.
5.Une fois configuré, vous pouvez spécifier des conditions pour déterminer si la tâche doit s’exécuter. La tâche ne sera pas exécutée si une condition spécifiée ici n’est pas vraie.
6.Sur l’onglet Paramètres, vous pouvez définir des paramètres avancés supplémentaires pour contrôler l’exécution de la tâche.
Enfin, cliquez sur Ok pour créer un script planifié.
Le script planifié s’exécutera comme prévu selon votre planification sans aucun problème. Si vous voulez vérifier l’exécution du script, vous pouvez cliquer sur Run en faisant un clic droit sur le nom de la tâche.
Automatiser le script PowerShell à partir du planificateur de tâches avec des paramètres
Si vous voulez planifier le script PowerShell avec des paramètres, utilisez le format ci-dessous.       Â
.
PowerShell
1
|
Chemin du script -Param 1 Valeur1 -Param2 “Valeur 2â€
|
Par exemple, je vais automatiser un de nos scripts PowerShell : Exporter le rapport d’état MFA des utilisateurs d’Office 365
Pendant la planification, vous pouvez explicitement passer l’identifiant comme paramètres comme indiqué ci-dessous :
PowerShell
1
|
C :\GetMFAStatus.ps1 -UserName « XXX XX » -Password ****
|
Si la valeur du paramètre comporte un espace vide, les valeurs doivent être placées entre guillemets.
Si vous voulez passer un paramètre de commutation, vous pouvez utiliser la syntaxe ci-dessous.
PowerShell
1
|
 C :\GetMFAStatus.ps1 -EnabledOnly
|
Le script ci-dessus exporte le statut MFA des utilisateurs d’Office 365 dont le statut MFA est activé. Ici, -EnabledOnly est un paramètre de commutation.
Pour plus de scripts PowerShell liés à Office 365, vous pouvez vous référer au blog O365Reports.com.
Méthode 2 : Planifier un script PowerShell à partir du planificateur de tâches en utilisant PowerShell
Au lieu de l’interface graphique, vous pouvez utiliser les cmdlets PowerShell pour créer une tâche de planification qui automatise le script PowerShell. Cela implique les étapes suivantes,
1.Définir le temps pour le planificateur
2.Définir les actions à effectuer pendant l’exécution
3.Enregistrer le planificateur
Définir le temps pour le planificateur:
New-SchdeuledTaskTrigger crée un objet déclencheur de tâche planifiée. En utilisant ce cmdlet, vous pouvez spécifier l’heure de démarrage d’une tâche ou le démarrage d’une tâche plusieurs fois sur une base quotidienne ou hebdomadaire.
PowerShell
1
|
$Time=New-Déclencheur de tâche programmée -At 4.00PM -Once
|
La cmd ci-dessus crée un déclencheur de tâche planifiée qui commence à 4PM et s’exécute une fois.
PowerShell
1
|
 $Time=New-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2
|
Le cmd ci-dessus crée un déclencheur de tâche planifiée qui commence tous les 2 jours à 4PM
Set Actions to be Performed During Execution:
New-SchdeuledTaskAction représentent les actions qui sont exécutées lorsque le planificateur de tâches exécute la tâche. Une tâche peut avoir une seule action ou un maximum de 32 actions. Lorsque vous spécifiez plusieurs actions, le planificateur de tâches exécute une tâche de manière séquentielle.   Â
Cette commande ouvre un PowerShell et change le répertoire en C:/Scripts, puis invoque le script MFAStatus.ps1.
Save Scheduler:
Register-ScheduledTask enregistre la tâche planifiée sur un ordinateur local.
PowerShell
1
|
Register-ScheduledTask -TaskName « Schedule MFA Status Report » -Trigger $Time -Action $Action -RunLevel Highest
|
La cmd ci-dessus enregistre une tâche planifiée avec un nom “Schedule MFA Status Report†dans le dossier racine. La tâche enregistrée utilise les valeurs d’action et de déclenchement précréées qui sont spécifiées par les variables $Action et $Time.
Cas d’utilisation:
En utilisant le planificateur de tâches, vous pouvez planifier l’exécution périodique d’un script PowerShell. Ainsi, vous n’avez pas besoin d’exécuter manuellement un script sur une base quotidienne/hebdomadaire/mensuelle. Il existe de nombreux scripts disponibles sur Internet qui sont compatibles avec le planificateur (les informations d’identification peuvent être passées en paramètre au lieu d’être enregistrées dans le script). J’ai donné quelques exemples ici.
- Suivre l’historique de connexion des utilisateurs d’Office 365 – Conserver le journal d’audit pendant plus de 90 jours
- Rapport périodique de l’état MFA des utilisateurs d’Office 365
- Planifier le rapport de la dernière heure de connexion des utilisateurs d’Office 365
- Planifier le rapport de permission de la boîte aux lettres d’Office 365
- Planifier le rapport de licence des utilisateurs d’Office 365
- Planifier. Distribution Group membership PowerShell script
- Schedule Dynamic Distribution Group Membership PowerShell script
- Periodic report on Office 365 users’ last activity report
- Schedule Office 365 users’ login history PowerShell report
- Export shared mailbox permission report periodically
- Schedule non-.owner mailbox access report
- Office 365 users’ password expiry report
Dans ce blog, nous avons vu comment automatiser un script PowerShell en utilisant le planificateur de tâches.Quelle est votre approche préférée en matière de planification – interface graphique ou PowerShell ? Faites-le nous savoir dans la section des commentaires.
.