Partager via


Tâches WMI : Tâches planifiées

Les tâches WMI planifiées créent et obtiennent des informations sur toutes les tâches planifiées. Pour obtenir d’autres exemples, consultez TechNet ScriptCenter dans https://www.microsoft.com/technet.

Les exemples de script présentés dans cette rubrique obtiennent les données uniquement à partir de l’ordinateur local. Pour plus d’informations sur l’utilisation du script afin d’obtenir des données provenant d’ordinateurs distants, consultez Connexion à WMI sur un ordinateur distant.

La procédure suivante explique comment exécuter un script.

Pour exécuter un script

  1. Copiez le code, puis enregistrez-le dans un fichier avec l’extension .vbs, par exemple nomfichier.vbs. Vérifiez que votre éditeur de texte n’ajoute pas d’extension .txt au fichier.
  2. Ouvrez une fenêtre d’invite de commandes, puis accédez au répertoire où vous avez enregistré le fichier.
  3. Tapez cscript nomfichier.vbs à l’invite de commandes.
  4. Si vous ne pouvez pas accéder à un journal des événements, vérifiez si vous exécutez la commande à partir d’une invite de commandes avec élévation de privilèges. Certains journaux des événements, par exemple le journal des événements de sécurité, peuvent être protégés par la fonctionnalité UAC (contrôle de compte d’utilisateur).

Notes

Par défaut, cscript affiche la sortie d’un script dans la fenêtre d’invite de commandes. Dans la mesure où les scripts WMI peuvent produire de grandes quantités de données en sortie, vous pouvez être amené à rediriger la sortie vers un fichier. Tapez cscript nomfichier.vbs > fichiersortie.txtà l’invite de commandes pour rediriger la sortie du scriptnomfichier.vbs vers fichiersortie.txt.

Le tableau suivant liste des exemples de script qui peuvent être utilisés pour obtenir divers types de données à partir de l’ordinateur local.

Comment puis-je... Classes ou méthodes WMI
... créer des tâches planifiées à l’aide de scripts ? Utilisez la classe Win32_ScheduledJob et la méthode Create . Si vous rencontrez des difficultés pour que cette tâche fonctionne sur Windows 7 ou version ultérieure, consultez la section Remarques Win32_ScheduledJob ; vos paramètres vous empêchent probablement d’utiliser la 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

Dans la chaîne « *********143000.000000-420 » (utilisée dans la valeur du paramètre StartTime de la méthode Create ), « ******143000.000000 » spécifie que la tâche commence à 14h30 (2:30 P.M.) et « -420 » indique le fuseau horaire. Le numéro du fuseau horaire correspond au biais actuel de la conversion de l'heure locale. Le biais est la différence entre l’heure UTC et l’heure locale. Pour calculer le biais de votre fuseau horaire, multipliez le nombre d’heures de décalage de votre fuseau horaire par rapport à celui de Greenwich (GMT) par 60 (utilisez un nombre positif pour le nombre d’heures si votre fuseau horaire est supérieur GMT et un nombre négatif s’il est inférieur). Ajoutez 60 de plus si votre fuseau horaire utilise l’heure d’été. Par exemple, le fuseau horaire standard du Pacifique est de huit heures de moins que GMT, par conséquent, le biais est égal à -420 (-8 * 60 + 60) lorsque l’heure d’été est en cours d’utilisation et à -480 (-8 * 60) lorsque l’heure d’été n’est pas utilisée. Vous pouvez également déterminer la valeur du biais en interrogeant la propriété bias de la classe Win32_TimeZone .

... renvoyer une liste de toutes les tâches planifiées sur un ordinateur ?

Utilisez la classe Win32_ScheduledJob. Notez que cette classe peut uniquement retourner des travaux créés à l’aide d’un script ou d’un AT.exe. Il ne peut pas retourner d’informations sur les travaux créés ou modifiés par l’Assistant de Tâche planifiée.

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

Tâches WMI pour les scripts et les applications

Exemples d’applications WMI C++

TechNet ScriptCenter