Метод 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) к службе планировщика задач, но вызов RPC не выполняется до вызова IPersistFile::Save .)

Код возврата E_ACCESSDENIED возвращается при следующих условиях:

  • Вызывающий объект не имеет доступа на запись к файлу, представляющего запланированный рабочий элемент.
  • Указана локальная учетная запись (для pwszAccountName задано значение L ""), но вызывающий объект не является ни администратором на локальном компьютере, ни приложением, работающим в локальной системной учетной записи.
  • Пароль NULL был указан в pwszPassword, но вызывающий объект не является ни администратором на локальном компьютере, ни работает в локальной системной учетной записи.
  • Приложение выполняется под именем пользователя, отличным от имени пользователя, указанного в параметре pwszAccountName .
После настройки сведений учетной записи для рабочего элемента вызовите IPersistFile::Save , чтобы сохранить измененный объект рабочего элемента на диске.

Примеры

Дополнительные сведения и пример настройки сведений об учетной записи задачи см. в разделе C/C++ Code Example: Setting Task Account Information.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mstask.h
Библиотека Mstask.lib
DLL Mstask.dll

См. также раздел

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags