PowerShell fournit des options avancées pour contrôler et gérer tous les processus de votre système. Donc, si vous souhaitez automatiser un processus ou un groupe d’entre eux, PowerShell est la solution.
Contrairement aux invites de commande, PowerShell utilise des applets de commande. Ces applets de commande ne sont pas des exécutables autonomes, mais traitent les entrées d’un pipeline et transmettent la sortie à un autre pour le même objet. Ainsi, vous pouvez utiliser plusieurs applets de commande pour le même objet et les exécuter en une seule tâche. Cette propriété rend l’automatisation des scripts PowerShell extrêmement efficace.
Si vous voulez savoir comment vous pouvez automatiser les scripts PowerShell, cet article devrait vous fournir toutes les informations nécessaires.
Comment automatiser les scripts PowerShell ?
Selon votre système, vous ne pourrez peut-être pas exécuter de scripts PowerShell sur votre ordinateur. En effet, PowerShell inclut un paramètre appelé stratégie d’exécution pour protéger votre ordinateur en imposant un niveau particulier de restriction à ces scripts. Et la plupart des systèmes ont ce paramètre activé par défaut.
Ainsi, avant d’automatiser les scripts, vous devez supprimer ou réduire la restriction. Tout d’abord, ouvrez PowerShell en tant qu’administrateur et entrez la commande suivante :
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned
Si vous devez exécuter des scripts non signés à partir d’Internet ou d’une source externe, vous devez utiliser la commande suivante :
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy Unrestricted
Ensuite, utilisez l’une des méthodes ci-dessous pour automatiser les scripts PowerShell sous Windows :
Utilisation du planificateur de tâches
Le L’outil graphique Planificateur de tâches fournit un moyen simple d’automatiser les scripts PowerShell. C’est la meilleure option si vous souhaitez planifier un script que vous avez téléchargé ou obtenu d’une source externe et que vous n’avez pas beaucoup d’idée sur la façon d’utiliser PowerShell.
Ouvrez Run. Tapez taskschd.msc et appuyez sur Entrée pour ouvrir le planificateur de tâches. Faites un clic droit sur Bibliothèque du planificateur de tâches et sélectionnez Créer une tâche. Dans l’onglet Général, donnez le nom et la description que vous souhaitez pour la tâche afin d’automatiser les scripts. Choisissez entre Exécuter uniquement lorsque l’utilisateur est connecté et Exécuter que l’utilisateur soit connecté ou non, selon vos besoins.
Si vous souhaitez utiliser un autre compte utilisateur pour exécuter la tâche, cliquez sur Changer d’utilisateur ou de groupe> Avancé> Rechercher maintenant. Sélectionnez votre compte dans la liste et cliquez sur OK > OK.
Définissez d’autres options, par exemple si vous souhaitez des privilèges d’administrateur, si vous souhaitez rendre la tâche masquée ou la configurer pour une autre version du système d’exploitation. Maintenant, allez dans l’onglet Déclencheurs et cliquez sur Nouveau.
Choisissez la planification ou l’instance à laquelle vous souhaitez exécuter le script dans la liste déroulante à côté de Commencer la tâche. Si vous avez choisi Selon un horaire, vous devez définir la fréquence et la date de début. Sinon, pour la plupart des options, vous devez spécifier l’utilisateur. Ensuite, définissez les paramètres avancés si vous le souhaitez. Assurez-vous de cocher Activé si vous le faites. Cliquez sur OK.
Vous pouvez toujours modifiez le déclencheur en cliquant dessus et en sélectionnant Modifier. Vous pouvez également ajouter un autre déclencheur pour la tâche. Maintenant, allez dans l’onglet Actions et sélectionnez Nouveau. Tapez powershell ou powershell.exe dans la zone de texte Programme/script. Tapez-File”chemin complet vers le script”à côté de Ajouter des arguments. Par exemple,-File”D:\New\script.ps1″
Appuyez sur OK. Accédez aux onglets Conditions et Paramètres et spécifiez-y les options. Cliquez sur OK pour créer la tâche.
Utiliser PowerShell
Si vous êtes familiarisé avec l’utilisation de PowerShell pour les scripts, la méthode la plus simple pour automatiser des scripts consiste à créer une tâche planifiée via PowerShell lui-même.
Tout d’abord, nous discuter des applets de commande que vous devez utiliser pour créer de telles planifications. Si vous savez déjà de quoi il s’agit, vous pouvez passer directement aux étapes principales. Sinon, vous devrez les parcourir pour comprendre comment exécuter le processus.
New-ScheduledTaskTrigger
Il crée un objet déclencheur pour spécifier quand pour programmer la tâche. Vous devez affecter cette applet de commande à une variable pour créer un objet déclencheur.
Vous pouvez utiliser les attributs suivants avec cette applet de commande pour déclencher une tâche à intervalles réguliers :
-At : spécifie l’heure à laquelle vous voulez exécuter la tâche-Once : démarre la tâche une fois Par exemple, $trigger=New-ScheduledTaskTrigger-Once-At 4am-Daily : démarre la tâche avec daily. Vous pouvez également utiliser-DaysInterval # avec-Daily pour exécuter la tâche une fois tous les # jours. Par exemple, $trigger=New-ScheduledTaskTrigger-Daily-DaysInterval 5-At 4am crée un déclencheur pour exécuter une tâche une fois tous les 5 jours.
-Hebdomadaire : démarre la semaine de tâches. Vous pouvez également utiliser-WeeksInterval # avec-Weekly pour exécuter une tâche une fois toutes les # semaines.
Si vous souhaitez exécuter la tâche au démarrage, vous devez utiliser l’attribut-AtStartup. De même, vous devez utiliser-AtLogon pour exécuter des tâches lors de la connexion de l’utilisateur. Vous pouvez utiliser l’attribut-User pour spécifier le compte utilisateur exact.
New-ScheduledTaskAction
Il spécifie quelle application vous souhaitez exécuter. Vous devez également créer un objet d’action de tâche en l’affectant à une autre valeur si vous souhaitez enregistrer la tâche sur votre ordinateur.
Les principaux attributs que vous pouvez utiliser sont :
-Exécuter : spécifie le fichier exécutable que vous devez automatiser ; dans ce cas, powershell.exe-Argument: Spécifie while file à ouvrir avec le fichier exécutable ci-dessus. Il est préférable de saisir le chemin complet du script, sinon PowerShell le recherche dans le répertoire de travail. Par exemple, $action=New-ScheduledTaskAction-Execute”powershell.exe”-Argument”D:\New\script.ps1″-WorkingDirectory : Décrivez le répertoire de travail dans lequel votre système exécute la tâche. Celui par défaut est %WinDir%\System32
Register-ScheduledTask
Il enregistre la tâche sur votre ordinateur local. Vous devez utiliser les objets que vous créez à l’aide des applets de commande ci-dessus dans les arguments de cette applet de commande pour automatiser les scripts PowerShell. Les attributs nécessaires sont :
-TaskName : n’importe quel nom que vous voulez pour la tâche.-Trigger : Ici, vous attachez l’objet déclencheur que vous créez à l’aide de New-ScheduledTaskTrigger-User : Spécifiez le compte d’utilisateur auquel la tâche s’applique. Vous pouvez également spécifier un ordinateur si vous souhaitez automatiser les scripts pour un ordinateur connecté au réseau.-Action: ici, vous attachez l’objet de tâche créé par l’applet de commande New-ScheduledTaskAction.
Par exemple, Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action
Il existe de nombreuses cmdlets supplémentaires que vous pouvez utiliser à cette fin ainsi que des attributs que vous pouvez utiliser avec elles. Comme ils sont facultatifs et non pertinents dans la plupart des cas, nous ne les avons pas inclus ici. Mais vous pouvez toujours consulter leur documentation sur la plateforme de Microsoft si vous voulez en savoir plus à leur sujet.
Enfin, voici comment vous pouvez utiliser ces applets de commande pour automatiser les scripts PowerShell :
Ouvrez Exécuter en appuyant sur Win + R. Tapez powershell et appuyez sur Entrée pour ouvrez Windows PowerShell. Si vous souhaitez utiliser le noyau PowerShell (versions 6.x, 7.x), vous devez utiliser la commande Exécuter pwsh. Créez un objet déclencheur à l’aide de l’applet de commande New-ScheduledTaskTrigger. Ensuite, créez un objet de tâche pour exécuter un script PowerShell. Enfin, enregistrez la tâche planifiée. Par exemple, vous pouvez entrer les applets de commande suivantes sur PowerShell : $Trigger=New-ScheduledTaskTrigger-Once-At 10am $Action=New-ScheduledTaskAction-Execute”powershell.exe”-Argument”D:\New\script.ps1″$User=”DESKTOP\User”Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action