Compartilhar via


Função NetScheduleJobAdd (lmat.h)

[NetScheduleJobAdd não está mais disponível para uso a partir de Windows 8. Em vez disso, use as Interfaces do Agendador de Tarefas 2.0.

]

A função NetScheduleJobAdd envia um trabalho para ser executado em uma data e hora futura especificadas. Essa função exige que o serviço de agendamento seja iniciado no computador para o qual o trabalho é enviado.

Sintaxe

NET_API_STATUS NET_API_FUNCTION NetScheduleJobAdd(
  [in, optional] LPCWSTR Servername,
  [in]           LPBYTE  Buffer,
  [out]          LPDWORD JobId
);

Parâmetros

[in, optional] Servername

Um ponteiro para uma cadeia de caracteres constante que especifica o nome DNS ou NetBIOS do servidor remoto no qual a função deve ser executada. Se esse parâmetro for NULL, o computador local será usado.

[in] Buffer

Um ponteiro para uma estrutura AT_INFO que descreve o trabalho a ser enviada. Para obter mais informações sobre como agendar trabalhos usando propriedades de trabalho diferentes, consulte a seção Comentários a seguir e Buffers de Função de Gerenciamento de Rede.

[out] JobId

Um ponteiro que recebe um identificador de trabalho para o trabalho recém-enviado. Essa entrada só será válida se a função retornar com êxito.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NERR_Success.

Se a função falhar, o valor retornado será um código de erro do sistema. Para obter uma lista de códigos de erro, consulte Códigos de erro do sistema.

Comentários

Normalmente, somente os membros do grupo administradores local no computador em que o trabalho de agendamento está sendo adicionado podem executar essa função com êxito. Se o nome do servidor passado na cadeia de caracteres apontada pelo parâmetro Servername for um servidor remoto, somente os membros do grupo administradores locais no servidor remoto poderão executar essa função com êxito.

Se o valor do Registro a seguir tiver o conjunto de bits menos significativo (por exemplo, 0x00000001), os usuários pertencentes ao grupo Operadores de Servidor também poderão executar essa função com êxito.

HKLM\System\CurrentControlSet\Control\Lsa\SubmitControl

Veja a seguir exemplos de como agendar trabalhos usando propriedades diferentes compatíveis com a função NetScheduleJobAdd .

Para agendar um trabalho que é executado uma vez:

  • Defina o membro DaysOfMonth da estrutura AT_INFO como zero.
  • Defina o membro DaysOfWeek da estrutura AT_INFO como zero.
  • Defina o membro JobTime da estrutura AT_INFO para o momento em que o trabalho deve ser executado.
O trabalho é executado no momento especificado pelo membro JobTime da estrutura AT_INFO apontada pelo parâmetro Buffer . Depois que o trabalho é executado, ele é excluído.

Para agendar e excluir um trabalho que é executado várias vezes:

  • Definir os bits apropriados no membro DaysOfMonth da estrutura AT_INFO ou
  • Defina os bits apropriados no membro DaysOfWeek da estrutura AT_INFO .
  • Defina o membro JobTime da estrutura AT_INFO para o momento em que o trabalho deve ser executado.
Nota Você não precisa definir os membros DaysOfMonth e DaysOfWeek da estrutura AT_INFO .
 
O trabalho é executado no momento especificado pelo membro JobTime da estrutura AT_INFO apontada pelo parâmetro Buffer , uma vez para cada dia definido nos membros DaysOfMonth ou DaysOfWeek da estrutura AT_INFO . Depois que cada trabalho é executado, o bit correspondente é limpo. Quando o último bit é limpo, o trabalho é excluído.

Para agendar um trabalho que é executado periodicamente:

  • Definir os bits apropriados no membro DaysOfMonth da estrutura AT_INFO ou
  • Defina os bits apropriados no membro DaysOfWeek da estrutura AT_INFO .
  • Defina o membro JobTime da estrutura AT_INFO para o momento em que o trabalho deve ser executado.
  • Defina o sinalizador de envio de trabalho JOB_RUN_PERIODICALLY no membro Flags da estrutura AT_INFO .
Nota Você não precisa definir os membros DaysOfMonth e DaysOfWeek da estrutura AT_INFO .
 
O trabalho será executado periodicamente, no momento especificado pelo membro JobTime da estrutura AT_INFO apontada pelo parâmetro Buffer , em cada dia definido no membro DaysOfMonth ou DaysOfWeek da estrutura AT_INFO . O trabalho não será excluído como resultado das execuções repetidas. A única maneira de excluir o trabalho é por uma chamada explícita para a função NetScheduleJobDel .

Consulte a estrutura AT_INFO para obter uma descrição das máscaras de bits DaysOfWeek, DaysOfMonth e job property.

No Windows 2000, o serviço AT anterior e o Agendador de Tarefas foram combinados. O serviço Agendador de Tarefas só foi preciso para o minuto. Portanto, a função NetScheduleJobAdd usa apenas horas e minutos especificados no membro JobTime da estrutura AT_INFO quando um trabalho está agendado para ser executado.

A partir do Windows Vista, a precisão do Agendador de Tarefas foi aumentada para o segundo. Portanto, a função NetScheduleJobAdd usa apenas as horas, minutos e segundos especificados no membro JobTime da estrutura AT_INFO quando um trabalho é agendado para ser executado.

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 lmat.h (inclua Lmat.h)
Biblioteca Netapi32.lib
DLL Netapi32.dll

Confira também

AT_INFO

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

Funções de gerenciamento de rede

Visão geral do gerenciamento de rede

Agendar funções