about_WMI
Korte beschrijving
Windows Management Instrumentation (WMI) maakt gebruik van het Common Information Model (CIM) om systemen, toepassingen, netwerken, apparaten en andere beheerbare onderdelen van de moderne onderneming weer te geven.
Lange beschrijving
Windows Management Instrumentation (WMI) is de implementatie van Microsoft van Web-Based Enterprise Management (WBEM), de industriestandaard.
Klassieke WMI gebruikt DCOM om te communiceren met netwerkapparaten om externe systemen te beheren. Windows PowerShell 3.0 introduceert een CIM-providermodel dat WinRM gebruikt om de afhankelijkheid van DCOM te verwijderen. Dit CIM-providermodel maakt ook gebruik van nieuwe WMI-provider-API's waarmee ontwikkelaars Windows PowerShell cmdlets kunnen schrijven in systeemeigen code (C++).
Verwar WMI-providers niet met Windows PowerShell-providers. Veel Windows-functies hebben een bijbehorende WMI-provider die hun beheermogelijkheden beschikbaar maakt. Als u WMI-providers wilt ophalen, voert u een WMI-query uit die exemplaren van de WMI-klasse __Provider, zoals de volgende query.
Get-WmiObject -Class __Provider
DRIE ONDERDELEN VAN WMI
De volgende drie onderdelen van WMI communiceren met Windows PowerShell: naamruimten, providers en klassen.
WMI-naamruimten organiseren WMI-providers en WMI-klassen in groepen gerelateerde onderdelen. Op deze manier zijn ze vergelijkbaar met .NET Framework naamruimten. Naamruimten zijn geen fysieke locaties, maar lijken meer op logische databases. Alle WMI-naamruimten zijn exemplaren van de __Namespace systeemklasse. De standaard WMI-naamruimte is Root/CIMV2 (sinds Microsoft Windows 2000). Als u Windows PowerShell wilt gebruiken om WMI-naamruimten in de huidige sessie op te halen, gebruikt u een opdracht met de volgende indeling.
Get-WmiObject -Class __Namespace
Als u WMI-naamruimten in andere naamruimten wilt ophalen, gebruikt u de parameter Naamruimte om de locatie van de zoekopdracht te wijzigen. Met de volgende opdracht worden WMI-naamruimten gevonden die zich in de naamruimte Root/Cimv2/Applications bevinden.
Get-WmiObject -Class __Namespace -Namespace root/CIMv2/applications
WMI-naamruimten zijn hiƫrarchisch. Als u daarom een lijst met alle naamruimten op een bepaald systeem wilt ophalen, moet u een recursieve query uitvoeren die begint bij de hoofdnaamruimte.
WMI-providers maken informatie beschikbaar over beheerbare Windows-objecten. Een provider haalt gegevens op uit een onderdeel en geeft die gegevens via WMI door aan een beheertoepassing, zoals Windows PowerShell. De meeste WMI-providers zijn dynamische providers, wat betekent dat ze de gegevens dynamisch verkrijgen wanneer ze worden aangevraagd via de beheertoepassing.
WMI-KLASSEN ZOEKEN
In een standaardinstallatie van Windows 8 zijn er meer dan 1100 WMI-klassen in Root/Cimv2. Met dit aantal WMI-klassen wordt de uitdaging het identificeren van de juiste WMI-klasse die moet worden gebruikt om een specifieke taak uit te voeren. Windows PowerShell 3.0 biedt twee manieren om WMI-klassen te vinden die zijn gerelateerd aan een specifiek onderwerp.
Als u bijvoorbeeld WMI-klassen wilt vinden in de WMI-naamruimte root\CIMV2 die zijn gerelateerd aan schijven, kunt u een query gebruiken, zoals de query die hier wordt weergegeven.
Get-WmiObject -List *disk*
Als u WMI-klassen wilt vinden die betrekking hebben op geheugen, kunt u een query gebruiken, zoals de query die hier wordt weergegeven.
Get-WmiObject -List *memory*
De CIM-cmdlets bieden ook de mogelijkheid om WMI-klassen te detecteren. Gebruik hiervoor de cmdlet Get-CIMClass. De opdracht die hier wordt weergegeven, bevat WMI-klassen die betrekking hebben op video.
Get-CimClass *video*
Tabuitbreiding werkt bij het wijzigen van WMI-naamruimten en daarom maakt het gebruik van tabuitbreiding sub-WMI-naamruimten gemakkelijk te vinden. In het volgende voorbeeld bevat de Get-CimClass cmdlet WMI-klassen met betrekking tot energie-instellingen.
Als u deze wilt vinden, typt u de root/CIMV2/ naamruimte en drukt u meerdere keren op de Tab-toets totdat de power-naamruimte wordt weergegeven. Dit is de opdracht:
Get-CimClass *power* -Namespace root/cimv2/power