ITaskFolder::RegisterTask 方法 (taskschd.h)
注册 (使用 XML 在文件夹中创建) 一个新任务来定义任务。
语法
HRESULT RegisterTask(
[in] BSTR path,
[in] BSTR xmlText,
[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] xmlText
任务的 XML 格式定义。
以下主题包含使用 XML 定义的任务。
[in] flags
[in] userId
用于注册任务的用户凭据。
[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 参数中指定的组成功注册任务,并在ITaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition 的 logonType 参数中指定的TASK_LOGON_INTERACTIVE_TOKEN,但该任务不会运行。
将TASK_VALIDATE_ONLY和TASK_IGNORE_REGISTRATION_TRIGGERS值一起传递到 flags 参数是无效的参数。
如果任务定义的网络不存在于任务的 NetworkSettings 设置中,则在注册任务时 ,ITaskFolder::RegisterTask 方法将返回错误0x8000ffff。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | taskschd.h |
Library | Taskschd.lib |
DLL | Taskschd.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈