Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein weiteres Feature, das die Verwaltungsinstrumentation für Anwendungsentwickler vereinfacht, ist die Unterstützung von Objekten mit starkem Typ. Um die Bedürfnisse der Benutzer bezüglich der Erweiterbarkeit zu erfüllen, werden WMI-Objekte in der Regel spät gebunden, wodurch eine strenge Typisierung nicht erzwungen wird. In der .NET Framework-Umgebung stellt WMI die Möglichkeit bereit, früh gebundene Wrapper für WMI-Objekte zu generieren. Dies ermöglicht es den Anwendungen, diese Wrapper im Code zu verwenden und die Vorteile aller verfügbaren unterstützenden Features von Microsoft Visual Studio für Objekte mit starkem Typ zu nutzen (beispielsweise IntelliSense und Objektbrowser). Ein Wrapper mit starkem Typ kann durch eine der folgenden Methoden erzeugt werden:
Verwenden Sie das Dienstprogramm MgmtClassGen.exe in .NET Framework SDK.
Weitere Informationen hierzu finden Sie unter Management Strongly Typed Class Generator-Tool (mgmtclassgen.exe).
Verwendung der Verwaltungserweiterung des Visual Studio .NET-Server-Explorers, die den Wrapper beim Ziehen einer Verwaltungsklasse in den Designer automatisch erzeugt.
Programmgesteuert, durch die System.Management.ManagementClass.GetStronglyTypedClassCode()-Methoden.
Die Wrapper werden als Klassen mit verwaltetem Code implementiert und bieten somit eine Unterstützung für mehrere Sprachen, d. h., sie können mit jeder beliebigen Programmiersprache verwendet werden.
Das folgende Beispiel basiert auf dem Beispiel unter Zugreifen auf Verwaltungsdaten mit Hilfe von System.Management, enthält aber zusätzlich die Service-Klasse mit starkem Typ. Diese Klasse muss vor dem Ausführen des Beispiels generiert werden:
C:> managementclassgen Win32_Service /L cs
(Verwenden Sie /L vb für Visual Basic-Projekte.)
Der Generator gibt die Codedatei service.cs aus, die Sie dann mit dem nachfolgend stehenden Code dem Projekt hinzufügen müssen.
Beachten Sie die Verwendung der Service-Klasse mit starkem Typ in der foreach-Anweisung (anstelle der allgemeinen ManagementObject-Klasse) sowie den Zugriff auf die zurückgegebenen Objekte mit Hilfe der vereinfachten Standardschreibweise mit Punkten:
using System;
using ROOT.CIMV2.Win32;
// Contains the strongly-typed generated class "Service"
// in ROOT.CIMV2.Win32 namespace
class Sample {
// Enumerate instances of Win32_Service class
void EnumerateServices() {
Console.WriteLine("List services and their state");
foreach(Service ser in Service.GetInstances())
Console.WriteLine(
"Service: "+ ser.Name + " is " + ser.State);
}
public static void Main(string[] args) {
Sample test = new Sample();
test.EnumerateServices();
return;
}
}
[Visual Basic]
Imports System
Imports Microsoft.CIMv2.Win32
Public Function EnumerateServices
Console.WriteLine("List services and their state");
'Request the collection of services
Dim searcher As New ManagementObjectSearcher("Win32_Service")
' Enumerate through the collection
Dim serv As Service
For Each serv In searcher.Get()
Console.WriteLine("Variable : {0}, Value = {1}", _
serv.Name, serv.VariableValue)
Next serv
End Function
Siehe auch
Zugreifen auf Verwaltungsdaten mit Hilfe von System.Management | Abrufen von Verwaltungsobjektauflistungen | Abfragen von Verwaltungsdaten | Abonnieren und Verwenden von Verwaltungsereignissen | Ausführen von Methoden für Verwaltungsobjekte | Remote- und Verbindungsoptionen