WMI fournit une infrastructure standardisée de gestion des systèmes dont un certain nombre de clients différents peut tirer profit. Ces clients vont de l'outil de ligne de commande wmic.exe à System Center Operations Manager. Vous pouvez écrire vos propres clients WMI à l’aide de l’API de script WMI, de l’API C++ native ou des types de l’espace de noms de bibliothèque de classes System.Management .NET Framework.
Comment créer un client WMI
La fonctionnalité principale de WMI consiste à récupérer des objets à partir du référentiel WMI et à examiner les propriétés de ces objets. Vous pouvez également choisir de mettre à jour ces propriétés ou d'appeler des méthodes sur ces propriétés. Les exemples suivants montrent comment effectuer une tâche d’administration WMI de base : récupération du nom de l’ordinateur local.
Terme
Description
Création d’un client avec PowerShell
WMI et PowerShell sont étroitement intégrés ; Par conséquent, la récupération d’objets WMI avec PowerShell consiste simplement à appeler l’applet de commande Get-WmiObject. Notez que pour la cohérence, le premier extrait de code indique explicitement un grand nombre des valeurs par défaut ; la seconde suppose que les valeurs par défaut sont correctes.
PowerShell
#indique explicitement un grand nombre de paramètres par défaut $myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer in $myComputer) { "System Name: " + $computer.name }
#assumes the default values are correct
Get-WmiObject Win32_ComputerSystem | Format-Table "Name"
Création d'un client avec VBScript
VBScript était le langage de script d’origine qui était couramment utilisé avec WMI. Bien que PowerShell soit devenu plus populaire, la plupart des exemples de code existants dans cette documentation sont écrits en VBScript. Notez que cet exemple particulier de VBScript indique explicitement le chemin d'accès à la machine locale ainsi que le niveau d'usurpation d'identité ; ce n'est pas obligatoire, mais c'est souvent une bonne pratique.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
Wscript.Echo "Computer Name: " & objItem.Name
Next
Cet espace de noms contient la solution actuelle pour accéder à WMI avec du code managé et est connu sous le nom d’infrastructure de gestion Windows (MI ou WMIv2). Actuellement, MI est la technologie prise en charge pour la création de clients de gestion managée. Pour plus d'informations, voir Comment mettre en œuvre un client MI géré et comment mettre en œuvre un client MI natif.
C#
en utilisant Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");
foreach (CimInstance cimObj in queryInstance)
{
Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
}
Cet espace de noms contient la solution d’origine pour accéder à WMI avec du code managé. Bien que les classes System.Management soient toujours disponibles, les classes Microsoft.Management.Infrastructure sont généralement plus efficaces et mieux adaptées. Par conséquent, il est recommandé d’utiliser les classes MI plutôt que les classes WMI d’origine.
C#
en utilisant Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");
foreach (CimInstance cimObj in queryInstance)
{
Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
}
Le tableau ci-dessous répertorie les rubriques traitées dans cette section.
Dans Windows 7, WMI a implémenté la classe Win32_OptionalFeature . Cette classe récupère les status des fonctionnalités facultatives présentes sur un ordinateur.
Les fournisseurs d’association permettent aux clients WMI (Windows Management Instrumentation) de parcourir et de récupérer des profils et des instances de classe associées à partir de différents espaces de noms.
Ce parcours d’apprentissage porte sur Windows Management Instrumentation (WMI) et Common Information Model (CIM). Ces technologies permettent d’accéder à des informations concernant un ordinateur. Par ailleurs, ces deux technologies fournissent un accès local et distant aux informations de gestion du système d’exploitation, du matériel informatique et des logiciels installés.