WMI est l'abréviation de Windows Management Instrumentation. Conçue par Microsoft, il s'agit d'une infrastructure de gestion standardisée des données et des informations, indépendante des périphériques. Depuis Windows 2000, WMI est préinstallé avec les systèmes d'exploitation Windows.
WMI est l'implémentation par Microsoft du Web-Based Enterprise Management (WBEM), qui est géré par le Distributed Management Task Force (DMTF). WBEM définit des normes pour permettre l'accès aux données à partir de technologies et de dispositifs non uniformes dans le cadre d'une architecture normalisée. Le WBEM utilise le modèle d'information commun (CIM) comme schéma pour définir les informations sur les objets.
Bien qu'il ne fasse pas directement partie du WMI, le CIM est une norme indépendante des fournisseurs qui permet de représenter les informations de gestion de divers appareils. Elle est également maintenue par la DMTF.
WMI utilise ce schéma pour stocker des informations dans le référentiel WMI. L'IT est structuré de manière à ce que l'environnement géré puisse être considéré comme des systèmes interdépendants, chacun étant composé d'éléments discrets. Un ensemble prédéfini de classes et de propriétés crée un cadre à partir duquel les différents fournisseurs construisent.
Les alertes personnalisées et la visualisation des données vous permettent d'identifier et de prévenir rapidement les problèmes de santé et de performance du réseau.
Pour fonctionner en tant que serveur, un appareil doit être configuré pour écouter les requêtes des clients sur une connexion réseau. Cette fonctionnalité peut être intégrée au système d'exploitation sous la forme d'une application installée, d'un rôle ou d'une combinaison des deux.
Par exemple, le système d'exploitation Windows Server de Microsoft permet d'écouter les requêtes des clients et d'y répondre. En outre, les rôles ou services installés augmentent les types de demandes des clients auxquelles le serveur peut répondre. Dans un autre exemple, un serveur web Apache répond aux demandes des navigateurs Internet par l'intermédiaire d'une application supplémentaire, Apache, installée au-dessus d'un système d'exploitation.
Lorsqu'un client a besoin de données ou de fonctionnalités de la part d'un serveur, il envoie une requête sur le réseau. Le serveur reçoit cette demande et répond avec les informations appropriées. Il s'agit du modèle de demande et de réponse du réseau client-serveur, également connu sous le nom de modèle d'appel et de réponse.
Un serveur effectue souvent de nombreuses tâches supplémentaires dans le cadre d'une seule demande et d'une seule réponse, notamment en vérifiant l'identité du demandeur, en s'assurant que le client a la permission d'accéder aux données ou aux ressources demandées et en formatant correctement ou en renvoyant la réponse requise de la manière attendue.
Lorsque les appareils d'un réseau fonctionnent, divers réglages, paramètres et états peuvent être mesurés et générés à tout moment. Par exemple, un disque dur a une capacité de stockage totale, une capacité de stockage utilisée, une quantité de stockage libre ou une température interne. Ces valeurs sont dynamiques et changent en fonction de l'utilisation du système. À tout moment, les relevés existent, que l'on s'en aperçoive ou non.
La plate-forme WMI offre un moyen uniforme de créer et d'exécuter des scripts qui lisent et, dans certains cas, peuvent modifier ces paramètres sans qu'il soit nécessaire d'installer des agents logiciels ou des superviseurs supplémentaires. Dans le cas du disque dur, un fournisseur WMI pourrait répondre à une demande de température du disque dur et envoyer une alerte au gestionnaire d'objets WMI si la température dépasse un niveau prédéfini.
En outre, pour les applications de gestion, la plate-forme WMI offre une interface de programmation d'applications (API) au niveau du gestionnaire d'objets WMI, de sorte qu'il n'est pas nécessaire de comprendre les spécificités d'un fournisseur WMI individuel. L'application de gestion n'a besoin que d'appeler le gestionnaire d'objets et non d'interroger directement le disque dur lui-même, par exemple.
Lorsqu'un appareil est interrogé ou qu'un événement est déclenché, les données transitent par l'architecture standard de l'appareil géré, via son fournisseur WMI, jusqu'au gestionnaire d'objets WMI, puis jusqu'au consommateur WMI. Toute cette infrastructure est normalisée pour tous les appareils et toutes les plates-formes, de sorte que n'importe quel logiciel de gestion d'entreprise compatible WMI peut accéder aux données recueillies sur n'importe quel appareil compatible WMI sans avoir besoin de connaître quoi que ce soit sur les appareils ou sur la structure du réseau qui les relie. WMI est disponible sur tout ordinateur Windows actuel et peut donc être géré via WMI.
Les notifications en temps réel sont synonymes de dépannage plus rapide, de sorte que vous pouvez agir avant que des problèmes plus graves ne surviennent.
WMI fait partie intégrante du système d'exploitation Windows. L'infrastructure WMI est implémentée dans Windows sous la forme du service WMI. Le service WMI sert d'intermédiaire entre les fournisseurs WMI, le référentiel WMI et les applications de gestion. Le service WMI s'exécute sous le nom d'affichage Windows Management Instrumentation et sous le nom de service winmgmt. Il s'exécute automatiquement au démarrage et, s'il est arrêté, il démarre automatiquement lorsqu'une application de gestion ou un script demande une connexion à un espace de noms WMI.
Un objet géré est un composant ou un service logique ou physique qui peut être géré via WMI. Il peut s'agir de processeurs, d'adaptateurs réseau, de systèmes d'exploitation, de services, d'applications, de lecteurs de disques, de mémoire ou de tout autre équipement connecté au réseau.
En général, si le paramètre en question est accessible via un autre outil Windows, tel qu'un superviseur de performances, il est possible d'accéder à la même information via WMI.
Un fournisseur WMI est un objet qui supervise, lit et collecte les données qu'il est programmé pour surveiller sur un objet géré spécifique. Comme les pilotes de périphériques, certains superviseurs sont buildés dans le système d'exploitation, tandis que d'autres sont mis en œuvre par des tiers ou par programmation, généralement via C/C++, Visual Basic, VBScript ou PowerShell. Il est également possible d'accéder au fournisseur via la ligne de commande (Windows Management Interface Command-line, ou WMIC).
Les superviseurs peuvent être généraux ou spécifiques à un appareil. Le moniteur lui-même ne fait rien d'autre que d'observer ou de superviser les données au fur et à mesure qu'elles sont générées. Les superviseurs n'enregistrent pas de données, bien qu'ils puissent être configurés pour écrire des données dans un fichier journal ou dans l'observateur d'événements si une certaine condition est remplie.
Il existe de nombreux fournisseurs WMI intégrés dans Windows, notamment le fournisseur Active Directory, le fournisseur WMI Boot Configuration Data (BCD), le fournisseur Distributed File System (DFS), le fournisseur Event Log, le fournisseur Hyper-V WMI, le fournisseur Win32, le fournisseur Registry et le fournisseur SNMP. Le fournisseur SNMP carte les objets MIB SNMP aux classes CIM WMI. Cela permet d'utiliser WMI même sur des périphériques non Windows via leur SNMP build.
Les fournisseurs WMI répondent aux requêtes directes des applications de gestion ou des scripts, ainsi qu'aux événements programmés. La configuration d'un événement nécessite un déclencheur d'événement et des abonnés à l'événement. Le déclencheur est défini en déterminant le moment où un événement doit faire l'objet d'un rapport ou d'un déclenchement. Par exemple, un événement peut être déclenché lorsque l'espace disque libre passe en dessous d'un certain seuil. Lorsque le fournisseur WMI s'exécute, il se contente de superviser l'espace disque disponible. Lorsque la quantité d'espace disque libre passe sous le seuil prédéfini, le fournisseur WMI alerte le gestionnaire d'objets CIM. Ce dernier transmet alors l'alerte aux consommateurs ou abonnés d'événements prédéfinis, qui sont généralement des applications de gestion d'entreprise ou des journaux d'événements.
Chaque fournisseur WMI met en œuvre les fonctionnalités de ses classes. Les classes contiennent des événements et des propriétés qui permettent de capturer et de définir des données. Les classes système WMI sont des classes prédéfinies qui fournissent les fonctionnalités de base de WMI. Ces classes commencent par un double trait de soulignement, comme __SystemEvent, qui représente un événement système. Il existe également des classes MSFT qui sont soit des classes de fournisseurs de stratégies, soit des classes de dépannage WMI. Les classes CIM peuvent être utilisées pour build des nouvelles classes. Les nouvelles classes hériteront des propriétés de leur classe CIM parente.
Il existe également des classes de consommateurs standard. Elles sont utilisées pour exécuter des scripts ou des programmes lorsqu'un événement déclencheur se produit. Une classe de consommateurs standard couramment utilisée est la classe ActiveScriptEventConsumer, qui exécute un script lorsqu'elle reçoit une réponse. C'est un moyen de créer une réponse automatique à un événement ou une situation particulière, comme l'envoi d'un message, l'arrêt ou le démarrage d'un service, ou même le redémarrage et l'arrêt d'un système ou d'un composant.
Certaines classes ont des méthodes qui offrent les données spécifiques qui peuvent être supervisées ou modifiées. Par exemple, la classe Win32_Service possède des méthodes pour arrêter et démarrer les services. Ces méthodes sont accessibles via une application de script ou via une application de gestion de réseau.
Le référentiel WMI est une base de données relationnelle qui stocke les données statiques relatives à WMI. Les données dynamiques supervisées par les fournisseurs WMI ne sont pas stockées dans le référentiel. Pour conserver les données dynamiques, elles doivent être capturées par un fournisseur WMI et récupérées ou rapportées par une application de gestion WMI ou logs via une classe de fournisseur WMI. WMI utilise un référentiel d'objets conforme à la norme CIM.
Le gestionnaire d'objets CIM sert d'intermédiaire entre une application de gestion et les fournisseurs WMI. Accessible depuis l'application par l'API WMI, le gestionnaire d'objets transmet les demandes de données aux fournisseurs WMI et reçoit la réponse avant de renvoyer les informations à l'application de gestion qui les a demandées.
L'API permet aux applications qui utilisent WMI d'accéder à l'infrastructure WMI. Ces applications lancent des appels API qui sont transmis au gestionnaire d'objets CIM, puis aux fournisseurs. Ces derniers répondent via les classes et les méthodes avec des données telles que le temps disponible du système ou le nombre de processus en cours d'exécution.
Le consommateur envoie des requêtes et reçoit des informations d'un fournisseur WMI via le gestionnaire d'objets WMI. En règle générale, un consommateur WMI est soit une application de supervision, telle que PRTG Network Monitor, soit une application de gestion, soit un script, tel qu'un script PowerShell, qui interroge des valeurs sur un système distant avant d'effectuer une action telle que la mise à jour d'un logiciel ou l'écriture d'un fichier.
Par exemple, un administrateur qui écrit un script de mise à jour peut d'abord utiliser PowerShell pour interroger un fournisseur WMI afin de vérifier la version de Windows avant d'envoyer la mise à jour. Le consommateur peut interroger les fournisseurs WMI pour obtenir des valeurs qui peuvent être supervisées, voire modifiées par un administrateur. Seules certaines valeurs sont accessibles en écriture de cette manière.
La possibilité d'accéder à distance et de modifier les informations et les données de l'appareil doit être sécurisée. Windows fournit plusieurs couches de sécurité qui protègent les systèmes distants. Le pare-feu Windows Defender dispose d'un paramètre spécifique pour le trafic WMI, distinct du paramètre habituel pour le trafic DCOM. Si WMI est bloqué par le pare-feu, une connexion ne peut pas être établie.
En outre, le filtrage standard des jetons d'accès du Contrôle de compte d'utilisateur (UAC) affecte les opérations WMI. Même lorsque vous êtes logs en tant qu'administrateur, les programmes ou les scripts basés sur WMI s'exécutent avec le jeton d'accès UAC standard, à moins qu'ils ne soient spécifiquement exécutés avec des privilèges élevés ("Exécuter en tant qu'administrateur"). Dans de nombreuses circonstances, les méthodes et les classes des fournisseurs WMI accèdent à des données privilégiées et nécessitent des autorisations d'accès plus élevées pour s'exécuter correctement.
À première vue, PowerShell semble peu compatible avec WMI. Cependant, une seule cmdlet Get-WmiObject permet d'accéder à la plupart des paramètres WMI. La cmdlet Get-WmiObject peut utiliser le paramètre -ComputerName pour accéder à un ordinateur distant. Par exemple, Get-WmiObject -Class Win32_service -ComputerName Accounting235 permet d'obtenir une liste des services (et de leur état actuel) qui sont exécutés sur un ordinateur distant nommé Accounting235.
Bien que la WMI puisse être utilisée via plusieurs langages de script, dont PowerShell, elle dispose de sa propre interface de ligne de commande. La WMIC est compatible avec les interpréteurs de commandes existants, y compris la ligne de commande standard de Windows. Pour l'utiliser, il suffit de taper wmic et la commande.
La commande SET permet de modifier ou d'écrire dans certains paramètres. L'utilisation de l'interrupteur / ? permet d'afficher une liste des propriétés accessibles en écriture. Par exemple, il est possible de définir le fuseau horaire actuel à l'aide de la commande set os.
PRTG est un logiciel de supervision Network complet qui assure le suivi de l'ensemble de votre infrastructure IT.
Microsoft propose désormais Windows Management Infrastructure (MI), qui est la dernière version de WMI. Selon Microsoft, MI est entièrement compatible avec les versions antérieures de WMI et offre un temps de développement réduit ainsi qu'une intégration plus étroite avec PowerShell.