Поделиться через


Функция NetScheduleJobAdd (lmat.h)

[NetScheduleJobAdd больше недоступен для использования с Windows 8. Вместо этого используйте интерфейсы планировщика задач 2.0.

]

Функция NetScheduleJobAdd отправляет задание для выполнения в указанное будущее время и дату. Эта функция требует запуска службы расписания на компьютере, на который отправляется задание.

Синтаксис

NET_API_STATUS NET_API_FUNCTION NetScheduleJobAdd(
  [in, optional] LPCWSTR Servername,
  [in]           LPBYTE  Buffer,
  [out]          LPDWORD JobId
);

Параметры

[in, optional] Servername

Указатель на константную строку, указывающую DNS- или NetBIOS-имя удаленного сервера, на котором выполняется функция. Если этот параметр имеет значение NULL, используется локальный компьютер.

[in] Buffer

Указатель на структуру AT_INFO , описывающую задание для отправки. Дополнительные сведения о планировании заданий с помощью различных свойств заданий см. в разделе "Примечания" и "Буферы функций управления сетью".

[out] JobId

Указатель, получающий идентификатор задания для только что отправленного задания. Эта запись действительна, только если функция возвращает успешно.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет NERR_Success.

Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки. Список кодов ошибок см. в разделе Системные коды ошибок.

Комментарии

Обычно только члены локальной группы администраторов на компьютере, на котором добавляется задание расписания, могут успешно выполнять эту функцию. Если имя сервера, переданное в строке, на которую указывает параметр Servername , является удаленным сервером, то только члены локальной группы администраторов на удаленном сервере могут успешно выполнить эту функцию.

Если в следующем значении реестра задан наименьший бит (например, 0x00000001), пользователи, входящие в группу Операторы сервера, также могут успешно выполнить эту функцию.

HKLM\System\CurrentControlSet\Control\Lsa\SubmitControl

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

Чтобы запланировать задание, которое выполняется один раз:

  • Задайте для элемента DaysOfMonth структуры AT_INFO значение 0.
  • Задайте для элемента DaysOfWeek структуры AT_INFO значение 0.
  • Задайте для элемента JobTime структуры AT_INFO значение времени выполнения задания.
Задание выполняется в момент, указанный членом JobTimeструктуры AT_INFO , на которую указывает параметр Buffer . После выполнения задания оно удаляется.

Чтобы запланировать и удалить задание, которое выполняется несколько раз:

  • Задайте соответствующие биты в элементе DaysOfMonth структуры AT_INFO или
  • Задайте соответствующие биты в элементе DaysOfWeek структуры AT_INFO .
  • Задайте для элемента JobTime структуры AT_INFO значение времени выполнения задания.
Примечание Не нужно задавать элементы DaysOfMonth и DaysOfWeek структуры AT_INFO .
 
Задание выполняется в момент, указанный членом JobTimeструктуры AT_INFO , на которую указывает параметр Buffer , один раз для каждого дня, заданного в элементах DaysOfMonth или DaysOfWeek структуры AT_INFO . После выполнения каждого задания соответствующий бит очищается. После очистки последнего бита задание удаляется.

Чтобы запланировать задание, которое выполняется периодически, выполните приведенные далее действия.

  • Задайте соответствующие биты в элементе DaysOfMonth структуры AT_INFO или
  • Задайте соответствующие биты в элементе DaysOfWeek структуры AT_INFO .
  • Задайте для элемента JobTime структуры AT_INFO значение времени выполнения задания.
  • Задайте флаг отправки задания JOB_RUN_PERIODICALLY в элементе Флаги структуры AT_INFO .
Примечание Не нужно задавать элементы DaysOfMonth и DaysOfWeek структуры AT_INFO .
 
Задание будет периодически выполняться в то время, указанное членом JobTimeструктуры AT_INFO , на которую указывает параметр Buffer , в каждый день, заданный в элементе DaysOfMonth или DaysOfWeek структуры AT_INFO . Задание не будет удалено в результате повторяющегося выполнения. Единственный способ удалить задание — явный вызов функции NetScheduleJobDel .

Описание битовых масок свойств DaysOfWeek, DaysOfMonth и заданий см. в структуре AT_INFO.

В Windows 2000 были объединены более ранняя служба AT и планировщик задач. Служба планировщика задач была точной только до минуты. Таким образом, функция NetScheduleJobAdd использует только часы и минуты, указанные в элементе JobTime структуры AT_INFO , когда запланировано выполнение задания.

Начиная с Windows Vista точность планировщика задач была увеличена до второго. Таким образом, функция NetScheduleJobAdd использует только часы, минуты и секунды, указанные в элементе JobTimeструктуры AT_INFO , когда запланировано выполнение задания.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header lmat.h (включая Lmat.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

AT_INFO

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

Функции управления сетью

Общие сведения об управлении сетью

Функции расписания