Si vous disposez d'un grand nombre de serveurs dans votre parc, il peut-être intéressant de pouvoir récupérer toutes les tâches planifiées qui s’exécutent sur vos serveurs distants. Ici nous allons voir la procédure à suivre afin d'exporter ces informations dans un fichier .csv.
Avec l'outil Windows Schtasks :
SchTasks.exe effectue les mêmes opérations que les Tâches planifiées dans le panneau de configuration de Windows.
One-Liners :
#OL01 - Exporter les tâches planifiées d'un serveur en local dans un fichier .csv
schtasks.exe /Query /FO CSV /V | ConvertFrom-Csv | Export-Csv -Path "C:\Temp\Tasks.csv" -NoTypeInformation -Delimiter ";" -encoding UTF8
#OL02 - Exporter les tâches planifiées de serveurs distants (stockés dans un fichier texte) dans un fichier .csv
(Get-Content -Path "C:\Temp\Servers.txt") | ForEach-Object { Schtasks.exe /Query /s $_ /V /FO CSV } | ConvertFrom-CSV | Export-CSV -Path "C:\Temp\Tasks-Servers.csv" -NoTypeInformation -Delimiter ";" -encoding UTF8
Exemple du contenu du fichier Servers.txt
avec les hostnames des serveurs :
Server1 Server2 Server3
Problème avec l'outil Windows Schtasks :
La commande Schtasks et ses paramètres génèrent des problèmes d'affichage lorsque l'on souhaite exporter les données. En effet, des lignes sont répétées avec des en-têtes de colonnes vide.
Avec un script PowerShell :
Cliquer ici pour télécharger le script.
One-Liners :
#OL01 - Exporter les tâches planifiées d'un serveur en local dans un fichier .csv
.\Get-ScheduledTask.ps1 | Export-Csv -Path "C:\Temp\Tasks.csv" -NoTypeInformation -Delimiter ";" -encoding UTF8
#OL02 - Exporter les tâches planifiées de serveurs distants (stockés dans un fichier texte) dans un fichier .csv
(Get-Content -Path "C:\Temp\Servers.txt") | .\Get-ScheduledTask.ps1 | Export-Csv -Path "C:\Temp\Tasks-Servers.csv" -NoTypeInformation -Delimiter ";" -encoding UTF8
Exemple du contenu du fichier Servers.txt
avec les hostnames des serveurs :
Server1 Server2 Server3