Home > Allgemein > WMI-Informationen mit C# auslesen

WMI-Informationen mit C# auslesen

Ich brauchte für den MAC-Switcher eine einfache Möglichkeit den Namen der Netzwerkverbindungen wie er in der Systemsteuerung angezeigt wird auszulesen. Mit Hilfe von WMI ist dies unglaublich einfach.

  1. Zunächst muss man wissen was man sucht. Was WMI alles zur Verfügung stellt kann man hier in der msdn nachlesen.
  2. Dann baut man einen string zusammen der die Form einer SQL-Query hat.
  3. Als nächstes benutzt man einen ManagementObjectSearcher um die Daten zu suchen. Dieser gibt eine Collection mit den gefundenen ManagementObject-Objekten zurück. Über diese kann man mit dem Namen gewünschten Eigenschaft zugreifen.

Hier ein Beispiel um den Namen, die ID und die MAC-Adresse aller Netzwerkkarten (virtuell oder nicht) in einer MessageBox anzeigen zu lassen:

string query = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID IS NOT null";
ManagementObjectSearcher sucher = new ManagementObjectSearcher(query);

string s = "";
foreach (ManagementObject m in sucher.Get())
{
    // NetConnectionID Name der Karte wie in der Systemsteuerung
    // DeviceID ID HardwareID wie in der Registry
    s += m["NetConnectionID"] +
        " ID " + m["DeviceID"] +
        " MAC " + m["MACAddress"] + "\n";
}

MessageBox.Show(s);
  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks