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
[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 值。 |
|
任务已注册,但可能无法启动。 需要为任务主体启用批量登录权限。 |
|
任务已注册,但并非所有指定的触发器都将启动任务。 |
注解
对于包含消息框操作的任务,如果激活任务并且任务具有交互式登录类型,将显示消息框。 若要将任务登录类型设置为交互式,请在任务主体的 LogonType 属性或 ITaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition 的 logonType 参数中指定TASK_LOGON_INTERACTIVE_TOKEN或TASK_LOGON_GROUP。
只有管理员组的成员才能使用启动触发器创建任务。
可以使用 userId 参数中指定的组成功注册任务,TASK_LOGON_INTERACTIVE_TOKENITaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition 的 logonType 参数中指定的组,但任务将不会运行。
将TASK_VALIDATE_ONLY和TASK_IGNORE_REGISTRATION_TRIGGERS值一起传递给 flags 参数是无效的参数。
ITaskFolder::RegisterTaskDefinition 方法在由用户参数等于 NULL、password 参数等于 NULL 且 logonType 参数等于 TASK_LOGON_SERVICE_ACCOUNT 的系统帐户调用时返回错误80070534。
如果任务定义的网络不存在于任务的 NetworkSettings 设置中,则在注册任务时, ITaskFolder::RegisterTaskDefinition 方法将返回错误0x8000ffff。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | taskschd.h |
Library | Taskschd.lib |
DLL | Taskschd.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈