Pada mesin Windows7 saya mencoba saya dapat menjalankan kueri untuk melihat semua tugas yang dijadwalkan menggunakan schtasks.exe
Ini bagus tapi saya juga ingin memfilter set hasil menggunakan sesuatu seperti
schtasks /query | where { $_.TaskName -eq "myTask" }
Masalahnya adalah saya tidak schtasks ini mengembalikan daftar diformat dengan benar untuk fungsi mana untuk bekerja.
Saya juga sudah mencoba:
schtasks /query /FO LIST
schtasks /query | format-list | where ....
itu juga tidak bekerja.
Apa yang akan menjadi cara terbaik untuk meminta schtasks di komputer lokal menggunakan Win7 dan dapat menyaringnya
schtasks
diharapkan di sana, melainkan tebasan ke depan.Jawaban:
Anda bisa mencoba menggunakan schtasks, yang akan membuat Anda menguraikan teks. Ini hampir selalu rawan kesalahan, dan jelas lebih sulit daripada mengambil output dari suatu perintah.
Ada modul TaskScheduler di PowerShellPack . Setelah Anda menginstal paket PowerShell, untuk mendapatkan semua tugas yang dijadwalkan, gunakan:
Karena ini adalah objek nyata, untuk menemukan tugas dengan nama tertentu, Anda dapat menggunakan:
Secara umum, Anda akan menemukan bahwa komunitas PowerShell telah mengambil lebih banyak kesulitan untuk menggunakan baris perintah, seperti schtasks, dan mengubahnya menjadi cmdlet yang mudah digunakan, seperti Get-ScheduledTask.
Lihat juga:
Mengirim Email Otomatis menggunakan Modul TaskScheduler
Semoga ini membantu
sumber
jika Anda tidak perlu melakukannya di PowerShell maka yang berikut ini akan berfungsi
schtasks / query | findstr / i "mytask"
ps versi
schtasks / query | ? {$ _ -seperti 'mytask'}
sumber
Inilah posting blog yang saya tulis tentang melakukan ini. Pada dasarnya, saya mengambil output dari / FO LIST / V, menulis itu ke file, dan mengimpornya kembali sebagai objek menggunakan import-csv
sumber
schtasks /query /fo csv /v|convertfrom-csv
berfungsi dengan baikschtasks /query /fo csv /v /s "myserver" | convertfrom-csv | Select TaskName, "Last Run Time", Author | ? {$_.Author -notmatch "microsoft|N/A|Author"}
akan memberi Anda semua tugas terjadwal khusus yang Anda miliki.Anda dapat mencoba:
Caranya adalah dalam mengkonversi output ke CSV terlebih dahulu, dan kemudian kembali ke objek PowerShell.
sumber
Anda terlalu memikirkannya.
Commandline untuk apa yang Anda inginkan schtasks / query / s% computername% | FIND / I "% name_of_task%"
contoh schtasks / query / s server01 | FIND / I "schedule"
sumber
Pilihan terbaik adalah dari Alex karena Anda tidak perlu pustaka dan Anda akan mengonversi jawaban string dari schtasks di objek Powershell.
sumber