Il existe plusieurs classes WMI et un objet de script pour analyser ou convertir le format CIM datetime. Pour d’autres exemples, veuillez consulter le TechNet ScriptCenter à https://www.microsoft.com/technet.
Les exemples de script présentés dans cette rubrique obtiennent des données uniquement à partir de l’ordinateur local. Pour plus d’informations sur la façon d’utiliser le script pour obtenir des données à partir d’ordinateurs distants, veuillez consulter Connexion à WMI sur un ordinateur distant.
Pour exécuter un script
La procédure suivante décrit comment exécuter un script.
Copiez le code et enregistrez-le dans un fichier avec une extension .vbs, comme nomdefichier.vbs. Assurez-vous que votre éditeur de texte n’ajoute pas une extension .txt au fichier.
Ouvrez une fenêtre d’invite de commandes et naviguez jusqu’au répertoire où vous avez enregistré le fichier.
Tapez cscript nomdefichier.vbs à l’invite de commandes.
Si vous ne pouvez pas accéder à un journal des événements, vérifiez si vous exécutez à partir d’une invite de commandes élevée. Certains journaux des événements, comme le journal des événements de sécurité, peuvent être protégés par les contrôles de compte d’utilisateur (UAC).
Remarque
Par défaut, cscript affiche la sortie d’un script dans la fenêtre d’invite de commandes. Comme les scripts WMI peuvent produire de grandes quantités de sortie, vous pouvez vouloir rediriger la sortie vers un fichier. Tapez cscript nomdefichier.vbs > outfile.txt à l’invite de commandes pour rediriger la sortie du script nomdefichier.vbs vers outfile.txt.
Le tableau suivant liste des exemples de scripts qui peuvent être utilisés pour obtenir divers types de données de l’ordinateur local.
Comment puis-je...
Classes ou méthodes WMI
...convertir les dates WMI en dates et heures standard ?
Utilisez l’objet SWbemDateTime pour les convertir en dates et heures régulières.
VB
Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each strOS in objOS
dtmInstallDate.Value = strOS.InstallDate
Wscript.Echo dtmInstallDate.GetVarDate
Next
Ou faites en sorte que votre code réalise la tâche manuellement.
...déterminer le nom du fuseau horaire dans lequel un ordinateur fonctionne ?
Utilisez la classe Win32_TimeZone et vérifiez la valeur de la propriété Description.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Daylight Name: " & objItem.DaylightName
Wscript.Echo "Standard Name: " & objItem.StandardName
Wscript.Echo
Next
PowerShell
$Computer = "."
$timezone = Get-WMIObject -class Win32_TimeZone -ComputerName $computer
<# Display details #>
if ($computer -eq ".") {$computer = Hostname}
"Time zone information on computer `"{0}`"" -f $computer
"Time Zone Description : {0}" -f $timezone.Description
"Daylight Name : {0}" -f $timezone.DaylightName
"Standard Name : {0}" -f $timezone.StandardName
...s’assurer que « 10/02/2000 » est interprété comme le 2 octobre 2000, et non le « 10 février 2000 » ?
Gérez les dates au format CIMDATETIME et utilisez les méthodes SWbemDateTime, comme GetVarDate pour les convertir vers et à partir des formats FILETIME ou VT_Date. Comme le format DATETIME est indépendant de la locale, vous pouvez écrire un script qui s’exécute sur n’importe quelle machine. Utilisez l’objet SWbemDateTime pour les convertir en dates et heures régulières. Veuillez consulter Format de date et heure pour plus d’informations sur la conversion des dates et heures.
...convertir une date et heure WMI en une valeur DateTime .NET ?
Analysez manuellement la chaîne, puis mettez les valeurs récupérées dans un objet DateTime.