WMI ist die englische Abkürzung für Windows Management Instrumentation. Seine Hauptfunktionen sind: Zugriff auf einige Informationen und Dienste des lokalen Hosts und Verwaltung von Remotecomputern (natürlich müssen Sie über ausreichende Berechtigungen verfügen), z. B. Neustart, Herunterfahren, Schließen Prozesse erstellen und Prozesse erstellen.
Natürlich gilt dieser Artikel auch für VBScript
Offizielle Informationen von Microsoft:
Beispiele sind wie folgt:
Um WMI zu verwenden, projizieren Sie zuerst – siehe Microsoft WMI Scripting V1.1 Library
Rufen Sie Informationen zu Grafikkarte/Soundkarte/Speicher/Betriebssystem ab
Informationen zur Soundkarte
Private Sub wmiSoundDeviceInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}). _InstancesOf(Win32_SoundDevice)On Local Error Resume NextFor Each obj In wmiObjSetMsgBox obj.ProductNameNextEnd SubInformationen zur Grafikkarte
Private Sub wmiVideoControllerInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}). _InstancesOf(Win32_VideoController)On Local Error Resume NextFor Each obj In wmiObjSetMsgBox obj.VideoProcessorNextEnd SubSpeicherinformationen
Private Sub wmiPhysicalMemoryInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}). _InstancesOf(Win32_PhysicalMemory)On Local Error Resume NextFor Each objItem In wmiObjSetDebug.Print BankLabel: & objItem.BankLabelDebug.Print Kapazität: & objItem.CapacityDebug.Print Beschriftung: & objItem.CaptionDebug.Print CreationClassName: & objItem.CreationClassNameDebug.Print DataWidth: & objItem.DataWidthDebug.Print Beschreibung: & objItem.DescriptionDebug.Print DeviceLocator: & objItem.DeviceLocatorDebug.Print FormFactor: & objItem.FormFactorDebug.Print HotSwappable: & objItem.HotSwappableDebug.Print InstallDate: & objItem.InstallDateDebug.Print InterleaveDataDepth: & objItem.InterleaveDataDepthDebug.Print InterleavePosition: & objItem.InterleavePositionDebug.Print Hersteller: & objItem.ManufacturerDebug.Print MemoryType: & objItem.MemoryTypeDebug.Print Modell: & objItem.ModelDebug.Print Name: & objItem.nameDebug.Print OtherIdentifyingInfo: & objItem.OtherIdentifyingInfoDebug.Print PartNumber: & objItem.PartNumberDebug.Print PositionInRow: & objItem.PositionInRowDebug.Print PoweredOn: & objItem.PoweredOnDebug.Print Removeable: & objItem.RemovableDebug.Print Replacementable: & objItem.ReplaceableDebug.Print SerialNumber: & objItem.SerialNumberDebug.Print SKU: & objItem.SKUDebug.Print Geschwindigkeit: & objItem.SpeedDebug.Print Status: & objItem.StatusDebug.Print Tag: & objItem.TagDebug.Print TotalWidth: & objItem.TotalWidthDebug.Print TypeDetail: & objItem.TypeDetailDebug.Print Version: & objItem. VersionNextEnd SubInformationen zum Betriebssystem
Private Sub Command1_Click()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectDim msg As StringDim dtb As StringDim d As StringDim t As StringDim Bias As LongOn Local Error Resume NextSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}).InstancesOf(Win32_OperatingSystem)For Each obj In wmiObjSetMsgBox Das System, das Sie derzeit verwenden, ist & obj.CaptionNextEnd Subveranschaulichen:
Möglicherweise finden Sie eine Regel. Tatsächlich verwendet WMI den Bibliotheksnamen WIN32_class, um Informationen zu extrahieren. Die folgende Tabelle enthält eine Beschreibung verschiedener Hardwareklassen des Microsoft-Betriebssystems.
Informationen zu anderen von WMI verwalteten Klassen finden Sie in
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/accessing_hardware_and_software_through_wmi.asp
Sie können es finden, das auch einige Beispielcodes enthält.
Einfache Win_32-Klassentabelle
Win32-Klassen
Microsoft® Windows®-Klassen bieten Ihnen die Möglichkeit, eine Vielzahl von Objekten zu bearbeiten. Die folgende Tabelle identifiziert die Kategorien von Windows-Klassen.
Kategoriebeschreibung
Computersystem-Hardwareklassen, die hardwarebezogene Objekte darstellen.
Betriebssystemklassen, die betriebssystembezogene Objekte darstellen.
Installierte Anwendungen Klassen, die softwarebezogene Objekte darstellen.
WMI-Dienstverwaltungsklassen, die zur Verwaltung von WMI verwendet werden.
Leistungsindikatoren Klassen, die formatierte und rohe Leistungsdaten darstellen.
Hardware
Computersystem-Hardware-Kurse
Die Unterkategorie „Kühlgeräte“ gruppiert Klassen, die instrumentierbare Lüfter, Temperaturfühler und Kühlgeräte darstellen.
Klassenbeschreibung
Win32_Fan Stellt die Eigenschaften eines Lüftergeräts im Computersystem dar.
Win32_HeatPipe Stellt die Eigenschaften eines Heatpipe-Kühlgeräts dar.
Win32_Refrigeration Stellt die Eigenschaften eines Kühlgeräts dar.
Win32_TemperatureProbe Stellt die Eigenschaften eines Temperatursensors (elektronisches Thermometer) dar.
Eingabegeräteklassen
Die Unterkategorie „Eingabegeräte“ gruppiert Klassen, die Tastaturen und Zeigegeräte darstellen.
Klassenbeschreibung
Win32_Keyboard Stellt eine auf einem Windows-System installierte Tastatur dar.
Win32_PointingDevice Stellt ein Eingabegerät dar, das zum Zeigen und Auswählen von Regionen auf dem Display eines Windows-Computersystems verwendet wird.
Massenspeicherklassen
Klassen in der Unterkategorie „Massenspeicher“ repräsentieren Speichergeräte wie Festplattenlaufwerke, CD-ROM-Laufwerke und Bandlaufwerke.
Klassenbeschreibung
Win32_AutochkSetting Stellt die Einstellungen für den Autocheck-Vorgang einer Festplatte dar.
Win32_CDROMDrive Stellt ein CD-ROM-Laufwerk auf einem Windows-Computersystem dar.
Win32_DiskDrive Stellt ein physisches Festplattenlaufwerk dar, wie es von einem Computer gesehen wird, auf dem das Windows-Betriebssystem ausgeführt wird.
Win32_FloppyDrive Verwaltet die Funktionen eines Diskettenlaufwerks.
Win32_PhysicalMedia Repräsentiert jede Art von Dokumentation oder Speichermedium.
Win32_TapeDrive Stellt ein Bandlaufwerk auf einem Windows-Computer dar.
Motherboard-, Controller- und Portklassen
Die Unterkategorie „Motherboard“, „Controller“ und „Ports“ gruppiert Klassen, die Systemgeräte darstellen. Beispiele hierfür sind Systemspeicher, Cache-Speicher und Controller.
Klassenbeschreibung
Win32_1394Controller Stellt die Funktionen und Verwaltung eines 1394-Controllers dar.
Win32_1394ControllerDevice Setzt den seriellen Hochgeschwindigkeitsbus-Controller (IEEE 1394 Firewire) und die damit verbundene CIM_LogicalDevice-Instanz in Beziehung.
Win32_AllocatedResource Verknüpft ein logisches Gerät mit einer Systemressource.
Win32_AssociatedProcessorMemory Verknüpft einen Prozessor und seinen Cache-Speicher.
Win32_BaseBoard Stellt ein Baseboard dar (auch als Motherboard oder Systemplatine bezeichnet).
Win32_BIOS Stellt die Attribute der grundlegenden Eingabe-/Ausgabedienste (BIOS) des Computersystems dar, die auf dem Computer installiert sind.
Win32_Bus Stellt einen physischen Bus dar, wie er von einem Windows-Betriebssystem gesehen wird.
Win32_CacheMemory Stellt den Cache-Speicher (intern und extern) auf einem Computersystem dar.
Win32_ControllerHasHub Stellt die Hubs dar, die dem USB-Controller (Universal Serial Bus) nachgeschaltet sind.
Win32_DeviceBus Verknüpft einen Systembus und ein logisches Gerät über den Bus.
Win32_DeviceMemoryAddress Stellt eine Gerätespeicheradresse auf einem Windows-System dar.
Win32_DeviceSettings Verknüpft ein logisches Gerät und eine Einstellung, die darauf angewendet werden kann.
Win32_DMAChannel Stellt einen DMA-Kanal (Direct Memory Access) auf einem Windows-Computersystem dar.
Win32_FloppyController Stellt die Funktionen und Verwaltungskapazität eines Diskettenlaufwerk-Controllers dar.
Win32_IDEController Stellt die Funktionen eines IDE-Controllergeräts (Integrated Drive Electronics) dar.
Win32_IDEControllerDevice Assoziationsklasse, die einen IDE-Controller und das logische Gerät verknüpft.
Win32_InfraredDevice Stellt die Funktionen und die Verwaltung eines Infrarotgeräts dar.
Win32_IRQResource Stellt eine IRQ-Nummer (Interrupt Request Line) auf einem Windows-Computersystem dar.
Win32_MemoryArray Stellt die Eigenschaften des Speicherarrays des Computersystems und der zugeordneten Adressen dar.
Win32_MemoryArrayLocation Stellt eine Beziehung zwischen einem logischen Speicherarray und dem physischen Speicherarray her, auf dem es vorhanden ist.
Win32_MemoryDevice Stellt die Eigenschaften des Speichergeräts eines Computersystems zusammen mit den zugehörigen zugeordneten Adressen dar.
Win32_MemoryDeviceArray Stellt eine Beziehung zwischen einem Speichergerät und dem Speicherarray her, in dem es sich befindet.
Win32_MemoryDeviceLocation-Zuordnungsklasse, die ein Speichergerät und den physischen Speicher, auf dem es vorhanden ist, in Beziehung setzt.
Win32_MotherboardDevice Stellt ein Gerät dar, das die zentralen Komponenten des Windows-Computersystems enthält.
Win32_OnBoardDevice Stellt gängige Adaptergeräte dar, die in die Hauptplatine (Systemplatine) integriert sind.
Win32_ParallelPort Stellt die Eigenschaften eines parallelen Ports auf einem Windows-Computersystem dar.
Win32_PCMCIAController Verwaltet die Funktionen eines PCMCIA-Controllergeräts (Personal Computer Memory Card Interface Adapter).
Win32_PhysicalMemory Stellt ein physisches Speichergerät dar, das sich auf einem Computer befindet und dem Betriebssystem zur Verfügung steht.
Win32_PhysicalMemoryArray Stellt Details zum physischen Speicher des Computersystems dar.
Win32_PhysicalMemoryLocation Stellt eine Beziehung zwischen einem Array des physischen Speichers und seinem physischen Speicher her.
Win32_PNPAllocatedResource Stellt eine Zuordnung zwischen logischen Geräten und Systemressourcen dar.
Win32_PNPDevice Bezieht sich auf ein Gerät (im Configuration Manager als PNPEntity bekannt) und die Funktion, die es ausführt.
Win32_PNPEntity Stellt die Eigenschaften eines Plug-and-Play-Geräts dar.
Win32_PortConnector Stellt physische Verbindungsports dar, z. B. DB-25-Pin-Stecker, Centronics und PS/2.
Win32_PortResource Stellt einen E/A-Port auf einem Windows-Computersystem dar.
Win32_Processor Stellt ein Gerät dar, das eine Folge von Maschinenanweisungen auf einem Windows-Computersystem interpretieren kann.
Win32_SCSIController Stellt einen SCSI-Controller (Small Computer System Interface) auf einem Windows-System dar.
Win32_SCSIControllerDevice Verknüpft einen SCSI-Controller und das damit verbundene logische Gerät (Festplattenlaufwerk).
Win32_SerialPort Stellt einen seriellen Port auf einem Windows-System dar.
Win32_SerialPortConfiguration Stellt die Einstellungen für die Datenübertragung auf einem seriellen Windows-Port dar.
Win32_SerialPortSetting Bezieht einen seriellen Port und seine Konfigurationseinstellungen in Beziehung.
Win32_SMBIOSMemory Stellt die Funktionen und die Verwaltung speicherbezogener logischer Geräte dar.
Win32_SoundDevice Stellt die Eigenschaften eines Soundgeräts auf einem Windows-Computersystem dar.
Win32_SystemBIOS Bezieht sich auf ein Computersystem (einschließlich Daten wie Starteigenschaften, Zeitzonen, Startkonfigurationen oder Administratorkennwörter) und ein System-BIOS (Dienste, Sprachen, Systemverwaltungseigenschaften).
Win32_SystemDriverPNPEntity verknüpft ein Plug-and-Play-Gerät auf dem Windows-Computersystem mit dem Treiber, der das Plug-and-Play-Gerät unterstützt.
Win32_SystemEnclosure Stellt die Eigenschaften dar, die einem physischen Systemgehäuse zugeordnet sind.
Win32_SystemMemoryResource Stellt eine Systemspeicherressource auf einem Windows-System dar.
Win32_SystemSlot Stellt physische Verbindungspunkte dar, einschließlich Ports, Motherboard-Steckplätze und Peripheriegeräte sowie proprietäre Verbindungspunkte.
Win32_USBController Verwaltet die Funktionen eines USB-Controllers (Universal Serial Bus).
Win32_USBControllerDevice Verknüpft einen USB-Controller und die damit verbundenen CIM_LogicalDevice-Instanzen.
Win32_USBHub Stellt die Verwaltungseigenschaften eines USB-Hubs dar.
Netzwerkgeräteklassen
Die Unterkategorie „Netzwerkgeräte“ gruppiert Klassen, die den Netzwerkschnittstellen-Controller, seine Konfigurationen und seine Einstellungen darstellen.
Klassenbeschreibung
Win32_NetworkAdapter Stellt einen Netzwerkadapter auf einem Windows-System dar.
Win32_NetworkAdapterConfiguration Stellt die Attribute und Verhaltensweisen eines Netzwerkadapters dar. Es wird nicht garantiert, dass die Klasse nach der Ratifizierung der CIM-Netzwerkspezifikation der Distributed Management Task Force (DMTF) unterstützt wird.
Win32_NetworkAdapterSetting Verknüpft einen Netzwerkadapter und seine Konfigurationseinstellungen.
Leistungsklassen
Die Unterkategorie „Energie“ gruppiert Klassen, die Netzteile, Batterien und Ereignisse im Zusammenhang mit diesen Geräten darstellen.
Klassenbeschreibung
Win32_AssociatedBattery Verknüpft ein logisches Gerät und den von ihm verwendeten Akku.
Win32_Battery Stellt eine Batterie dar, die an das Computersystem angeschlossen ist.
Win32_CurrentProbe Stellt die Eigenschaften eines Stromüberwachungssensors (Amperemeter) dar.
Win32_PortableBattery Stellt die Eigenschaften eines tragbaren Akkus dar, wie er beispielsweise für einen Notebook-Computer verwendet wird.
Win32_PowerManagementEvent Stellt Energieverwaltungsereignisse dar, die sich aus Änderungen des Energiezustands ergeben.
Win32_UninterruptiblePowerSupply Stellt die Funktionen und Verwaltungskapazität einer unterbrechungsfreien Stromversorgung (USV) dar.
Win32_VoltageProbe Stellt die Eigenschaften eines Spannungssensors (elektronisches Voltmeter) dar.
Druckkurse
Die Unterkategorie „Drucken“ gruppiert Klassen, die Drucker, Druckerkonfigurationen und Druckaufträge darstellen.
Klassenbeschreibung
Win32_DriverForDevice Verknüpft einen Drucker mit einem Druckertreiber.
Win32_Printer Stellt ein an ein Windows-Computersystem angeschlossenes Gerät dar, das in der Lage ist, ein visuelles Bild auf einem Medium zu reproduzieren.
Win32_PrinterConfiguration Definiert die Konfiguration für ein Druckergerät.
Win32_PrinterController Verknüpft einen Drucker mit dem lokalen Gerät, mit dem der Drucker verbunden ist.
Win32_PrinterDriver Stellt die Treiber für eine Win32_Printer-Instanz dar.
Win32_PrinterDriverDll Verknüpft einen lokalen Drucker und seine Treiberdatei (nicht den Treiber selbst).
Win32_PrinterSetting Verknüpft einen Drucker und seine Konfigurationseinstellungen.
Win32_PrintJob Stellt einen von einer Windows-Anwendung generierten Druckauftrag dar.
Win32_TCPIPPrinterPort Stellt einen TCP/IP-Dienstzugriffspunkt dar.
Telefoniekurse
Die Unterkategorie „Telefonie“ gruppiert Klassen, die einfache alte Telefonmodemgeräte und die zugehörigen seriellen Verbindungen darstellen.
Klassenbeschreibung
Win32_POTSModem Stellt die Dienste und Merkmale eines POTS-Modems (Plain Old Telephone Service) auf einem Windows-System dar.
Win32_POTSModemToSerialPort Verknüpft ein Modem mit dem seriellen Port, den das Modem verwendet.
Video- und Monitorkurse
Die Unterkategorie „Video und Monitore“ gruppiert Klassen, die Monitore, Grafikkarten und die zugehörigen Einstellungen darstellen.
Klassenbeschreibung
Win32_DesktopMonitor Stellt den Typ des Monitors oder Anzeigegeräts dar, der an das Computersystem angeschlossen ist.
Win32_DisplayConfiguration Stellt Konfigurationsinformationen für das Anzeigegerät auf einem Windows-System dar. Diese Klasse ist veraltet. Verwenden Sie anstelle dieser Klasse die Eigenschaften in den Klassen Win32_VideoController, Win32_DesktopMonitor und CIM_VideoControllerResolution.
Win32_DisplayControllerConfiguration Stellt die Videoadapter-Konfigurationsinformationen eines Windows-Systems dar. Diese Klasse ist veraltet. Verwenden Sie anstelle dieser Klasse die Eigenschaften in den Klassen Win32_VideoController, Win32_DesktopMonitor und CIM_VideoControllerResolution.
Win32_VideoConfiguration Diese Klasse wurde aus Windows XP entfernt und spätere Versuche führen zu einem schwerwiegenden Fehler. Verwenden Sie anstelle dieser Klasse die in den Klassen Win32_VideoController, Win32_DesktopMonitor und CIM_VideoControllerResolution enthaltenen Eigenschaften.
Win32_VideoController Stellt die Funktionen und Verwaltungskapazität des Videocontrollers auf einem Windows-Computersystem dar.
Win32_VideoSettings Verknüpft einen Videocontroller und Videoeinstellungen, die darauf angewendet werden können.
Jede Klasse verfügt über eine entsprechende Datenstruktur, z
Grafikkarte
Klasse Win32_VideoController: CIM_PCVideoController
{
uint16 AcceleratorCapabilities[];
string AdapterCompatibility;
stringAdapterDACType;
uint32 AdapterRAM;
uint16 Verfügbarkeit;
string CapabilityDescriptions[];
string Beschriftung;
uint32 ColorTableEntries;
uint32 ConfigManagerErrorCode;
boolean ConfigManagerUserConfig;
string CreationClassName;
uint32 CurrentBitsPerPixel;
uint32 CurrentHorizontalResolution;
uint64 CurrentNumberOfColors;
uint32 CurrentNumberOfColumns;
uint32 CurrentNumberOfRows;
uint32 CurrentRefreshRate;
uint16 CurrentScanMode;
uint32 CurrentVerticalResolution;
Zeichenfolge Beschreibung;
string DeviceID;
uint32 DeviceSpecificPens;
uint32 DitherType;
datetime DriverDate;
string DriverVersion;
boolean ErrorCleared;
string ErrorDescription;
uint32 ICMIntent;
uint32 ICMMethod;
string InfFilename;
string InfSection;
datetime InstallDate;
string InstalledDisplayDrivers;
uint32 LastErrorCode;
uint32 MaxMemorySupported;
uint32 MaxNumberControlled;
uint32 MaxRefreshRate;
uint32 MinRefreshRate;
boolean Monochrom;
Zeichenfolgenname;
uint16 NumberOfColorPlanes;
uint32 NumberOfVideoPages;
string PNPDeviceID;
uint16 PowerManagementCapabilities[];
boolean PowerManagementSupported;
uint16 ProtocolSupported;
uint32 ReservedSystemPaletteEntries;
uint32 SpecificationVersion;
Zeichenfolge Status;
uint16 StatusInfo;
string SystemCreationClassName;
string SystemName;
uint32 SystemPaletteEntries;
datetime TimeOfLastReset;
uint16 VideoArchitecture;
uint16 VideoMemoryType;
uint16 VideoMode;
string VideoModeDescription;
string VideoProcessor;
};
Soundkarte usw.
Klasse Win32_SoundDevice: CIM_LogicalDevice
{
uint16 Verfügbarkeit;
string Beschriftung;
uint32 ConfigManagerErrorCode;
boolean ConfigManagerUserConfig;
string CreationClassName;
Zeichenfolge Beschreibung;
string DeviceID;
uint16 DMABufferSize;
boolean ErrorCleared;
string ErrorDescription;
datetime InstallDate;
uint32 LastErrorCode;
Saitenhersteller;
uint32 MPU401Adresse;
Zeichenfolgenname;
string PNPDeviceID;
uint16 PowerManagementCapabilities[];
boolean PowerManagementSupported;
string Produktname;
Zeichenfolge Status;
uint16 StatusInfo;
string SystemCreationClassName;
string SystemName;
};
Klasse Win32_PrintJob: CIM_Job
{
string Beschriftung;
string DataType;
Zeichenfolge Beschreibung;
Zeichenfolge Dokument;
string DriverName;
datetime ElapsedTime;
string HostPrintQueue;
datetime InstallDate;
uint32 JobId;
string JobStatus;
Zeichenfolgenname;
string Benachrichtigen;
String-Besitzer;
uint32 PagesPrinted;
String-Parameter;
string PrintProcessor;
uint32 Priorität;
uint32 Größe;
datetime StartTime;
Zeichenfolge Status;
uint32 StatusMask;
datetime TimeSubmitted;
uint32 TotalPages;
datetime UntilTime;
};
wie
Setze wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate} _).
InstancesOf(Win32_PrintJob)
Sie können Informationen wie das Drucken von Aufgabenlisten abrufen
Bei VB wird die API hauptsächlich zum Abrufen von Systemhardware- und Softwareinformationen verwendet. Jetzt können wir WMI verwenden, um unsere Ziele schnell zu erreichen. Beispielsweise wird das Abrufen von Treiber-/Grafikkarten-/freigegebenen Informationen usw. bequemer und effektiver.