Compartir a través de


Método IScheduledWorkItem::SetAccountInformation (mstask.h)

[[Esta API puede modificarse o no estar disponible en versiones posteriores del sistema operativo o producto. Use en su lugar las interfaces del Programador de tareas 2.0 . ]

Establece el nombre de cuenta y la contraseña usados para ejecutar el elemento de trabajo.

Sintaxis

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

Parámetros

[in] pwszAccountName

Cadena que contiene el nombre terminado en null de la cuenta de usuario en la que se ejecutará el elemento de trabajo. Para especificar la cuenta del sistema local, use la cadena vacía L"". No use ninguna otra cadena para especificar la cuenta del sistema local. Para obtener más información, vea la sección Comentarios.

[in] pwszPassword

Cadena que contiene la contraseña de la cuenta especificada en pwszAccountName.

Establezca este parámetro en NULL si se especifica la cuenta del sistema local. Si establece la marca de TASK_FLAG_RUN_ONLY_IF_LOGGED_ON, también puede establecer pwszPassword en NULL para las cuentas de usuario locales o de dominio. Use el método IScheduledWorkItem::SetFlags para establecer la marca.

Task Scheduler almacena la información de la cuenta una sola vez para todas las tareas que usan la misma cuenta. Si la contraseña de la cuenta se actualiza para una tarea, todas las tareas que usen esa misma cuenta usarán la contraseña actualizada.

Cuando haya terminado de usar la contraseña, borre la información de contraseña mediante una llamada a la función SecureZeroMemory . Para obtener más información sobre la protección de contraseñas, consulte Control de contraseñas.

Valor devuelto

El método SetAccountInformation devuelve uno de los valores siguientes. Tenga en cuenta que los errores de esta llamada también se pueden devolver mediante la llamada posterior a IPersistFile::Save.

Código devuelto Descripción
S_OK
La operación se realizó correctamente.
E_ACCESSDENIED
El autor de la llamada no tiene permiso para realizar la operación. Para obtener más información, vea la sección Comentarios.
E_INVALIDARG
Los argumentos no son válidos.
E_OUTOFMEMORY
No hay suficiente memoria disponible.
SCHED_E_NO_SECURITY_SERVICES
Los servicios de seguridad solo están disponibles en Windows Server 2003, Windows XP y Windows 2000.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
El parámetro pwszPassword se estableció en NULL, pero no se estableció la marca TASK_FLAG_RUN_ONLY_IF_LOGGED_ON.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
El parámetro pwszPassword era incorrecto. En Windows Server 2003, el Programador de tareas valida la contraseña en el momento en que se crea el trabajo (durante una llamada a IPersistFile::Save). Tenga en cuenta que si se produce este error, se seguirá creando el archivo de trabajo.

Comentarios

Este método es para Windows Server 2003, Windows XP y Windows 2000.

Si pwszAccountName especifica la cuenta del sistema local, el autor de la llamada debe ser un administrador en el equipo local o una aplicación que se ejecute en la cuenta del sistema local. Si no es así, se producirá un error en este método.

La contraseña especificada en pwszPassword se usa para iniciar sesión en la cuenta cuando se ejecuta el elemento de trabajo. Una contraseña incorrecta producirá un error cuando se ejecute el elemento de trabajo. Sin embargo, en Windows Server 2003, el Programador de tareas valida la contraseña en el momento en que se crea el trabajo (durante una llamada a IPersistFile::Save).

Normalmente, las contraseñas tienen una fecha de expiración. Si programa tareas que se ejecutan indefinidamente, debe actualizar la tarea para reflejar la nueva contraseña.

Tenga en cuenta que la llamada inicial a SetAccountInformation o la llamada posterior a IPersistFile::Save pueden devolver los errores.

El servicio Programador de tareas debe ejecutarse para que esta llamada se realice correctamente. (SetAccountInformation da como resultado una llamada a procedimiento remoto (RPC) al servicio Programador de tareas, pero la llamada RPC no se realiza hasta que se llama a IPersistFile::Save ).

El código de devolución E_ACCESSDENIED se devuelve en las condiciones siguientes:

  • El autor de la llamada no tiene acceso de escritura al archivo que representa el elemento de trabajo programado.
  • Se especificó la cuenta local (pwszAccountName se estableció en L""), pero el autor de la llamada no es un administrador en el equipo local ni una aplicación que se ejecuta en la cuenta del sistema local.
  • Se especificó una contraseña NULL en pwszPassword, pero el autor de la llamada no es un administrador en el equipo local ni se ejecuta en la cuenta del sistema local.
  • La aplicación se ejecuta con un nombre de usuario diferente al del usuario especificado en el parámetro pwszAccountName .
Después de establecer la información de la cuenta para un elemento de trabajo, asegúrese de llamar a IPersistFile::Save para guardar el objeto de elemento de trabajo modificado en el disco.

Ejemplos

Para obtener más información y un ejemplo de cómo establecer la información de la cuenta de una tarea, vea C/C++ Code Example: Setting Task Account Information.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mstask.h
Library Mstask.lib
Archivo DLL Mstask.dll

Consulte también

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags