Condividi tramite


Funzione NetScheduleJobAdd (lmat.h)

[NetScheduleJobAdd non è più disponibile per l'uso a partire da Windows 8. Usare invece le interfacce dell'utilità di pianificazione 2.0.

]

La funzione NetScheduleJobAdd invia un processo da eseguire in un'ora e una data futura specificata. Questa funzione richiede che il servizio di pianificazione venga avviato nel computer in cui viene inviato il processo.

Sintassi

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

Parametri

[in, optional] Servername

Puntatore a una stringa costante che specifica il nome DNS o NetBIOS del server remoto in cui eseguire la funzione. Se questo parametro è NULL, viene usato il computer locale.

[in] Buffer

Puntatore a una struttura AT_INFO che descrive il processo da inviare. Per altre informazioni sulla pianificazione dei processi usando diverse proprietà del processo, vedere la sezione Osservazioni seguenti e i buffer delle funzioni di gestione della rete.

[out] JobId

Puntatore che riceve un identificatore di processo per il processo appena inviato. Questa voce è valida solo se la funzione restituisce correttamente.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è NERR_Success.

Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema. Per un elenco di codici di errore, vedere Codici di errore di sistema.

Commenti

In genere solo i membri del gruppo Administrators locale nel computer in cui viene aggiunto il processo di pianificazione possono eseguire correttamente questa funzione. Se il nome del server passato nella stringa a cui fa riferimento il parametro Nome server è un server remoto, solo i membri del gruppo Administrators locale nel server remoto possono eseguire correttamente questa funzione.

Se il valore del Registro di sistema seguente ha il set di bit meno significativo (ad esempio, 0x00000001), gli utenti appartenenti al gruppo Operatori server possono anche eseguire correttamente questa funzione.

HKLM\System\CurrentControlSet\Control\Lsa\SubmitControl

Di seguito sono riportati esempi di come pianificare i processi usando proprietà diverse supportate dalla funzione NetScheduleJobAdd .

Per pianificare un processo che viene eseguito una volta:

  • Impostare il membro DaysOfMonth della struttura AT_INFO su zero.
  • Impostare il membro DaysOfWeek della struttura AT_INFO su zero.
  • Impostare il membro JobTime della struttura AT_INFO sul momento in cui il processo deve essere eseguito.
Il processo viene eseguito al momento specificato dal membro JobTime della struttura AT_INFO a cui fa riferimento il parametro Buffer . Dopo l'esecuzione del processo, viene eliminato.

Per pianificare ed eliminare un processo che esegue più volte:

  • Impostare i bit appropriati nel membro DaysOfMonth della struttura AT_INFO o
  • Impostare i bit appropriati nel membro DaysOfWeek della struttura AT_INFO .
  • Impostare il membro JobTime della struttura AT_INFO sul momento in cui il processo deve essere eseguito.
Nota Non è necessario impostare sia i membri DaysOfMonth che i membri DaysOfWeek della struttura AT_INFO .
 
Il processo viene eseguito al momento specificato dal membro JobTime della struttura AT_INFO a cui punta il parametro Buffer , una volta per ogni giorno impostato nei membri DaysOfMonth o DaysOfWeek della struttura AT_INFO . Dopo l'esecuzione di ogni processo, il bit corrispondente viene cancellato. Quando l'ultimo bit viene cancellato, il processo viene eliminato.

Per pianificare periodicamente un processo che esegue:

  • Impostare i bit appropriati nel membro DaysOfMonth della struttura AT_INFO o
  • Impostare i bit appropriati nel membro DaysOfWeek della struttura AT_INFO .
  • Impostare il membro JobTime della struttura AT_INFO sul momento in cui il processo deve essere eseguito.
  • Impostare il flag di invio del processo JOB_RUN_PERIODICALLY nel membro Flag della struttura AT_INFO .
Nota Non è necessario impostare sia i membri DaysOfMonth che i membri DaysOfWeek della struttura AT_INFO .
 
Il processo verrà eseguito periodicamente, al momento specificato dal membro JobTime della struttura AT_INFO a cui fa riferimento il parametro Buffer , ogni giorno impostato nel membro DaysOfMonth o DaysOfWeek della struttura AT_INFO . Il processo non verrà eliminato come risultato delle esecuzioni ripetute. L'unico modo per eliminare il processo è una chiamata esplicita alla funzione NetScheduleJobDel .

Vedere la struttura AT_INFO per una descrizione delle maschera di bit della proprietà DaysOfWeek, DaysOfMonth e job.

In Windows 2000 il servizio AT precedente e l'Utilità di pianificazione sono stati combinati. Il servizio Utilità di pianificazione è stato accurato solo al minuto. Pertanto, la funzione NetScheduleJobAdd usa solo ore e minuti specificati nel membro JobTime della struttura AT_INFO quando un processo è pianificato per l'esecuzione.

A partire da Windows Vista, la precisione per l'utilità di pianificazione è stata aumentata al secondo. Pertanto, la funzione NetScheduleJobAdd usa solo le ore, i minuti e i secondi specificati nel membro JobTime della struttura AT_INFO quando viene pianificato l'esecuzione di un processo.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione lmat.h (include Lmat.h)
Libreria Netapi32.lib
DLL Netapi32.dll

Vedi anche

AT_INFO

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

Funzioni di gestione della rete

Panoramica sulla gestione della rete

Pianifica funzioni