iScheduledWorkItem::SetAccountInformation 方法 (mstask.h)

[[此 API 可能在操作系统或产品的后续版本中更改或不可用。 请改用 任务计划程序 2.0 接口 。] ]

设置用于运行 工作项的帐户名称和密码。

语法

HRESULT SetAccountInformation(
  [in] LPCWSTR pwszAccountName,
  [in] LPCWSTR pwszPassword
);

参数

[in] pwszAccountName

一个字符串,其中包含将运行工作项的用户帐户的 以 null 结尾的名称。 若要指定本地系统帐户,请使用空字符串 L“”。 请勿使用任何其他字符串来指定本地系统帐户。 有关详细信息,请参阅“备注”。

[in] pwszPassword

一个字符串,其中包含 pwszAccountName 中指定的帐户的密码。

如果指定了本地系统帐户,请将此参数设置为 NULL 。 如果设置 TASK_FLAG_RUN_ONLY_IF_LOGGED_ON 标志,则还可以将 pwszPassword 设置为本地或域用户帐户的 NULL 。 使用 IScheduledWorkItem::SetFlags 方法设置标志。

任务计划程序仅为使用同一帐户的所有任务存储一次帐户信息。 如果为一个任务更新了帐户密码,则使用同一帐户的所有任务都将使用更新后的密码。

使用完密码后,通过调用 SecureZeroMemory 函数清除密码信息。 有关保护密码的详细信息,请参阅 处理密码

返回值

SetAccountInformation 方法返回以下值之一。 请注意,此调用的错误也可能由后续调用 IPersistFile::Save 返回。

返回代码 说明
S_OK
操作成功。
E_ACCESSDENIED
调用方没有执行操作的权限。 有关详细信息,请参阅“备注”。
E_INVALIDARG
参数无效。
E_OUTOFMEMORY
内存不足。
SCHED_E_NO_SECURITY_SERVICES
安全服务仅在 Windows Server 2003、Windows XP 和 Windows 2000 上可用。
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
pwszPassword 参数设置为 NULL,但未设置TASK_FLAG_RUN_ONLY_IF_LOGGED_ON标志。
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
pwszPassword 参数不正确。 在 Windows Server 2003 中,任务计划程序在调用 IPersistFile::Save) 期间 (创建作业时验证密码。 请注意,如果发生此错误,仍将创建作业文件。

注解

此方法适用于 Windows Server 2003、Windows XP 和 Windows 2000。

如果 pwszAccountName 指定本地系统帐户,则调用方必须是本地计算机上的管理员或在本地系统帐户中运行的应用程序。 否则,此方法将失败。

运行工作项时, pwszPassword 中指定的密码用于登录到帐户。 运行工作项时,密码不正确将导致错误。 但是,在 Windows Server 2003 中,任务计划程序会在调用 IPersistFile::Save) 期间 (创建作业时验证密码。

通常,密码具有到期日期。 如果计划无限期运行的任务,则必须更新任务以反映新密码。

请注意,初始调用 SetAccountInformation 或后续调用 IPersistFile::Save 可能会返回错误。

任务计划程序服务必须正在运行,此调用才能成功。 (SetAccountInformation 会导致远程过程调用 (RPC) 到任务计划程序服务,但直到调用 IPersistFile::Save 后才会进行 RPC 调用。)

在以下情况下返回E_ACCESSDENIED返回代码:

  • 调用方对表示计划工作项的文件没有写入访问权限。
  • 指定本地帐户 (pwszAccountName 设置为 L“”) ,但调用方既不是本地计算机上的管理员,也不是在本地系统帐户中运行的应用程序。
  • pwszPassword 中指定了 NULL 密码,但调用方既不是本地计算机上的管理员,也不是在本地系统帐户中运行的。
  • 应用程序运行的用户名与 pwszAccountName 参数中指定的用户不同。
设置工作项的帐户信息后,请务必调用 IPersistFile::Save 将修改后的工作项对象保存到磁盘。

示例

有关如何设置任务的帐户信息的详细信息和示例,请参阅 C/C++ 代码示例:设置任务帐户信息

要求

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

另请参阅

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags