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 :
Compte d'exécution
Liste des tâches planifiées avec indication du compte d'exécution :
<#
Nom : PSHTAC001
Description : liste des tâches planifiées avec indication du compte d'exécution
Usage : exercice en PowerShell
Particularité : en modifiant le filtre, il est possible de n'afficher que certaines tâches.
Exemple :
* Where {$_.TaskName -like "*"} : pour afficher toutes les tâches
* Where {$_.TaskName -like "Opti*"} : pour n'afficher que les tâches dont le nom commence par "Opti"
Auteur : fylip22
Version : 1.0
Révisions :
- 1.0 (31/10/2024) : fylip22, création du script
#>
Clear-Host
Write-Host "Liste des tâches planifiées avec indication du compte d'exécution"
Write-Host "================================================================="
$TacheListe =
@(Get-ScheduledTask -TaskPath \ | Where {$_.TaskName -like "*"}) |
ForEach-Object {
[pscustomobject]@{
Tache = $_.taskname;
CompteExecution = $_.CimInstanceProperties.Value.userid[1]
}
}
# Affichage du résultat
$TacheListe
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.exeou simplementpowershell.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