Delen via


WMI-taken: geplande taken

Geplande WMI-taken maken en krijgen informatie over geplande taken. Zie het TechNet ScriptCenter op https://www.microsoft.com/technetvoor andere voorbeelden.

De scriptvoorbeelden die in dit onderwerp worden weergegeven, verkrijgen alleen gegevens van de lokale computer. Zie Verbinding maken met WMI op een externe computer op een externe computervoor meer informatie over het gebruik van het script om gegevens op te halen van externe computers.

In de volgende procedure wordt beschreven hoe u een script uitvoert.

Een script uitvoeren

  1. Kopieer de code en sla deze op in een bestand met de extensie .vbs, zoals bestandsnaam.vbs. Zorg ervoor dat uw teksteditor geen .txt extensie aan het bestand toevoegt.
  2. Open een opdrachtpromptvenster en navigeer naar de map waarin u het bestand hebt opgeslagen.
  3. Typ cscript bestandsnaam.vbs bij de opdrachtprompt.
  4. Als u geen toegang hebt tot een gebeurtenislogboek, controleert u of u wordt uitgevoerd vanaf een opdrachtprompt met verhoogde bevoegdheid. Sommige gebeurtenislogboeken, zoals het beveiligingslogboek, kunnen worden beveiligd door UAC (User Access Controls).

Notitie

In cscript wordt standaard de uitvoer van een script weergegeven in het opdrachtpromptvenster. Omdat WMI-scripts grote hoeveelheden uitvoer kunnen produceren, kunt u de uitvoer omleiden naar een bestand. Typ cscript bestandsnaam.vbs > outfile.txt bij de opdrachtprompt om de uitvoer van de bestandsnaam.vbs script om te leiden naar outfile.txt.

De volgende tabel bevat scriptvoorbeelden die kunnen worden gebruikt voor het verkrijgen van verschillende typen gegevens van de lokale computer.

Hoe kan ik... WMI-klassen of -methoden
... geplande taken maken met behulp van scripts? Gebruik de klasse Win32_ScheduledJob en de methode Create. Als u problemen ondervindt bij het maken van deze taak in Windows 7 of hoger, raadpleegt u de sectie Win32_ScheduledJob Opmerkingen; waarschijnlijk voorkomt u dat u de klasse gebruikt door uw instellingen.
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

In de tekenreeks '********143000.000000-420' (gebruikt in de parameterwaarde StartTime van de methode Create), "********143000.000000" geeft aan dat de taak begint om 14.30 (2:30 uur) en '-420' de tijdzone aangeeft. Het tijdzonenummer is de huidige vooroordelen van de lokale tijdomzetting. De vooroordelen zijn het verschil tussen de UTC-tijd en de lokale tijd. Als u de vooroordelen voor uw tijdzone wilt berekenen, vermenigvuldigt u het aantal uren dat uw tijdzone vooruit of achter Greenwich Mean Time (GMT) ligt met 60 (gebruik een positief getal voor het aantal uren als uw tijdzone vóór GMT staat en een negatief getal als uw tijdzone zich achter GMT bevindt). Voeg nog eens 60 toe aan uw berekening als uw tijdzone zomertijd gebruikt. De Pacific Standard Time-zone is bijvoorbeeld acht uur achter GMT, dus de vooroordelen zijn gelijk aan -420 (-8 * 60 + 60) wanneer zomertijd in gebruik is en -480 (-8 * 60) wanneer zomertijd niet in gebruik is. U kunt ook de waarde van de vooroordelen bepalen door een query uit te voeren op de eigenschap bias van de Win32_TimeZone-klasse.

... retourneert u een lijst met alle geplande taken op een computer?

Gebruik de klasse Win32_ScheduledJob. Houd er rekening mee dat deze klasse alleen taken kan retourneren die zijn gemaakt met behulp van een script of AT.exe. Er kan geen informatie worden geretourneerd over taken die zijn gemaakt door of gewijzigd door de wizard Geplande taak.

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

WMI-taken voor scripts en toepassingen

WMI C++-toepassingsvoorbeelden

TechNet ScriptCenter