WMI-Aufgaben: Geplante Aufgaben

Geplante WMI-Aufgaben erstellen und erhalten Informationen zu geplanten Aufgaben. Weitere Beispiele finden Sie im TechNet ScriptCenter unter https://www.microsoft.com/technet.

In den in diesem Artikel enthaltenen Skriptbeispielen werden nur Daten vom lokalen Computer abgerufen. Weitere Informationen zum Verwenden des Skripts zum Abrufen von Daten von Remotecomputern finden Sie unter Herstellen einer Verbindung mit WMI auf einem Remotecomputer.

Nachstehend wird die Skriptausführung näher beschrieben.

So führen Sie ein Skript aus

  1. Kopieren Sie den Code, und speichern Sie ihn in einer Datei mit VBS-Erweiterung, z. B. filename.vbs. Stellen Sie sicher, dass der Text-Editor der Datei keine TXT-Erweiterung hinzufügt.
  2. Öffnen Sie ein Eingabeaufforderungsfenster, und navigieren Sie zu dem Verzeichnis, in dem Sie die Datei gespeichert haben.
  3. Geben Sie cscript filename.vbs in die Eingabeaufforderung ein.
  4. Wenn Sie nicht auf ein Ereignisprotokoll zugreifen können, überprüfen Sie, ob Sie eine Eingabeaufforderung mit erhöhten Rechten verwenden. Einige Ereignisprotokolle, z. B. das Sicherheitsereignisprotokoll, können durch die Benutzerkontensteuerung (User Account Control, UAC) geschützt sein.

Hinweis

Standardmäßig zeigt cscript die Ausgabe eines Skripts im Eingabeaufforderungsfenster an. Da WMI-Skripts sehr viele Ausgabedaten erzeugen können, sollten Sie die Ausgabe in eine Datei umleiten. Geben Sie cscript filename.vbs > outfile.txt in die Eingabeaufforderung ein, um die Ausgabe des Skripts filename.vbs an outfile.txt umzuleiten.

In der folgenden Tabelle sind Skriptbeispiele aufgeführt, die zum Abrufen verschiedener Datentypen vom lokalen Computer verwendet werden können.

Vorgehensweisen WMI-Klassen oder -Methoden
... Wie erstelle ich geplante Aufgaben mithilfe von Skripts? Verwenden Sie die Win32_ScheduledJob-Klasse und die Create-Methode. Wenn Sie Schwierigkeiten haben, diese Aufgabe unter Windows 7 oder höher zu verwenden, lesen Sie den Abschnitt zu den Win32_ScheduledJob Hinweisen. Wahrscheinlich verhindern Ihre Einstellungen die Verwendung der Klasse.
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 der Zeichenfolge „****143000.000000-420“ (verwendet im StartTime-Parameterwert der Create-Methode) gibt „********143000.000000“ an, dass die Aufgabe um 14:30 Uhr beginnt, während „-420“ für die Zeitzone steht. Die Zeitzonennummer ist die aktuelle Abweichung der Ortszeit. Die Abweichung ist der Unterschied zwischen der UTC-Zeit und der Ortszeit. Um die Abweichung für Ihre Zeitzone zu berechnen, multiplizieren Sie die Anzahl der Stunden, in denen sich Ihre Zeitzone vor oder hinter der Greenwich Mean Time (GMT) befindet, mit 60 (verwenden Sie eine positive Zahl für die Anzahl der Stunden, wenn Ihre Zeitzone vor GMT liegt, und eine negative Zahl, wenn Ihre Zeitzone hinter GMT liegt). Fügen Sie Ihrer Berechnung zusätzliche 60 Minuten hinzu, wenn in Ihrer Zeitzone die Sommerzeit gilt. Beispielsweise liegt die Pacific Standard Time Zone acht Stunden hinter GMT, daher ist die Abweichung -420 (-8 * 60 + 60), wenn die Sommerzeit gilt, und -480 (-8 * 60), wenn die Winterzeit gilt. Sie können auch den Wert der Abweichung ermitteln, indem Sie die Bias-Eigenschaft der Win32_TimeZone-Klasse abfragen.

...Wie kann ich eine Liste aller geplanten Aufgaben auf einem Computer zurückgeben?

Verwenden Sie die Win32_ScheduledJob-Klasse. Beachten Sie, dass diese Klasse nur Aufträge zurückgeben kann, die entweder mit einem Skript oder mit AT.exe erstellt wurden. Es können keine Informationen zu Aufträgen zurückgegeben werden, die vom Assistenten für geplante Aufgaben erstellt oder geändert wurden.

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-Aufgaben für Skripts und Anwendungen

WMI-C++-Anwendungsbeispiele

TechNet ScriptCenter