Warum sollte ich Powershell über WMI wählen, um Management-Schnittstellen zu entwickeln?

StackOverflow https://stackoverflow.com/questions/259020

Frage

Wir diskutieren Entwicklung einer verbesserten Management-Infrastruktur für unser verteilten System. Wir verwenden COM, Web Services und .NET-Komponenten. Da wir auf Microsoft Windows Server XP basiert sind / 2003, ich denke, wir haben grundsätzlich zwei Möglichkeiten:

  1. Powershell-Cmdlets
  2. WMI-Klassen System.Management und WMI-Provider für nativen Code (Klasse, Instanz, Methode, Ereignis)

Warum sollten wir über Powershell WMI wählen?

War es hilfreich?

Lösung

würde ich Powershell über WMI aus den folgenden Gründen wählen:

  1. Schreiben eines Cmdlets ist nur eine .NET-Klasse hinzufügen.
  2. Die Powershell-Laufzeit stellt Parsing-Befehlszeile eingebaut.
  3. ermöglicht Schreiben Sie Ihre Management-Schnittstelle in Powershell-Administratoren die Möglichkeit, die Verwaltung Ihrer Anwendung mit dem von anderen Anwendungen und Diensten (wie Exchange, Active Directory oder SQL Server).
  4. zu integrieren
  5. Die Umgebung Powershell macht die Pipeline Administratoren zur Verfügung, Managementaufgaben ermöglicht für Ihre Anwendung effizienter durchgeführt werden.
  6. Auffindbarkeit. Powershell über Get-Command, Get-Member, und Get-Help bietet eine extrem Erkennbar Umgebung für Administratoren arbeiten, was zu einer kürzeren Lernkurve zu Ihrer Anwendung erhalten.

Auch wenn Sie den WMI-Weg gehen, tut Powershell-Unterstützung haben für mit WMI arbeiten (obwohl es ein paar Pannen sind).

Für mich ist Powershell der beste Weg, um eine Aufgabe Schnittstelle zu einem anwendungsorientierten Oberfläche. Mit der Unterstützung von Microsoft Powershell hat, bietet es ist und bleibt eine konsistente Schnittstelle für die Verwaltung von Anwendungen und Service im gesamten Unternehmen sein.

Mein Job ist als Admin und ich schiebe alle Anbieter mit denen ich arbeite auf ein Powershell-Management-API Oberflächen, da dies die Lernkurve und Kontext macht für Schaltanwendungen wesentlich geringer zu verwalten. Auf der Entwicklungsseite habe ich geschrieben (und immer noch bin auf) eine Reihe von Powershell-Cmdlets für ein Open-Source-Produkt mit denen ich arbeite und bin auf einem anderen Satz für eine separate Anwendung.

Andere Tipps

Jeffrey Snover beantwortet die "warum Powershell" hier . Der Beitrag ist im Rahmen von SQL, aber sehr viel hier anwendbar.

Ich bin mir nicht sicher, ob ich die Entscheidung treffen würde. Es ist genau das nicht entweder-oder ... können Sie wählen, beides zu tun.

WMI kann durch eine Reihe von verschiedenen Dingen verbraucht werden, nicht nur Powershell. Warum schreiben Sie nicht Ihre Management Instrumentation in Powershell, und dann wickeln, dass WMI in einigen aufgabenorientierte Cmdlets, um die Dinge einfacher für Administratoren? Das ist, was einige MS-Produktteams zu tun wählen, vor allem, wenn sie andere Verbraucher von WMI sie wollen weiter zu unterstützen.

Wenn Sie bereits geeigneten .NET-Code haben, dass in ein Cmdlets drehen kann schneller sein, als es in einen WMI-Anbieter drehen. Wenn das der Fall ist, und die Geschwindigkeit ist ein Problem, mit dem, was ist einfacher. Aber egal, was Sie tun, können Sie immer wickeln Sie es in einem Powershell-Cmdlets für Administratoren, die auf jeden Fall ist die empfohlene Vorgehensweise.

Nicht sicher, dass diese mit den Informationen beantwortet werden können, die Sie bisher zur Verfügung gestellt haben. Mein Bauchgefühl wäre, dass Sie Powershell verwenden sollte, da es klingt wie Sie bereits einige .NET-Code haben. Aber es ist wirklich hängt nur auf genau das, was Sie zu tun versuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top