Задачи WMI: запланированные задачи

Запланированные задачи WMI создают и получают сведения о запланированных задачах. Другие примеры см. в центре сценариев TechNet по адресу https://www.microsoft.com/technet.

Примеры скриптов, показанные в этом разделе, получают данные только с локального компьютера. Дополнительные сведения об использовании скрипта для получения данных с удаленных компьютеров см. в разделе Подключение к WMI на удаленном компьютере.

В следующей процедуре описывается запуск скрипта.

Запуск сценария

  1. Скопируйте код и сохраните его в файле с расширением VBS, например filename.vbs. Убедитесь, что текстовый редактор не добавляет расширение .txt в файл.
  2. Откройте окно командной строки и перейдите в каталог, в котором сохранен файл.
  3. Введите cscript filename.vbs в командной строке.
  4. Если вы не можете получить доступ к журналу событий, проверка, чтобы узнать, выполняется ли вы из командной строки с повышенными привилегиями. Некоторые журналы событий, например журнал событий безопасности, могут быть защищены средствами управления доступом пользователей (UAC).

Примечание

По умолчанию cscript отображает выходные данные скрипта в окне командной строки. Так как скрипты WMI могут создавать большие объемы выходных данных, может потребоваться перенаправить выходные данные в файл. Введите cscript filename.vbs > outfile.txt в командной строке, чтобы перенаправить выходные данные скриптаfilename.vbs на outfile.txt.

В следующей таблице перечислены примеры скриптов, которые можно использовать для получения различных типов данных с локального компьютера.

Часто выполняемые действия в новом интерфейсе Классы или методы WMI
... создавать запланированные задачи с помощью скриптов? Используйте класс Win32_ScheduledJob и метод Create . Если вам не удается выполнить эту задачу в Windows 7 или более поздней версии, см. раздел Win32_ScheduledJob Примечания. Скорее всего, ваши параметры не позволяют использовать класс .
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

В строке "********143000.000000-420" (используется в значении параметра StartTime метода Create ) "**143000.0000000" указывает, что задача начинается в 14:30 (14:30), а "-420" — часовой пояс. Номер часового пояса — это текущее смещение перевода местного времени. Смещение — это разница между временем в формате UTC и местным временем. Чтобы вычислить смещение для часового пояса, умножьте количество часов, в течение которых часовой пояс опережает или отстает от среднего времени по Гринвичу (GMT) на 60 (используйте положительное число для количества часов, если часовой пояс опережает GMT, и отрицательное число, если часовой пояс отстает от GMT). Если в часовом поясе используется летнее время, добавьте в вычисление еще 60. Например, тихоокеанский стандартный часовой пояс отстает от времени по гринвичу на восемь часов, поэтому смещение равно -420 (-8 * 60 + 60), когда используется летнее время, и -480 (-8 * 60), если летнее время не используется. Вы также можете определить значение смещения, запросив свойство bias класса Win32_TimeZone .

... возвращает список всех запланированных задач на компьютере?

Используйте класс Win32_ScheduledJob . Обратите внимание, что этот класс может возвращать только задания, созданные с помощью скрипта или AT.exe. Он не может возвращать сведения о заданиях, созданных или измененных мастером запланированных задач.

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

Задачи WMI для сценариев и приложений

Примеры приложений WMI C++

TechNet ScriptCenter