|
Liste aller Codebeispiele
Ein Beispiel zum Einsatz der Klasse System.Management.ManagementObject aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Die Verwendung von WMI beginnt mit der Bindung eines Meta-Objekts (ManagementObject oder ManagementClass) an ein WMI-Objekt oder eine WMI-Klasse. Das WMI-Objekt bzw. die -Klasse wird über einen WMI-Pfad spezifiziert. Dieser Pfad hat die Form:
\\Server\Namespace:Class.Key1="wert1",Key2="Wert2"
Mit Ausnahme von Class sind alle anderen Teile optional.
Bitte beachten Sie, dass im Gegensatz zur Verwendung in COM die COM-Moniker-ID "WinMgmts:" nicht mehr vor den Pfad gehört.
Ein solcher Pfad kann dem Konstruktor der Klassen ManagementObject und ManagementClass übergeben werden. Damit existiert die Bindung dann zunächst nur auf dem WMI-Client. Die Anfrage an das lokale oder entfernte WMI-Repository wird erst ausgeführt beim ersten Zugriff auf ein WMI-Attribut, beim ersten Aufruf einer WMI-Methode oder wenn explizit die Get()-Methode des Meta-Objekts aufgerufen wird. Erst dann wird festgestellt, ob die angeforderte WMI-Klasse bzw. das angeforderte WMI-Objekt existiert. Lediglich grundsätzliche Fehler in der Syntax des Pfades werden direkt bei der Instanziierung erkannt.
Programmcodebeispiele Visual Basic .NET (VB.NET)
Dim mo As Management.ManagementObject
Dim mc As Management.ManagementClass
' --- Bindung an eine lokale WMI-Klasse
mc = New ManagementClass("Win32_LogicalDisk")
mc.Get()
out("Gebunden an: " & mc.ToString)
' --- Bindung an ein entferntes WMI-Objekt
mo = New Management.ManagementObject _
("\\minbar\root\cimv2:Win32_LogicalDisk.DeviceID='c:'")
mo.Get()
out("Gebunden an: " & mo.ToString)
Programmcodebeispiele CSharp (C#)
using System;
using System.Management;
namespace FCL_Buch._System_Management {
public class Samples_WMI_Allgemein {
public void WMI_Bindung() {
// Bindung an eine lokale WMI-Klasse
ManagementClass mc = new ManagementClass("Win32_LogicalDisk");
mc.Get();
FclOutput.PrintOut("Gebunden an: " + mc.ToString());
// Bindung an ein entferntes WMI-Objekt
ManagementObject mo = new ManagementObject(@"\\Dagobar\root\cimv2:Win32_LogicalDisk.DeviceID='c:'");
mo.Get();
FclOutput.PrintOut("Gebunden an: " + mo.ToString());
// Bindung mit Optionen
// Optionen definieren
ConnectionOptions opt = new ConnectionOptions();
opt.Username = "dagobar\fe";
opt.Password = "xxx";
opt.Authentication = AuthenticationLevel.PacketPrivacy;
opt.Impersonation = ImpersonationLevel.Impersonate;
opt.Timeout = new TimeSpan(0, 0, 4); // 4 Sekunden
// Entfernten Computer definieren
ManagementScope scope = new ManagementScope(@"\\minbar\root\cimv2");
scope.Options = opt;
// Objekt definieren
ManagementPath path = new ManagementPath("Win32_LogicalDisk.DeviceID='c:'");
// Objekt binden
mo = new ManagementObject(scope, path, null);
mo.Get();
FclOutput.PrintOut("Gebunden an: " + mo.ToString());
}
}
}
Querverweise
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.Management'
Übersicht über den FCL-Namensraum 'System.Management'
Portal dotnetframework.de
|