Freigeben über


Instrumentieren von .NET Framework-Anwendungen mit System.Management

Das Ziel des System.Management.Instrumentation-Namespace besteht darin, den Aufwand, der für die Aktivierung einer Anwendung für die Verwaltung benötigt wird, zu minimieren. Der Namespace vereinfacht darüber hinaus das Offenlegen von Ereignissen und Daten sowie die Nutzung der Beziehungen zwischen Verwaltungsobjekten.

Einer der Hauptvorteile von WMI besteht darin, dass Entwickler über eine allgemeine Architektur auf Informationen in verschiedenen Quellen zugreifen können. Bei der Quelle dieser Informationen kann es sich um eine Hardwarekomponente, das Betriebssystem oder eine Softwareanwendung handeln. Die von der Datenquelle bereitgestellten Informationen werden als Instrumentation bezeichnet. Der Zweck dieser Instrumentation ähnelt sehr stark den Funktionen der Instrumententafel im Armaturenbrett eines Autos. In jedem Auto befinden sich verschiedene Messinstrumente, über die Sie die Werte bestimmter Komponenten überwachen können (z. B. die Benzinanzeige), sowie verschiedene Anzeigen, die Ihnen das Auftreten bestimmter Ereignisse melden (z. B. der Alarm bei einer nicht richtig geschlossenen Tür). Alle diese Instrumente ermöglichen es Ihnen, Entscheidungen darüber zu fällen, wie Sie das Auto fahren und warten. Computerkomponenten, die vergleichbare Instrumentationen zur Verfügung stellen, ermöglichen einer Verwaltungssoftware das Diagnostizieren und Beheben von Problemen in der Computerumgebung eines Unternehmens.

Der von Verwaltungsanwendungen, wie Microsoft Operations Manager, Microsoft Application Center und vielen anderen Verwaltungstools von Drittanbietern verwendete Instrumentationsstandard ist WMI. Das Windows-Betriebssystem ist zwar mit WMI instrumentiert, doch wenn Sie als Entwickler eigene Produkte zusammen mit Verwaltungstools verwenden möchten, müssen Sie eine Instrumentation im eigenen Code zur Verfügung stellen. Der System.Management.Instrumentation-Namespace ermöglicht es den Entwicklern von verwaltetem Code, Informationen auf WMI-fähigen Tools aufzurufen.

Das Anzeigen von Anwendungsobjekten für die Verwaltung sollte für .NET Framework-Entwickler intuitiv sein. Das WMI-Schema ist objektorientiert und weist viele übereinstimmende Merkmale mit den NET Framework-Metadaten auf: Codeklassen werden Schemaklassen zugeordnet, Eigenschaften auf Codeobjekten werden Eigenschaften auf WMI-Objekten zugeordnet usw. Daher ist es einfach, Anwendungen mit verwaltetem Code so zu instrumentieren, dass die Verwaltbarkeit ermöglicht wird. Entwickler, die mit dem Schreiben von verwaltetem Code vertraut sind, besitzen bereits die Fähigkeiten, die für die Instrumentation mit Hilfe von WMI erforderlich sind. Es sind keine weiteren Kenntnisse erforderlich, insbesondere nicht über die WMI-Client-API.

Anwendungsinformationen für die Verwaltung werden vorwiegend offen gelegt, indem Deklarationen erstellt werden, d. h., es ist nicht erforderlich, zusätzlich umfangreichen Code zu schreiben. Der Entwickler markiert die Objekte als verwaltbar, indem er die .NET Framework-Attributierungsfunktionen verwendet und definiert, wie diese im System.Management.Instrumentation-Schema zuzuordnen sind. Darüber hinaus kann der Entwickler die Klasse von einer allgemeinen System.Management.Instrumentation-Schemaklasse ableiten. In diesem Fall ist die Attributierung und die Zuordnung bereits erfolgt.

Nachdem die Anwendung instrumentiert wurde, können Objekte und Ereignisse mit WMI und den durch die umfangreiche WMI-Kundenbasis entwickelten Verwaltungsanwendungen (z. B. Computer Associates, Tivoli Systems, Inc., BMC Software, Hewlett-Packard usw.) ermittelt, überwacht und konfiguriert werden. Die Ereignisse mit verwaltetem Code, die für die Verwaltung markiert wurden, werden automatisch als WMI-Ereignisse ausgelöst.

Die Sicherheitsunterstützung in System.Management ist mit der Sicherheit in WMI eng verknüpft. In WMI wird der Clientzugriff auf Informationen über namespacebasierte Sicherheit gesteuert.

Bei der Entwicklung werden die Instrumentationsdaten aus praktischen Gründen im Stamm-\Standardnamespace veröffentlicht, sofern sie nicht anderweitig durch das Instrumented-Attribut in der Assembly angegeben werden. Es wird jedoch empfohlen, diese Standardvorgabe außer Kraft zu setzen und einen spezifischen Namespace für die entsprechende Anwendung zu definieren, um eine unabhängige Verwaltung zu ermöglichen.

Folgende Vorgehensweise wird empfohlen:

  • Erstellen Sie einen getrennten Namespace für die entsprechende Assembly, Gruppe von Assemblies oder Anwendung mit ähnlichen Sicherheitsanforderungen. Verwenden Sie in der Namespacedefinition den Firmennamen und den Softwareproduktnamen, damit die Definition eindeutig ist. Die Instrumentation der Anwendung könnte beispielsweise im Namespace root\<Name der Firma>\<Name des Produkts> veröffentlicht werden. Die Namespacehierarchie kann auch Versionsinformationen enthalten. (Weitere Informationen zur Versionskontrolle finden Sie im Abschnitt zur Schemaregistrierung.)
  • Administratoren können die WMI-Steuerung verwenden, um die Sicherheitseinschränkungen für einen spezifischen Namespace anzugeben. Klicken Sie zum Aufrufen der WMI-Steuerung mit der rechten Maustaste auf Arbeitsplatz, wählen Sie Verwalten, um die MMC-Konsole Computerverwaltung zu starten, erweitern Sie anschließend den Knoten Dienst und Anwendungen, wählen Sie WMI-Steuerung, klicken Sie mit der rechten Maustaste, und wählen Sie Eigenschaften. Klicken Sie anschließend auf die Registerkarte Sicherheit, um die Sicherheitseinstellungen für den Namespace der Anwendung anzuzeigen bzw. zu ändern.

Siehe auch

Verwalten von Anwendungen unter Verwendung von WMI | Klassen und Zuordnung in CLI und WMI | Offenlegen von Verwaltungsereignissen | Verfügbarmachen von Verwaltungsdaten | Vererbung | Registrieren des Schemas für eine instrumentierte Anwendung