PowerShell/Tâche planifiée

Aller à la navigation Aller à la recherche

Généralité

Quelques particularités sont à notées concernant PowerShell et les tâches planifiées via le planificateur de tâches.

Lorsqu'une tâche planifiée est programmée pour exécuter un script PowerShell, utiliser les options suivantes :

  • programme : powershell.exe
  • arguments : -File Chemin\fichier
  • commencer dans :

Script PowerShell avec argument

Pour qu'un script PowerShell avec argument puisse être lancé depuis une tâche planifiée, voici un modèle :

  • programme/script : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ou simplement powershell.exe
  • arguments : -Command "& C:\SauveImap\PurgeFichierAncien.ps1 -chemin 'c:\SauveImap\Archives' -age '30'"

Fichier PurgeFichierAncien.ps1

<#
Nom         : PSHTAC010
Description : suppression des fichiers PDF d'un dossier et plus agé qu'un nombre de jour défini
Usage       : renseigner les arguments suivants :
                -chemin : chemin des fichiers à traiter ; valeur par défaut "C:\SauveDocAppli\Archives"
                -age : age des fichiers ; valeur par défaut "30"
Exemple     : pour une tâche planifiée :
                * programme : powershell.exe
                * arguments : -Command "& C:\SauveDocAppli\PurgeFichierAncien.ps1 -chemin 'C:\SauveDocAppli\Archives' -age '30'"
Auteurs     : fylip22
Version     : 1.1
Révisions   :
              - 1.0 (10/08/2023) : création du script
              - 1.1 (14/08/2023) : modification pour ne traiter que les PDF et ajout des valeurs par défaut
#>

Param(
        # Indication que les paramètres suivants sont facultatifs
    [Parameter()]
        # chemin du dossier à nettoyer ; avec chemin par défaut
    [string]$chemin="C:\SauveDocAppli\Archives",
        # Age maximum des fichiers à garder (en jour) ; avec valeur par défaut
    [int]$age="30"
)

Get-ChildItem $chemin -Filter *.pdf | Where CreationTime -lt (Get-Date).AddDays(-$age) | Remove-Item -Force

Liste des tâches planifiées

Liste des tâches planifiées dont le nom commence par "onedrive" :

Get-ScheduledTask -TaskPath \ | Where {$_.TaskName -like "onedrive*"}

Supprimer des tâches planifiées

Suppression des tâches planifiées dont le nom commence par "onedrive" :

Get-ScheduledTask -TaskPath \ | Where {$_.TaskName -like "onedrive*"} | Unregister-ScheduledTask


Voir aussi

  •