Bagikan melalui


Tugas WMI: Tugas Terjadwal

Tugas terjadwal WMI membuat dan mendapatkan informasi tentang tugas terjadwal. Untuk contoh lain, lihat TechNet ScriptCenter di https://www.microsoft.com/technet.

Contoh skrip yang ditampilkan dalam topik ini hanya mendapatkan data dari komputer lokal. Untuk informasi selengkapnya tentang cara menggunakan skrip untuk mendapatkan data dari komputer jarak jauh, lihat Menyambungkan ke WMI di Komputer Jarak Jauh.

Prosedur berikut menjelaskan cara menjalankan skrip.

Untuk menjalankan skrip

  1. Salin kode dan simpan dalam file dengan ekstensi .vbs, seperti filename.vbs. Pastikan editor teks Anda tidak menambahkan ekstensi .txt ke file.
  2. Buka jendela prompt perintah dan navigasikan ke direktori tempat Anda menyimpan file.
  3. Ketik filename.vbscscript pada prompt perintah.
  4. Jika Anda tidak dapat mengakses log peristiwa, periksa untuk melihat apakah Anda menjalankan dari prompt perintah Yang ditingkatkan. Beberapa Log Peristiwa, seperti Log Peristiwa Keamanan, dapat dilindungi oleh Kontrol Akses Pengguna (UAC).

Catatan

Secara default, cscript menampilkan output skrip di jendela prompt perintah. Karena skrip WMI dapat menghasilkan output dalam jumlah besar, Anda mungkin ingin mengalihkan output ke file. Ketik filename.vbs > cscript outfile.txt pada prompt perintah untuk mengalihkan output skrip filename.vbs ke outfile.txt.

Tabel berikut ini mencantumkan contoh skrip yang bisa digunakan untuk mendapatkan berbagai jenis data dari komputer lokal.

Bagaimana Caranya... Kelas atau metode WMI
... membuat tugas terjadwal menggunakan skrip? Gunakan kelas Win32_ScheduledJob dan metode Buat . Jika Anda mengalami kesulitan membuat tugas ini berfungsi pada Windows 7 atau yang lebih baru, lihat bagian Win32_ScheduledJob Keterangan; kemungkinan pengaturan Anda mencegah Anda menggunakan kelas .
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
JobID = "Test"
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreate = objNewJob.Create _
    ("Notepad.exe", "********143000.000000-420", True , 1 OR 4 OR 16, ,True, JobId) 
If errJobCreate = 0 Then
    WScript.Echo "Job created successfully: " & VBNewLine _
        & "Notepad.exe scheduled to run repeately at 14.30 (2:30 P.M.) PST" & VBNewLine _
        & "on Mon, Wed, and Fri."
Else
    WScript.Echo "Job not created. Error code = " & errJobCreate
End If

Dalam string "******143000.000000-420" (digunakan dalam nilai parameter StartTime dari metode Buat ), "******143000.000000" menentukan bahwa tugas dimulai pada 14.30 (2:30 P.M.) dan "-420" menentukan zona waktu. Nomor zona waktu adalah bias terjemahan waktu lokal saat ini. Bias adalah perbedaan antara waktu UTC dan waktu setempat. Untuk menghitung bias untuk zona waktu Anda, kalikan jumlah jam zona waktu Anda di depan atau di belakang Greenwich Mean Time (GMT) dengan 60 (gunakan angka positif untuk jumlah jam jika zona waktu Anda lebih awal dari GMT dan angka negatif jika zona waktu Anda berada di belakang GMT). Tambahkan tambahan 60 ke perhitungan Anda jika zona waktu Anda menggunakan waktu musim panas. Misalnya, zona Waktu Standar Pasifik adalah delapan jam di belakang GMT, oleh karena itu bias sama dengan -420 (-8 * 60 + 60) ketika waktu musim panas sedang digunakan dan -480 (-8 * 60) ketika waktu musim panas tidak digunakan. Anda juga dapat menentukan nilai bias dengan mengkueri properti bias dari kelas Win32_TimeZone .

... mengembalikan daftar semua tugas terjadwal di komputer?

Gunakan kelas Win32_ScheduledJob . Perhatikan bahwa kelas ini hanya dapat mengembalikan pekerjaan yang dibuat menggunakan skrip atau AT.exe. Ini tidak dapat mengembalikan informasi tentang pekerjaan yang dibuat oleh atau dimodifikasi oleh wizard Tugas Terjadwal.

VB
strComputer = "."
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery ("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
    Wscript.Echo "Command: " & objJob.Command & VBNewLine _
    & "Days Of Month: " & objJob.DaysOfMonth & VBNewLine _
    & "Days Of Week: " & objJob.DaysOfWeek & VBNewLine _
    & "Description: " & objJob.Description & VBNewLine _
    & "Elapsed Time: " & objJob.ElapsedTime & VBNewLine _
    & "Install Date: " & objJob.InstallDate & VBNewLine _
    & "Interact with Desktop: " & objJob.InteractWithDesktop & VBNewLine _
    & "Job ID: " & objJob.JobId & VBNewLine _
    & "Job Status: " & objJob.JobStatus & VBNewLine _
    & "Name: " & objJob.Name & VBNewLine _
    & "Notify: " & objJob.Notify & VBNewLine _
    & "Owner: " & objJob.Owner & VBNewLine _
    & "Priority: " & objJob.Priority & VBNewLine _
    & "Run Repeatedly: " & objJob.RunRepeatedly & VBNewLine _
    & "Start Time: " & objJob.StartTime & VBNewLine _
    & "Status: " & objJob.Status & VBNewLine _
    & "Time Submitted: " & objJob.TimeSubmitted & VBNewLine _
    & "Until Time: " & objJob.UntilTime
Next

Tugas WMI untuk Skrip dan Aplikasi

Contoh Aplikasi WMI C++

TechNet ScriptCenter