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 |
---|---|
|
A operação foi bem-sucedida. |
|
O chamador não tem permissão para executar a operação. Para obter mais informações, consulte Comentários. |
|
Os argumentos não são válidos. |
|
Não existe memória suficiente. |
|
Os serviços de segurança estão disponíveis apenas no Windows Server 2003, Windows XP e Windows 2000. |
|
O parâmetro pwszPassword foi definido como NULL, mas o sinalizador TASK_FLAG_RUN_ONLY_IF_LOGGED_ON não foi definido. |
|
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 .
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 |