Freigeben über


Windows PowerShell Programmer's Guide

Dieses Handbuch richtet sich an Entwickler, die eine Befehlszeilenverwaltungsumgebung für Systemadministratoren bereitstellen möchten. Windows PowerShell bietet Ihnen eine einfache Möglichkeit, Verwaltungsbefehle zu erstellen, die .NET-Objekte verfügbar machen, während Windows PowerShell die meiste Arbeit für Sie erledigen kann.

Bei der herkömmlichen Befehlsentwicklung müssen Sie einen Parameterparser, einen Parameterbinder, Filter und alle anderen Funktionen schreiben, die von den einzelnen Befehlen verfügbar gemacht werden. Windows PowerShell bietet Folgendes, um Ihnen das Schreiben von Befehlen zu erleichtern:

  • Eine leistungsstarke Windows PowerShell Runtime (Ausführungs-Engine) mit eigenem Parser und einem Mechanismus zum automatischen Binden von Befehlsparametern.

  • Hilfsprogramme zum Formatieren und Anzeigen von Befehlsergebnissen mithilfe eines Befehlszeileninterpreter (CLI).

  • Unterstützung für hohe Funktionalitätsebenen (über Windows PowerShell Anbieter), die den Zugriff auf gespeicherte Daten erleichtern.

    Mit geringen Kosten können Sie ein .NET-Objekt durch einen umfangreichen Befehl oder eine Reihe von Befehlen darstellen, die dem Administrator eine vollständige Befehlszeilenerfahrung bieten.

    Im nächsten Abschnitt werden die wichtigsten Windows PowerShell Konzepte und Begriffe behandelt. Machen Sie sich mit diesen Konzepten und Begriffen vertraut, bevor Sie mit der Entwicklung beginnen.

Informationen zu Windows PowerShell

Windows PowerShell definiert verschiedene Typen von Befehlen, die Sie in der Entwicklung verwenden können. Zu diesen Befehlen gehören Funktionen, Filter, Skripts, Aliase und ausführbare Dateien (Anwendungen). Der in dieser Anleitung beschriebene Hauptbefehlstyp ist ein einfacher, kleiner Befehl, der als "Cmdlet" bezeichnet wird. Windows PowerShell bietet eine Reihe von Cmdlets und unterstützt die Cmdlet-Anpassung vollständig für Ihre Umgebung. Die Windows PowerShell Runtime verarbeitet alle Befehlstypen genauso wie Cmdlets mithilfe von Pipelines.

Zusätzlich zu den Befehlen unterstützt Windows PowerShell verschiedene anpassbare Windows PowerShell Anbieter, die bestimmte Cmdlet-Sätze verfügbar machen. Die Shell wird innerhalb der Windows PowerShell bereitgestellten Hostanwendung (Windows PowerShell.exe) betrieben, ist aber über eine benutzerdefinierte Hostanwendung, die Sie entwickeln können, um bestimmte Anforderungen zu erfüllen, gleichermaßen zugänglich. Weitere Informationen finden Sie unter Funktionsweise von Windows PowerShell.

Windows PowerShell-Cmdlets

Ein Cmdlet ist ein einfacher Befehl, der in der Windows PowerShell Umgebung verwendet wird. Die Windows PowerShell Runtime ruft diese Cmdlets im Kontext von Automatisierungsskripts auf, die in der Befehlszeile bereitgestellt werden, und die Windows PowerShell Runtime ruft sie auch programmgesteuert über Windows PowerShell-APIs auf.

Weitere Informationen zu Cmdlets finden Sie unter Schreiben eines Windows PowerShell Cmdlets.

Windows PowerShell Anbieter

Beim Ausführen administrativer Aufgaben muss der Benutzer möglicherweise Daten untersuchen, die in einem Datenspeicher gespeichert sind (z. B. das Dateisystem, die Windows Registry oder ein Zertifikatspeicher). Um diese Vorgänge zu vereinfachen, definiert Windows PowerShell ein Modul namens Windows PowerShell Anbieter, der für den Zugriff auf einen bestimmten Datenspeicher verwendet werden kann, z. B. die Windows Registry. Jeder Anbieter unterstützt eine Reihe verwandter Cmdlets, um dem Benutzer eine symmetrische Ansicht der Daten im Speicher zu geben.

Windows PowerShell stellt mehrere Standardanbieter für Windows PowerShell bereit. Beispielsweise unterstützt der Registrierungsanbieter die Navigation und Bearbeitung der Windows Registry. Registrierungsschlüssel werden als Elemente dargestellt, und Registrierungswerte werden als Eigenschaften behandelt.

Wenn Sie einen Datenspeicher verfügbar machen, auf den der Benutzer zugreifen muss, müssen Sie möglicherweise Ihren eigenen Windows PowerShell-Anbieter schreiben, wie unter Erstellen von Windows PowerShell Providersbeschrieben. Weitere Informationen zuWindows PowerShell-Anbietern finden Sie unter Funktionsweise von Windows PowerShell.

Hostanwendung

Windows PowerShell enthält die Standardhostanwendung powershell.exe. Dabei handelt es sich um eine Konsolenanwendung, die mit dem Benutzer interagiert und die Windows PowerShell Runtime über ein Konsolenfenster hostet.

Nur selten müssen Sie Ihre eigene Hostanwendung für Windows PowerShell schreiben, obwohl die Anpassung unterstützt wird. Ein Fall, in dem Sie möglicherweise Eine eigene Anwendung benötigen, ist, wenn Sie eine GUI-Schnittstelle benötigen, die umfangreicher als die von der Standardhostanwendung bereitgestellte Schnittstelle ist. Möglicherweise möchten Sie auch eine benutzerdefinierte Anwendung verwenden, wenn Sie Ihre GUI über die Befehlszeile erstellen. Weitere Informationen finden Sie unter How to Create a Windows PowerShell Host Application.

Windows PowerShell Laufzeit

Die Windows PowerShell Runtime ist die Ausführungs-Engine, die die Befehlsverarbeitung implementiert. Sie enthält die Klassen, die die Schnittstelle zwischen der Hostanwendung und Windows PowerShell Befehlen und Anbietern bereitstellen. Die Windows PowerShell Runtime wird als Runspaceobjekt für die aktuelle Windows PowerShell Sitzung implementiert. Dies ist die Betriebsumgebung, in der die Shell und die Befehle ausgeführt werden. Operative Details finden Sie unter Funktionsweise von Windows PowerShell.

Windows PowerShell Sprache

Die Windows PowerShell-Sprache stellt Skriptfunktionen und Mechanismen zum Aufrufen von Befehlen bereit. Vollständige Skriptinformationen finden Sie in der mit Windows PowerShell ausgelieferten Windows PowerShell-Sprachreferenz.

Erweitertes Typsystem (Extended Type System, ETS)

Windows PowerShell bietet Zugriff auf eine Vielzahl verschiedener Objekte, z. B. .NET- und XML-Objekte. Daher verwendet die Shell ihr erweitertes Typsystem (Extended Type System, ETS), um eine gemeinsame Abstraktion für alle Objekttypen darzustellen. Die meisten ETS-Funktionen sind für den Benutzer transparent, aber das Skript oder der .NET-Entwickler verwendet sie für die folgenden Zwecke:

  • Anzeigen einer Teilmenge der Member bestimmter Objekte. Windows PowerShell bietet eine "angepasste" Ansicht mehrerer spezifischer Objekttypen.

  • Hinzufügen von Membern zu vorhandenen Objekten.

  • Zugriff auf serialisierte Objekte.

  • Schreiben benutzerdefinierter Objekte.

    Mit ETS können Sie flexible neue "Typen" erstellen, die mit der Windows PowerShell Sprache kompatibel sind. Wenn Sie .NET-Entwickler sind, können Sie mit Objekten arbeiten, die die gleiche Semantik wie die Windows PowerShell Sprache für die Skripterstellung verwenden, z. B. um zu bestimmen, ob ein Objekt als ausgewertet true wird.

    Weitere Informationen zu ETS und zur Verwendung von Objekten durch Windows PowerShell finden Sie unter Windows PowerShell Objektkonzepte.

Programmieren für Windows PowerShell

Windows PowerShell definiert den Code für Befehle, Anbieter und andere Programmmodule mithilfe der .NET Framework. Sie sind nicht auf die Verwendung von Microsoft Visual Studio bei der Erstellung von benutzerdefinierten Modulen für Windows PowerShell beschränkt, obwohl die in diesem Leitfaden bereitgestellten Beispiele in diesem Tool bekannt sind. Sie können eine beliebige .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.

Programmierreferenz

Referenz zum Entwickeln für Windows PowerShell finden Sie im Windows PowerShell SDK.

Erste Schritte Verwenden von Windows PowerShell

Weitere Informationen zum Einstieg in die Verwendung der Windows PowerShell Shell finden Sie im Erste Schritte mit Windows PowerShell, die mit Windows PowerShell ausgeliefert werden. Ein Tri fold-Dokument mit Kurzverweis wird auch als Einführung für die Verwendung von Cmdlets bereitgestellt.

Inhalt dieses Handbuchs

Thema Definition
Erstellen eines Windows PowerShell-Anbieters In diesem Abschnitt wird beschrieben, wie Sie einen Windows PowerShell-Anbieter für Windows PowerShell erstellen.
Erstellen einer Windows PowerShell-Hostanwendung In diesem Abschnitt wird beschrieben, wie Sie eine Hostanwendung schreiben, die einen Runspace bearbeitet, und wie Sie eine Hostanwendung schreiben, die ihren eigenen benutzerdefinierten Host implementiert.
Erstellen eines Windows PowerShell-Snap-Ins In diesem Abschnitt wird beschrieben, wie Sie ein Snap-In erstellen, das zum Registrieren aller Cmdlets und Anbieter in einer Assembly verwendet wird, und wie Sie ein benutzerdefiniertes Snap-In erstellen.
Erstellen einer Konsolenshell In diesem Abschnitt wird beschrieben, wie Sie eine Konsolenshell erstellen, die nicht erweiterbar ist.
Windows PowerShell: Konzepte Dieser Abschnitt enthält konzeptionelle Informationen, die Ihnen helfen, Windows PowerShell aus Sicht eines Entwicklers zu verstehen.

Weitere Informationen

Windows PowerShell SDK