DOS/Wmic
 (WMI) est l’implémentation de du (WBEM), le standard du (DMTF). Il prend en charge le modèle de données CIM (), qui décrit les objets d'un environnement de gestion.
WMIC (Windows Management Instrumentation Command-line) fournit une interface de ligne de commande dans l'Infrastructure de gestion Windows (WMI) qui permet de tirer parti de WMI pour gérer les ordinateurs. Windows PowerShell permet aussi d'utiliser simplement WMI depuis la ligne de commande.
Qu'est-ce que WMI ?
WMI est l'implémentation par Microsoft du modèle commun d'information (Common Information Model (CIM) en anglais) développé par le comité spécial de la gestion distribuée (the Distributed Management Task Force (DMTF)).
Le DMTF est une association de diverse entreprises de l'informatique (e.g. Novell, Microsoft, Cisco, HP, etc.) développant des normes dans l'espace de gestion des entreprises (Voir http://www.dmtf.org pour plus d'information).
Comme les grandes entreprises ont beaucoup d'ordinateurs avec beaucoup d'environnement logiciels, gérer divers environnements peut être un grand défi.
Afin d'unifier les techniques de gestion pour la simplicité, le DMTF a défini le CIM pour représenter les entités gérables du monde réel de manière unifiée.
Le modèle objet du CIM utilise des termes et une sémantique uniques à tous les constructeurs et développeurs logiciels.
Ce modèle objet est implémenté dans une base de données appelée dépôt CIM (CIM repository), comme illustré dans le schéma ci-dessous.
Based on the CIM model, WMI includes real-world manageable components, available from the DMTF standards with some specific extensions that represent the various Windows components. Moreover, WMI exposes a collection of COM scriptable objects that allow various applications to take advantage of the management information. WMI is the Microsoft implementation of CIM.
As part of the installation process, most of the Microsoft applications available today (e.g. SQL 2000, Exchange 2000/2003, Office 2000/XP/2003, Internet Explorer 6.0, Host Integration Server, Automated Deployment Services) extend the standard CIM object model to add the representation of their manageable entities in the CIM repository. This representation is called a class, and it exposes information through properties and allows the execution of some actions via methods. The access to the manageable entities is made via a software component, called a “provider” which is nothing else than a DLL implementing a COM object written in C/C++ (See note at the end of this section). Because a provider is designed to access some specific management information, the CIM repository is also logically divided into several areas called a namespace. Each namespace contains a set of providers with their related classes specific to a management area (i.e. RootDirectorydap for active directory, rootsnmp for snmp information or rootmicrosoftiisv2 for internet information server information).
to locate the huge amount of management information available from the cim repository, wmi comes with a sql-like language called the wmi query language (wql). briefly, wql is a subset of the standard american national standards institute structured query language (ansi sql) with minor semantic changes. a basic wql query remains fairly understandable for people with a basic sql knowledge. therefore, wql is dedicated to wmi and is designed to perform queries against the cim repository to retrieve information or get event notifications.
more information about some of the terms that cim is using is available on msdn at http://msdn.microsoft.com/library/en-us/dnwmi/html/cim.asp and http://msdn.microsoft.com/library/en-us/dnwmi/html/wmicim.asp.
What is the overall development process?
Because WMI abstracts the manageable entities with CIM and a collection of providers, the development of a provider implies several steps. Although there are 4 major steps with some sub-steps, each of them taken separately are quite easy to execute. These can be summarized as follows:
Step 1 – Create the manageable entity model
Step 2 – Create the WMI Provider
Step 3 - Test the provider
Step 4 - Create consumer sample codes
Why is it important to write a WMI provider for our customers?
Since the release of the first WMI implementation during the Windows NT 4.0 SP4 era (as an out-of-band download), Microsoft never stopped to add WMI providers in Windows. Under Windows NT 4.0, Microsoft had roughly 15 WMI providers available once WMI was installed. When Windows 2000 was released, customers discovered 29 WMI providers part of the Operating System installation. More recently, with the release of Windows Server 2003, Microsoft included in the platform more than 80 WMI providers. This has been a sign for many customers that WMI became at Microsoft the “ubiquitous” management layer of Windows, even if this commitment has never been explicit from Microsoft. This is the net result of the on-going work made during the last Windows release.
During these last years, due to a constant increasing exposure of management data through WMI in Windows, more and more people in the field started to develop scripts and automation procedures based on WMI. Beyond the scripting needs, most leading management software in the world, such as MOM, SMS, ADS, HP OpenView for Windows (HPOV), BMC, CA, or Kaseya are WMI-enabled and capable to consume and provide WMI information through various User Interfaces. This enables administrators and operators, not capable to script or program on top of WMI, to enjoy the benefits of WMI without even learning about WMI. However, if they want to, because WMI is scriptable, it gives the opportunity to any of them to consume WMI information from scripts or from any Enterprise Management software that is WMI-aware.
These trends have made WMI very popular among our customers management communities. Tons of references and publications exist on the Internet about WMI. At the same time, this story increased our customer expectations because the management communities leveraging WMI today expect our management layer to be predictable and consistent through WMI for more and more Windows manageable components. This also means that our customers expect to leverage the knowledge and investment made in WMI during these past years to improve, pursue and achieve their business goals at lower cost.
What WMI offers for free out-of-the box?
For someone willing to develop one or many WMI providers, WMI offers many features out of the box. Here are the most important advantages:
What do you need to work with WMI?
From a development perspective, you must run Windows 2000, Windows XP or Windows Server 2003. Visual Studio 2003 or 2005 must be installed on the machine. The latest service pack and fixes are obviously recommended. The Windows machine doesn’t have to be part of any domain unless the provider you plan to develop requires to access information in the domain. For testing purposes the Windows installation can run as a virtual machine with Virtual PC 2004 or Virtual Server 2005 (See http://msdn.microsoft.com/library/en-us/wmisdk/wmi/system_requirements.asp for more information).
Note: This document has been written with Visual Studio 2005 Beta 1 (Whidbey). It will be updated when Beta 2. If you use Visual Studio 2003, don’t be surprised if your screen shots don’t match the ones you have in this document.
Some WMI tools can also be very useful during the design and development phases. These tools are:
Comment vérifier que le WMI est bien opérationnel sur la machine.
Si le WMI est totalement opérationnel sur la machine, alors vous obtiendrez le message "connexion réussie" lors du contrôle du WMI, comme sur cette image : (aller sur "Gestion de l'ordinateur", bouton droit sur Contrôle WMI, puis "Propriétés")
Dans le cas contraire, il faudra alors passer au paragraphe "Réparation du WMI"...
Nota : Microsoft propose aussi un outil de vérification du service WMI, en anglais (WMIDiag.exe), et appelé "WMI Diagnosis Utility" : https://www.microsoft.com/en-us/download/details.aspx?id=7684 ; cet outil fonctionne actuellement sous Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 et Windows Server 2012 R2.
Réparation du WMI.
Sous Microsoft Windows XP (au moins avec Service Pack 2).
Il vous suffira d'ouvrir une fenêtre "DOS" (Démarrer/exécuter/CMD <entrée>), puis de taper les commandes suivantes l'une après l'autre : 
Nota : il se peut que certains services tels que CCMEXEC ou SHAREDACCESS n'existent pas sur votre configuration, ça ne posera pas de problème pour la suite de la réparation.
Une fois que la dernière commande de réparation sera terminée, vous reviendrez au prompt. Vous devrez alors procéder à un reboot de l'ordinateur. C'est tout.
Sous Microsoft Windows Server 2003 (au moins avec Service Pack 1).
Il vous suffira d'ouvrir une fenêtre "DOS" (Démarrer/exécuter/CMD <entrée>), puis de taper les commandes suivantes l'une après l'autre : 
Nota : il se peut que certains services tels que CCMEXEC ou SHAREDACCESS n'existent pas sur votre configuration, ça ne posera pas de problème pour la suite de la réparation.
Une fois que la dernière commande de réparation sera terminée, vous reviendrez au prompt. Vous devrez alors procéder à un reboot de la machine. C'est tout.
Sous Microsoft Windows Vista, Windows 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2.
Il vous faudra lancer l'invite de commande en tant qu'administrateur (clic droit dessus puis sur "exécuter en tant qu'administrateur" pour le faire en mode d'élévation de privilèges). Puis vous taperez les commandes suivantes l'une après l'autre : 
Nota : il se peut que certains services tels que CCMEXEC ou SHAREDACCESS n'existent pas sur votre configuration, ça ne posera pas de problème pour la suite de la réparation.
Une fois que la dernière commande de réparation sera terminée, vous reviendrez au prompt. Vous devrez alors procéder à un reboot de la machine. C'est tout.
Sous autres (anciennes) versions Microsoft Windows.
Nota : Ca provoquera un reset de la configuration ICS et ICF.
Il vous suffira d'ouvrir une fenêtre "DOS" (Démarrer/exécuter/CMD <entrée>), puis de taper les commandes suivantes l'une après l'autre :
Une fois que la dernière commande de réparation sera terminée, vous reviendrez au prompt. Vous devrez alors procéder à un reboot de la machine. C'est tout.
Exemples wmic.
Obtenir la clé de licence Windows.
 wmic path softwarelicensingservice get OA3xOriginalProductKey