ITaskFolder::RegisterTaskDefinition 方法 (taskschd.h)
使用 ITaskDefinition 接口在指定位置注册任务(创建) 任务。
语法
HRESULT RegisterTaskDefinition(
[in] BSTR path,
[in] ITaskDefinition *pDefinition,
[in] LONG flags,
[in] VARIANT userId,
[in] VARIANT password,
[in] TASK_LOGON_TYPE logonType,
[in, optional] VARIANT sddl,
[out] IRegisteredTask **ppTask
);
参数
[in] path
任务的名称。 如果此值 NULL,则任务将在根任务文件夹中注册,任务名称将是任务计划程序服务创建的 GUID 值。
任务名称不能以空格字符开头或结尾。 “.”字符不能用于指定当前任务文件夹和“.”。 字符不能用于在路径中指定父任务文件夹。
[in] pDefinition
已注册任务的定义。
[in] flags
TASK_CREATION 常量。
[in] userId
用于注册任务的用户凭据。 如果存在,这些凭据优先于由 pDefinition 参数指向的任务定义对象中指定的凭据。
[in] password
用于注册任务的 userId 的密码。 使用TASK_LOGON_SERVICE_ACCOUNT登录类型时,密码必须是空 VARIANT 值,例如 VT_NULL 或 VT_EMPTY。
[in] logonType
定义用于运行已注册任务的登录技术。
[in, optional] sddl
与已注册任务关联的安全描述符。 可以在任务的安全描述符中指定访问控制列表(ACL),以允许或拒绝某些用户和组访问任务。
[out] ppTask
表示新任务的 IRegisteredTask 接口。
传入对 NULLIRegisteredTask 接口指针的引用。 引用非NULL 指针可能会导致内存泄漏,因为该指针将被覆盖。
返回值
此方法可以返回其中一个值。
返回代码/值 | 描述 |
---|---|
|
操作已成功完成。 |
|
拒绝访问以连接到任务计划程序服务。 |
|
应用程序没有足够的内存来完成操作,或者 用户 或 密码 至少有一个 null,一个非null 值。 |
|
任务已注册,但可能无法启动。 需要为任务主体启用批处理登录权限。 |
|
任务已注册,但并非所有指定的触发器都会启动该任务。 |
言论
对于包含消息框操作的任务,如果激活任务并且任务具有交互式登录类型,则会显示消息框。 若要将任务登录类型设置为交互式类型,请在任务主体的
只有管理员组的成员才能使用启动触发器创建任务。
可以将任务成功注册到在 userId 参数中指定的组 TASK_LOGON_INTERACTIVE_TOKEN,并在 ITaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition的 logonType 中指定的组注册任务,但任务将不会运行。
将TASK_VALIDATE_ONLY和TASK_IGNORE_REGISTRATION_TRIGGERS值一起传递到 标志 参数是无效参数。
ITaskFolder::RegisterTaskDefinition 方法在系统帐户调用时返回错误80070534,用户 参数等于 NULL,密码 参数等于 NULL,logonType 参数等于 TASK_LOGON_SERVICE_ACCOUNT。
如果任务定义任务 NetworkSettings 设置中不存在的网络,则注册任务时,ITaskFolder::RegisterTaskDefinition 方法将返回错误0x8000ffff。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | taskschd.h |
库 | Taskschd.lib |
DLL | Taskschd.dll |