Frage Frage schtasks mit Powershell


Auf einem Windows7-Rechner versuche ich, eine Abfrage auszuführen, um alle geplanten Tasks mit schtasks.exe anzuzeigen

Dies ist in Ordnung, aber ich möchte auch die Ergebnismenge mit etwas wie filtern

schtasks /query | where { $_.TaskName -eq "myTask" } 

Das Problem ist, dass ich dies nicht schtasks gibt eine korrekt formatierte Liste für die Where-Funktion zu arbeiten.

Ich habe es 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 in der Lage zu sein, sie zu filtern


8
2018-06-18 19:09


Ursprung


Was ist mit den Backslashes drin? Ich bin mir ziemlich sicher, dass das nicht stimmt schtasks erwartet dort aber eher einen Schrägstrich. - Joey
Ha! Du hast recht. Ich habe es oben korrigiert - jdiaz


Antworten:


Sie könnten versuchen, Schtasks zu verwenden, die Sie Text analysieren lassen. Dies ist fast immer fehleranfällig und definitiv schwieriger als die Ausgabe eines Befehls.

Es gibt ein TaskScheduler Modul in der PowerShellPack. Nachdem Sie das PowerShell-Paket installiert haben, verwenden Sie Folgendes, um alle geplanten Aufgaben zu erhalten:

Import-Module TaskScheduler
Get-ScheduledTask -Recurse

Da es sich um echte Objekte handelt, um eine Aufgabe mit einem bestimmten Namen zu finden, können Sie Folgendes verwenden:

Get-ScheduledTask -Recurse |  Where-Object { $_.Name -like "*Task*"}

Im Allgemeinen werden Sie feststellen, dass die PowerShell-Community die Verwendung von Befehlszeilen wie "schtasks" erheblich erschwert und sie zu einfach zu verwendenden Cmdlets wie Get-ScheduledTask gemacht hat.

Siehe auch:

Senden von automatisierten E-Mails mit dem TaskScheduler-Modul

Hoffe das hilft


8
2018-06-18 21:44



Dies funktioniert gut, wenn Sie Win2k8-Boxen (oder Vista / W7) verwenden. Leider funktioniert es nicht mit W2k3-Servern (die in meiner Umgebung immer noch sehr verbreitet sind). - Mike Shepard
@MikeShepard Wenn Sie die neuen Spielzeuge wollen, müssen Sie aufhören, 11 Jahre alte Betriebssysteme zu verwenden. - Ryan Ries
Das ist die Geschichte meiner Karriere. :-( - Mike Shepard


Wenn Sie es nicht in Powershell tun müssen, dann funktioniert das Folgende

Schtasks / Abfrage | findstr / i "mytask"

PS-Version
Schtasks / Abfrage | ? {$ _ -wie 'mytask'}


2
2018-06-18 19:32



ein vollständiges Quellcode-Beispiel zum Erstellen, Abfragen und Löschen von Aufgaben mit PS? - Kiquenet


Hier ist ein Blogbeitrag Ich habe darüber geschrieben. Im Wesentlichen nahm ich die Ausgabe von / FO LIST / V, schrieb das in eine Datei und importierte sie als Objekte mit import-csv zurück


2
2018-06-18 19:26



Sie sind auf dem richtigen Weg, aber das Schreiben in eine temporäre Datei ist hier unnötig: schtasks /query /fo csv /v|convertfrom-csv funktioniert gut - Joey
Das ist ordentlich, aber immer noch nicht leicht abfragbar - jdiaz
Johannes: Du hast Recht, aber ich mag wirklich (wirklich) keine Eigenschaften, die Leerzeichen / Doppelpunkte / Schrägstriche enthalten. jdiaz: Was ist nicht abfragbar? Das Skript, das ich gepostet habe, und Johannes 'Revision geben beide native Powershell-Objekte mit Eigenschaften zurück. Sie sollten genauso abfragbar sein wie alle anderen Powershell-Entities. - Mike Shepard
Wahrlich - sie sind abfragbar ...schtasks /query /fo csv /v /s "myserver" | convertfrom-csv | Select TaskName, "Last Run Time", Author | ? {$_.Author -notmatch "microsoft|N/A|Author"} bietet Ihnen alle benutzerdefinierten geplanten Aufgaben, die Sie haben. - SliverNinja - MSFT


Sie können versuchen:

schtasks /query /FO CSV | ConvertFrom-CSV | Where { $_.TaskName -eq "myTask" } 

Der Trick besteht darin, die Ausgabe zuerst in CSV und dann zurück in ein Powershell-Objekt zu konvertieren.


2
2017-10-01 18:50





Du überlegst es.

Befehlszeile für was Sie wollen schtasks / query / s% Computername% | FIND / I "% name_of_task%"

Beispiel schtasks / query / s server01 | FIND / I "Zeitplan"


0
2017-09-22 19:16





Die besten Optionen sind von Alex, da Sie keine Bibliothek benötigen und Sie die Antworten der Zeichenfolge von Schtasks in PowerShell-Objekt konvertieren werden.


-2
2017-12-06 15:18