Sur une machine Windows7, j'essaie de pouvoir exécuter une requête pour afficher toutes les tâches planifiées à l'aide de schtasks.exe
C'est bien mais je voudrais aussi filtrer le jeu de résultats en utilisant quelque chose comme
schtasks /query | where { $_.TaskName -eq "myTask" }
Le problème est que je ne renvoie pas une liste correctement formatée pour que la fonction where fonctionne.
J'ai aussi essayé:
schtasks /query /FO LIST
schtasks /query | format-list | where ....
ça ne marche pas non plus.
Quelle serait la meilleure façon d'interroger les schtasks sur un ordinateur local à l'aide de Win7 et de pouvoir les filtrer
schtasks
s'y attend, mais plutôt une barre oblique.Réponses:
Vous pouvez essayer d'utiliser des schtasks, ce qui vous laissera analyser le texte. C'est presque toujours sujet aux erreurs, et certainement plus difficile que de prendre la sortie d'une commande.
Il se trouve qu'il y a un module TaskScheduler dans PowerShellPack . Une fois que vous avez installé le pack PowerShell, pour obtenir toutes les tâches planifiées, utilisez:
Comme ce sont des objets réels, pour trouver une tâche d'un nom particulier, vous pouvez utiliser:
En général, vous constaterez que la communauté PowerShell a pris beaucoup plus de mal à utiliser les lignes de commande, comme les schtasks, et les a transformées en applets de commande faciles à utiliser, comme Get-ScheduledTask.
Voir également:
Envoi d'e-mails automatisés à l'aide du module TaskScheduler
J'espère que cela t'aides
la source
si vous n'avez pas besoin de le faire en PowerShell, alors ce qui suit fonctionnera
schtasks / query | findstr / i "mytask"
schtasks / requête de la version ps | ? {$ _-like 'mytask'}
la source
Voici un article de blog que j'ai écrit à ce sujet. Essentiellement, j'ai pris la sortie de / FO LIST / V, l'ai écrit dans un fichier et l'ai importé en tant qu'objets en utilisant import-csv
la source
schtasks /query /fo csv /v|convertfrom-csv
marche très bienschtasks /query /fo csv /v /s "myserver" | convertfrom-csv | Select TaskName, "Last Run Time", Author | ? {$_.Author -notmatch "microsoft|N/A|Author"}
vous fournira toutes les tâches planifiées personnalisées que vous avez.Vous pouvez essayer:
L'astuce consiste à convertir d'abord la sortie en CSV, puis à revenir à un objet PowerShell.
la source
Vous y pensez trop.
Ligne de commande pour ce que vous voulez schtasks / query / s% computername% | FIND / I "% name_of_task%"
exemple schtasks / query / s server01 | FIND / I "planning"
la source
La meilleure option est d'Alex car vous n'avez pas besoin de bibliothèque et vous convertirez les réponses de la chaîne à partir de schtasks dans l'objet Powershell.
la source