Attività WMI: Attività pianificate

Le attività pianificate WMI creano e ottengono informazioni sulle attività pianificate. Per altri esempi, vedere TechNet ScriptCenter in https://www.microsoft.com/technet.

Gli esempi di script illustrati in questo argomento ottengono dati solo dal computer locale. Per altre informazioni su come usare lo script per ottenere dati dai computer remoti, vedere Connessione a WMI in un computer remoto.

La procedura seguente descrive come eseguire uno script.

Per eseguire uno script

  1. Copiare il codice e salvarlo in un file con estensione vbs, ad esempio filename.vbs. Assicurarsi che l'editor di testo non aggiunge un'estensione .txt al file.
  2. Aprire una finestra del prompt dei comandi e passare alla directory in cui è stato salvato il file.
  3. Digitare cscript filename.vbs al prompt dei comandi.
  4. Se non è possibile accedere a un registro eventi, verificare se si esegue da un prompt dei comandi con privilegi elevati. Alcuni log eventi, ad esempio il registro eventi di sicurezza, possono essere protetti da controlli di accesso utente (UAC).

Nota

Per impostazione predefinita, cscript visualizza l'output di uno script nella finestra del prompt dei comandi. Poiché gli script WMI possono produrre grandi quantità di output, è possibile reindirizzare l'output a un file. Digitare cscript filename.vbs outfile.txtal prompt dei comandi per reindirizzare l'output dello scriptfilename.vbs> a outfile.txt.

Nella tabella seguente sono elencati gli esempi di script che possono essere usati per ottenere vari tipi di dati dal computer locale.

Ricerca per categorie Classi o metodi WMI
... creare attività pianificate usando script? Utilizzare la classe Win32_ScheduledJob e il metodo Create . Se si ha difficoltà a rendere l'attività funzionante in Windows 7 o versioni successive, vedere la sezione osservazioni Win32_ScheduledJob ; probabilmente le impostazioni impediscono l'uso della classe.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
JobID = "Test"
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreate = objNewJob.Create _
    ("Notepad.exe", "********143000.000000-420", True , 1 OR 4 OR 16, ,True, JobId) 
If errJobCreate = 0 Then
    WScript.Echo "Job created successfully: " & VBNewLine _
        & "Notepad.exe scheduled to run repeately at 14.30 (2:30 P.M.) PST" & VBNewLine _
        & "on Mon, Wed, and Fri."
Else
    WScript.Echo "Job not created. Error code = " & errJobCreate
End If

Nella stringa "^^143000.00000-420" (utilizzata nel valore del parametro StartTime del metodo Create ), "**143000.0000000" specifica che l'attività inizia alle 14.30 (2:30 P.M.) e "-420" specifica il fuso orario. Il numero di fuso orario è il pregiudizio corrente della traduzione dell'ora locale. Il pregiudizio è la differenza tra l'ora UTC e l'ora locale. Per calcolare il pregiudizio per il fuso orario, moltiplicare il numero di ore che il fuso orario è in anticipo o dietro Greenwich Mean Time (GMT) per 60 (usare un numero positivo per il numero di ore se il fuso orario è in anticipo gmt e un numero negativo se il fuso orario è dietro GMT). Aggiungere un ulteriore 60 al calcolo se il fuso orario usa l'ora legale. Ad esempio, il fuso orario Standard Pacifico è di otto ore dietro GMT, pertanto la distorsione è uguale a -420 (-8 * 60 + 60) quando l'ora legale è in uso e -480 (-8 * 60) quando l'ora legale non è in uso. È anche possibile determinare il valore della distorsione eseguendo una query sulla proprietà di pregiudizio della classe Win32_TimeZone .

... restituisce un elenco di tutte le attività pianificate in un computer?

Usare la classe Win32_ScheduledJob . Si noti che questa classe può restituire solo i processi creati usando uno script o AT.exe. Non può restituire informazioni sui processi creati da o modificati dalla procedura guidata attività pianificata.

VB
strComputer = "."
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery ("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
    Wscript.Echo "Command: " & objJob.Command & VBNewLine _
    & "Days Of Month: " & objJob.DaysOfMonth & VBNewLine _
    & "Days Of Week: " & objJob.DaysOfWeek & VBNewLine _
    & "Description: " & objJob.Description & VBNewLine _
    & "Elapsed Time: " & objJob.ElapsedTime & VBNewLine _
    & "Install Date: " & objJob.InstallDate & VBNewLine _
    & "Interact with Desktop: " & objJob.InteractWithDesktop & VBNewLine _
    & "Job ID: " & objJob.JobId & VBNewLine _
    & "Job Status: " & objJob.JobStatus & VBNewLine _
    & "Name: " & objJob.Name & VBNewLine _
    & "Notify: " & objJob.Notify & VBNewLine _
    & "Owner: " & objJob.Owner & VBNewLine _
    & "Priority: " & objJob.Priority & VBNewLine _
    & "Run Repeatedly: " & objJob.RunRepeatedly & VBNewLine _
    & "Start Time: " & objJob.StartTime & VBNewLine _
    & "Status: " & objJob.Status & VBNewLine _
    & "Time Submitted: " & objJob.TimeSubmitted & VBNewLine _
    & "Until Time: " & objJob.UntilTime
Next

Attività WMI per script e applicazioni

Esempi di applicazioni WMI C++

TechNet ScriptCenter