Auf einem Windows7-Computer, den ich versuche, kann ich eine Abfrage ausführen, um alle geplanten Aufgaben mit schtasks.exe anzuzeigen
Das ist in Ordnung, aber ich möchte auch die Ergebnismenge mit so etwas filtern
schtasks /query | where { $_.TaskName -eq "myTask" }
Das Problem ist, dass diese Schtasks keine ordnungsgemäß formatierte Liste für die Where-Funktion zurückgeben.
Ich habe auch versucht:
schtasks /query /FO LIST
schtasks /query | format-list | where ....
die funktionieren auch nicht.
Was wäre der beste Weg, um die Schtasks auf einem lokalen Computer mit Win7 abzufragen und sie zu filtern
schtasks
erwartet wird, sondern eher ein Schrägstrich.Antworten:
Sie könnten versuchen, schtasks zu verwenden, wodurch Sie Text analysieren können. Dies ist fast immer fehleranfällig und definitiv schwieriger als die Ausgabe eines Befehls.
Es gibt zufällig ein TaskScheduler-Modul im PowerShellPack . Verwenden Sie nach der Installation des PowerShell-Pakets Folgendes, um alle geplanten Aufgaben abzurufen:
Da es sich um reale Objekte handelt, können Sie zum Auffinden einer Aufgabe mit einem bestimmten Namen Folgendes verwenden:
Im Allgemeinen werden Sie feststellen, dass die Verwendung von Befehlszeilen wie schtasks in der PowerShell-Community viel schwieriger geworden ist und sie in benutzerfreundliche Cmdlets wie Get-ScheduledTask umgewandelt hat.
Siehe auch:
Senden automatisierter E-Mails mit dem TaskScheduler-Modul
Hoffe das hilft
quelle
Wenn Sie dies nicht in Powershell tun müssen, funktioniert Folgendes
schtasks / query | findstr / i "mytask"
ps version
schtasks / query | ? {$ _ -wie 'mytask'}
quelle
Hier ist ein Blog-Beitrag, den ich darüber geschrieben habe. Im Wesentlichen nahm ich die Ausgabe von / FO LIST / V, schrieb sie in eine Datei und importierte sie mit import-csv wieder als Objekte
quelle
schtasks /query /fo csv /v|convertfrom-csv
funktioniert einwandfreischtasks /query /fo csv /v /s "myserver" | convertfrom-csv | Select TaskName, "Last Run Time", Author | ? {$_.Author -notmatch "microsoft|N/A|Author"}
bieten Ihnen alle benutzerdefinierten geplanten Aufgaben, die Sie haben.Sie können versuchen:
Der Trick besteht darin, die Ausgabe zuerst in CSV und dann zurück in ein Powershell-Objekt zu konvertieren.
quelle
Du überdenkst es.
Befehlszeile für das, was Sie wollen schtasks / query / s% Computername% | FIND / I "% name_of_task%"
Beispiel schtasks / query / s server01 | FIND / I "Zeitplan"
quelle
Die besten Optionen stammen von Alex, da Sie keine Bibliothek benötigen und die Antworten der Zeichenfolge aus Schtasks im Powershell-Objekt konvertieren.
quelle