Partage via


Tâches WMI : Systèmes d’exploitation

Les tâches WMI pour systèmes d’exploitation obtiennent des informations concernant le système d’exploitation, notamment sa version, s’il est activé ou non ou les correctifs logiciels qui sont installés.

Les exemples de script présentés dans cette rubrique n’obtiennent des données qu’à 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 et accédez au répertoire où vous avez enregistré le fichier.
  3. Tapez CScript nomdefichier.vbs à l’invite de commandes.
  4. Si vous ne pouvez pas accéder à un journal des événements, vérifiez que vous effectuez l’exécution depuis 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. Sachant que les scripts WMI peuvent produire des sorties volumineuses, vous pouvez 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
... déterminer si un Service Pack a été installé sur un ordinateur ? Utilisez la classe Win32_OperatingSystem et vérifiez la valeur des propriétés ServicePackMajorVersion et ServicePackMinorVersion.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo objOperatingSystem.ServicePackMajorVersion & "." & objOperatingSystem.ServicePackMinorVersion
Next
PowerShell
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | `
   format-list ServicePackMajorVersion, ServicePackMinorVersion
... déterminer quand le système d’exploitation a été installé sur un ordinateur ?

Utilisez la classe Win32_OperatingSystem et la propriété InstallDate.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo "Install Date: " & objOperatingSystem.InstallDate 
Next
PowerShell
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list InstallDate
... déterminer quelle version du système d’exploitation Windows est installée sur un ordinateur ?

Utilisez la classe Win32_OperatingSystem et récupérez les propriétés Name et Version.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo objOperatingSystem.Caption & "  " & objOperatingSystem.Version
Next
PowerShell
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list Caption, Version
... déterminer quel dossier est le dossier Windows (%Windir%) sur un ordinateur ?

Utilisez la classe Win32_OperatingSystem et vérifiez la valeur de la propriété WindowsDirectory.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo "Windows Folder: " & objOperatingSystem.WindowsDirectory
Next
PowerShell
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list WindowsDirectory
... déterminer quels correctifs logiciels ont été installés sur un ordinateur ?

Utilisez la classe Win32_QuickFixEngineering.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery ("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
    Wscript.Echo "Description: " & objQuickFix.Description
    Wscript.Echo "Hotfix ID: " & objQuickFix.HotFixID
Next
PowerShell
Get-WmiObject -Class Win32_QuickFixEngineering -Namespace "root\cimv2" | format-list Description, HotFixIDs
... déterminer si je dois activer le système d’exploitation sur un ordinateur ?

Utilisez la classe Win32_WindowsProductActivation et vérifiez la valeur de la propriété ActivationRequired.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWPA = objWMIService.ExecQuery ("Select * from Win32_WindowsProductActivation")
For Each objWPA in colWPA
    Wscript.Echo "Activation Required: " & objWPA.ActivationRequired
    Wscript.Echo "Remaining Evaluation Period: " & objWPA.RemainingEvaluationPeriod
    Wscript.Echo "Remaining Grace Period: " & objWPA.RemainingGracePeriod
Next
PowerShell
Get-WmiObject -Class Win32_WindowsProductActivation -computer "." -Namespace "root\cimv2" | `
     format-list ActivationRequired, RemainingEvaluationPeriod, RemainingGracePeriod

Tâches WMI pour les scripts et les applications

Exemples d’applications WMI C++

TechNet ScriptCenter