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。

如果函数失败,则返回值为系统错误代码。 有关错误代码的列表,请参阅 系统错误代码

注解

通常,只有正在添加计划作业的计算机上的本地 Administrators 组的成员才能成功执行此函数。 如果 Servername 参数指向的字符串中传递的服务器名称是远程服务器,则只有远程服务器上的本地 Administrators 组的成员才能成功执行此函数。

如果以下注册表值具有 ((例如,0x00000001) )设置的最小有效位,则属于服务器操作员组的用户也可以成功执行此函数。

HKLM\System\CurrentControlSet\Control\Lsa\SubmitControl

下面是如何使用 NetScheduleJobAdd 函数支持的不同属性计划作业的示例。

计划执行一次的作业:

  • AT_INFO 结构的 DaysOfMonth 成员设置为零。
  • AT_INFO 结构的 DaysOfWeek 成员设置为零。
  • AT_INFO 结构的 JobTime 成员设置为作业应执行的时间。
作业在 Buffer 参数指向的AT_INFO结构的 JobTime 成员指定的时间执行。 作业执行后,会将其删除。

若要计划和删除多次执行的作业,请执行以下操作:

  • AT_INFO 结构的 DaysOfMonth 成员中设置适当的位或
  • AT_INFO 结构的 DaysOfWeek 成员中设置适当的位。
  • AT_INFO 结构的 JobTime 成员设置为作业应执行的时间。
注意无需同时设置 AT_INFO 结构的 DaysOfMonthDaysOfWeek 成员。
 
作业在由 Buffer 参数指向的 AT_INFO 结构的 JobTime 成员指定的时间执行,在 AT_INFO 结构的 DaysOfMonthDaysOfWeek 成员中设置的每一天执行一次。 执行每个作业后,将清除相应的位。 清除最后一个位后,将删除作业。

计划定期执行的作业:

  • AT_INFO 结构的 DaysOfMonth 成员中设置适当的位或
  • AT_INFO 结构的 DaysOfWeek 成员中设置适当的位。
  • AT_INFO 结构的 JobTime 成员设置为作业应执行的时间。
  • 在 AT_INFO 结构的 Flags 成员中设置作业提交 标志JOB_RUN_PERIODICALLY
注意无需同时设置 AT_INFO 结构的 DaysOfMonthDaysOfWeek 成员。
 
作业将在由 Buffer 参数指向的 AT_INFO 结构的 JobTime 成员指定的时间,在 AT_INFO 结构的 DaysOfMonthDaysOfWeek 成员中设置的每一天定期执行。 不会因为重复执行而删除作业。 删除作业的唯一方法是显式调用 NetScheduleJobDel 函数。

有关 DaysOfWeekDaysOfMonth 和作业属性位掩码的说明,请参阅 AT_INFO 结构。

在 Windows 2000 上,将早期的 AT 服务和任务计划程序组合在一起。 任务计划程序服务仅精确到每分钟。 因此,当计划运行作业时,NetScheduleJobAdd 函数仅使用AT_INFO结构的 JobTime 成员中指定的小时和分钟数。

从 Windows Vista 开始,任务计划程序精度增加到第二个。 因此,当计划运行作业时,NetScheduleJobAdd 函数仅使用AT_INFO结构的 JobTime 成员中指定的小时、分钟和秒数。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 lmat.h (包括 Lmat.h)
Library Netapi32.lib
DLL Netapi32.dll

另请参阅

AT_INFO

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

网络管理功能

网络管理概述

计划函数