Compartilhar via


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

[[Essa API pode estar alterada ou indisponível em versões subsequentes do sistema operacional ou produto. Em vez disso, use as Interfaces do Agendador de Tarefas 2.0 .] ]

Define o nome da conta e a senha usados para executar o item de trabalho.

Sintaxe

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

Parâmetros

[in] pwszAccountName

Uma cadeia de caracteres que contém o nome terminado em nulo da conta de usuário na qual o item de trabalho será executado. Para especificar a conta do sistema local, use a cadeia de caracteres vazia, L"". Não use nenhuma outra cadeia de caracteres para especificar a conta do sistema local. Para obter mais informações, consulte Comentários.

[in] pwszPassword

Uma cadeia de caracteres que contém a senha da conta especificada em pwszAccountName.

Defina esse parâmetro como NULL se a conta do sistema local for especificada. Se você definir o sinalizador TASK_FLAG_RUN_ONLY_IF_LOGGED_ON, também poderá definir pwszPassword como NULL para contas de usuário local ou de domínio. Use o método IScheduledWorkItem::SetFlags para definir o sinalizador.

O Agendador de Tarefas armazena informações de conta apenas uma vez para todas as tarefas que usam a mesma conta. Se a senha da conta for atualizada para uma tarefa, todas as tarefas que usam essa mesma conta usarão a senha atualizada.

Quando terminar de usar a senha, limpe as informações de senha chamando a função SecureZeroMemory . Para obter mais informações sobre como proteger senhas, consulte Manipulando senhas.

Retornar valor

O método SetAccountInformation retorna um dos valores a seguir. Observe que os erros dessa chamada também podem ser retornados pela chamada subsequente para IPersistFile::Save.

Código de retorno Descrição
S_OK
A operação foi bem-sucedida.
E_ACCESSDENIED
O chamador não tem permissão para executar a operação. Para obter mais informações, consulte Comentários.
E_INVALIDARG
Os argumentos não são válidos.
E_OUTOFMEMORY
Não existe memória suficiente.
SCHED_E_NO_SECURITY_SERVICES
Os serviços de segurança estão disponíveis apenas no Windows Server 2003, Windows XP e Windows 2000.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
O parâmetro pwszPassword foi definido como NULL, mas o sinalizador TASK_FLAG_RUN_ONLY_IF_LOGGED_ON não foi definido.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
O parâmetro pwszPassword estava incorreto. No Windows Server 2003, o Agendador de Tarefas valida a senha no momento em que o trabalho é criado (durante uma chamada para IPersistFile::Save). Lembre-se de que, se esse erro ocorrer, o arquivo de trabalho ainda será criado.

Comentários

Esse método é para o Windows Server 2003, Windows XP e Windows 2000.

Se pwszAccountName especificar a conta do sistema local, o chamador deverá ser um administrador no computador local ou um aplicativo em execução na conta do sistema local. Caso contrário, esse método falhará.

A senha especificada em pwszPassword é usada para fazer logon na conta quando o item de trabalho é executado. Uma senha incorreta resultará em um erro quando o item de trabalho for executado. No Windows Server 2003, no entanto, o Agendador de Tarefas valida a senha no momento em que o trabalho é criado (durante uma chamada para IPersistFile::Save).

Normalmente, as senhas têm uma data de validade. Se você agendar tarefas executadas indefinidamente, deverá atualizar a tarefa para refletir a nova senha.

Observe que os erros podem ser retornados pela chamada inicial para SetAccountInformation ou a chamada subsequente para IPersistFile::Save.

O serviço Agendador de Tarefas deve estar em execução para que essa chamada seja bem-sucedida. (SetAccountInformation resulta em uma RPC (chamada de procedimento remoto) para o serviço agendador de tarefas, mas a chamada RPC não é feita até que IPersistFile::Save seja chamado.)

O código de retorno E_ACCESSDENIED é retornado sob as seguintes condições:

  • O chamador não tem acesso de gravação ao arquivo que representa o item de trabalho agendado.
  • A conta local foi especificada (pwszAccountName foi definida como L"), mas o chamador não é um administrador no computador local nem um aplicativo em execução na conta do sistema local.
  • Uma senha NULL foi especificada em pwszPassword, mas o chamador não é um administrador no computador local nem está em execução na conta do sistema local.
  • O aplicativo está em execução com um nome de usuário diferente do usuário chamado especificado no parâmetro pwszAccountName .
Depois de definir as informações da conta para um item de trabalho, chame IPersistFile::Save para salvar o objeto de item de trabalho modificado no disco.

Exemplos

Para obter mais informações e um exemplo de como definir as informações da conta de uma tarefa, consulte Exemplo de código C/C++: definindo informações da conta de tarefa.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mstask.h
Biblioteca Mstask.lib
DLL Mstask.dll

Confira também

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags