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.
Dieser Programmiererleitfaden richtet sich an Entwickler, die daran interessiert sind, eine Kommandozeilenverwaltungsumgebung für Systemadministratoren bereitzustellen. Windows PowerShell bietet Ihnen eine einfache Möglichkeit, Management-Befehle zu erstellen, die .NET-Objekte bereitstellen, während Windows PowerShell den Großteil der Arbeit für Sie erledigt.
Bei der traditionellen Befehlsentwicklung muss man einen Parameterparser, einen Parameterbinder, Filter und alle weiteren Funktionen schreiben, die von jedem Befehl bereitgestellt werden. Windows PowerShell bietet Folgendes, um es Ihnen zu erleichtern, Befehle zu schreiben:
Eine leistungsstarke Windows-PowerShell-Laufzeit (Ausführungs-Engine) mit eigenem Parser und einem Mechanismus zur automatischen Bindung von Befehlsparametern.
Werkzeuge zum Formatieren und Anzeigen von Befehlsergebnissen mit einem Kommandozeilen-Interpreter (CLI).
Unterstützung für hohe Funktionalitätsniveaus (über Windows-PowerShell-Anbieter), die den Zugriff auf gespeicherte Daten erleichtern.
Zu geringen Kosten können Sie ein .NET-Objekt mit einem umfangreichen Befehl oder einer Reihe von Befehlen darstellen, die dem Administrator ein vollständiges Kommandozeilen-Erlebnis bieten.
Der nächste Abschnitt behandelt die wichtigsten Windows-PowerShell-Konzepte und -Begriffe. Machen Sie sich mit diesen Konzepten und Begriffen vertraut, bevor Sie mit der Entwicklung beginnen.
Über Windows PowerShell
Windows PowerShell definiert mehrere Arten von Befehlen, die Sie in der Entwicklung verwenden können. Diese Befehle umfassen: Funktionen, Filter, Skripte, Aliase und ausführbare Dateien (Anwendungen). Der Hauptbefehlstyp, der in diesem Leitfaden behandelt wird, ist ein einfacher, kleiner Befehl, der als "Cmdlet" bezeichnet wird. Windows PowerShell stellt eine Reihe von Cmdlets bereit und unterstützt die vollständige Anpassung von Cmdlets, die an Ihre Umgebung angepasst wird. Die Windows-PowerShell-Laufzeit verarbeitet alle Befehlstypen genauso wie die Cmdlets, indem sie Pipelines verwendet.
Zusätzlich zu Befehlen unterstützt Windows PowerShell verschiedene anpassbare Windows-PowerShell-Anbieter, die bestimmte Sätze von Cmdlets bereitstellen. Die Shell arbeitet innerhalb der von Windows PowerShell bereitgestellten Host-Anwendung (powershell.exe), ist aber ebenso zugänglich von einer eigenen Host-Anwendung aus, die Sie entwickeln können, um spezifische Anforderungen zu erfüllen. Weitere Informationen finden Sie unter How Windows PowerShell Works.
Windows PowerShell Cmdlets
Ein Cmdlet ist ein leichter Befehl, der in der Windows-PowerShell-Umgebung verwendet wird. Die Windows-PowerShell-Laufzeit ruft diese Cmdlets im Kontext von Automatisierungsskripten auf, die in der Kommandozeile bereitgestellt werden, und die Windows-PowerShell-Laufzeit ruft sie außerdem programmatisch über Windows-PowerShell-APIs auf.
Weitere Informationen zu Cmdlets finden Sie unter Writing a Windows PowerShell Cmdlet.
Windows PowerShell Providers
Bei administrativen Aufgaben muss der Benutzer möglicherweise Daten prüfen, die in einem Datenspeicher gespeichert sind (zum Beispiel im Dateisystem, im Windows-Register oder in einem Zertifikatsspeicher). Um diese Operationen zu erleichtern, definiert Windows PowerShell ein Modul namens Windows PowerShell Provider, das verwendet werden kann, um auf einen bestimmten Datenspeicher zuzugreifen, wie zum Beispiel die Windows-Registry. Jeder Anbieter unterstützt eine Reihe verwandter CMDLETs, um dem Benutzer eine symmetrische Ansicht der Daten im Speicher zu bieten.
Windows PowerShell stellt mehrere Standard-Windows-PowerShell-Anbieter bereit. Zum Beispiel unterstützt der Registry-Anbieter die Navigation und Manipulation der Windows-Registry. Registrierungsschlüssel werden als Elemente dargestellt, und Registrierungswerte werden als Eigenschaften behandelt.
Wenn Sie einen Datenspeicher bereitstellen, auf den der Benutzer Zugriff haben muss, müssen Sie möglicherweise Ihren eigenen Windows-PowerShell-Anbieter schreiben, wie in Creating Windows PowerShell Providers beschrieben. Weitere Informationen zu Windows-PowerShell-Anbietern finden Sie unter How Windows PowerShell Works.
Host-Anwendung
Windows PowerShell enthält die Standard-Hostanwendung powershell.exe, eine Konsolenanwendung, die mit dem Benutzer interagiert und die Windows-PowerShell-Laufzeit über ein Konsolenfenster hostet.
Nur selten musst du deine eigene Host-Anwendung für Windows PowerShell schreiben, obwohl Anpassungen unterstützt werden. Ein Fall, in dem Sie eine eigene Anwendung benötigen, ist, wenn Sie eine GUI-Schnittstelle benötigen, die reichhaltiger ist als die Schnittstelle der Standard-Host-Applikation. Vielleicht möchtest du auch eine benutzerdefinierte Anwendung, wenn du deine GUI auf der Kommandozeile basierst. Weitere Informationen finden Sie unter Wie man eine Windows-PowerShell-Hostanwendung erstellt.
Windows PowerShell Runtime
Die Windows-PowerShell-Laufzeit ist die Ausführungs-Engine, die die Befehlsverarbeitung implementiert. Sie umfasst die Klassen, die die Schnittstelle zwischen der Host-Anwendung und den Windows-PowerShell-Befehlen und -Providern bereitstellen. Die Windows-PowerShell-Laufzeit wird als Runspace-Objekt für die aktuelle Windows-PowerShell-Sitzung implementiert, die die Betriebsumgebung ist, in der die Shell und die Befehle ausgeführt werden. Für praktische Details siehe Wie Windows PowerShell funktioniert.
Windows PowerShell Language
Die Windows-PowerShell-Sprache bietet Skriptfunktionen und Mechanismen zum Aufrufen von Befehlen. Für vollständige Skriptinformationen siehe die Windows PowerShell Language Reference, die mit Windows PowerShell ausgeliefert wurde.
Erweitertes Typsystem (Extended Type System, ETS)
Windows PowerShell bietet Zugriff auf eine Vielzahl verschiedener Objekte, wie .NET- und XML-Objekte. Daher verwendet die Shell ihr erweitertes Typsystem (ETS), um für alle Objekttypen eine gemeinsame Abstraktion darzustellen. Die meisten ETS-Funktionen sind für den Benutzer transparent, aber der Skript- oder .NET-Entwickler nutzt sie für folgende Zwecke:
Betrachten einer Teilmenge der Mitglieder bestimmter Objekte. Windows PowerShell bietet eine "angepasste" Ansicht mehrerer spezifischer Objekttypen.
Hinzufügen von Mitgliedern zu bestehenden Objekten.
Zugang zu serialisierten Objekten.
Individuelle Objekte schreiben.
Mit ETS können Sie flexible neue "Typen" erstellen, die mit der Windows-PowerShell-Sprache kompatibel sind. Wenn Sie ein .NET-Entwickler sind, können Sie mit Objekten arbeiten, die dieselbe Semantik verwenden wie die Windows-PowerShell-Sprache für Scripting, zum Beispiel um zu bestimmen, ob ein Objekt auf
trueauswertet.Für weitere Informationen über ETS und wie Windows PowerShell Objekte verwendet, siehe Windows PowerShell Object Concepts.
Programmierung für Windows PowerShell
Windows PowerShell definiert seinen Code für Befehle, Provider und andere Programmmodule mit dem .NET Framework. Sie sind nicht auf die Nutzung von Microsoft Visual Studio beschränkt, um benutzerdefinierte Module für Windows PowerShell zu erstellen, obwohl die in diesem Leitfaden bereitgestellten Beispiele in diesem Tool bekannt sind. Du kannst jede .NET-Sprache verwenden, die Klassenvererbung und die Verwendung von Attributen unterstützt. In einigen Fällen erfordern Windows-PowerShell-APIs, dass die Programmiersprache auf generische Typen zugreifen kann.
Programmiererreferenz
Zur Orientierung bei der Entwicklung für Windows PowerShell siehe das Windows PowerShell SDK.
Einstieg in die Nutzung von Windows PowerShell
Weitere Informationen zum Beginn der Nutzung der Windows-PowerShell-Shell finden Sie unter "Getting Started with Windows PowerShell ", das mit Windows PowerShell ausgeliefert wurde. Ein Quick Reference Tri-Fold-Dokument wird ebenfalls als Einführung für die Verwendung von CMDLETS bereitgestellt.
Inhalt dieses Leitfadens
| Thema | Definition |
|---|---|
| Wie man eine Windows-PowerShell-Hostanwendung erstellt | Dieser Abschnitt beschreibt, wie man eine Host-Anwendung schreibt, die einen Runspace manipuliert, und wie man eine Host-Anwendung schreibt, die ihren eigenen benutzerdefinierten Host implementiert. |
| Wie man einen Windows-PowerShell-Snap-in erstellt | Dieser Abschnitt beschreibt, wie man einen Snap-in erstellt, der alle CMDLETS und Provider in einer Assembly registriert und wie man einen benutzerdefinierten Snap-in erstellt. |
| Windows PowerShell Concepts | Dieser Abschnitt enthält konzeptionelle Informationen, die Ihnen helfen, Windows PowerShell aus der Sicht eines Entwicklers zu verstehen. |