Installieren das Windows PowerShell SDK

Gilt für: Windows PowerShell 2.0, Windows PowerShell 3.0

Das folgende Thema beschreibt, wie das PowerShell SDK in verschiedenen Versionen von Windows installiert wird.

Installieren des Windows PowerShell 3.0 SDK für Windows 8 und Windows Server 2012

Windows PowerShell 3.0 wird automatisch mit Windows 8 und Windows Server 2012 installiert. Darüber hinaus können Sie die Verweisassemblys für Windows PowerShell 3.0 als Teil des Windows 8 SDKs herunterladen und installieren. Diese Assemblys ermöglichen Ihnen das Schreiben von Cmdlets, Anbietern und Host-Programmen für Windows PowerShell 3.0. Wenn Sie das Windows SDK für Windows 8 installieren, werden die Windows PowerShell-Assemblys automatisch im Referenzassemblyordner unter \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0 installiert. Weitere Informationen finden Sie auf der Windows 8 SDK-Downloadwebsite. Windows PowerShell Codebeispiele sind auch im Repository powershell-sdk-samples verfügbar.

Installieren des Windows PowerShell 3.0 SDK für Windows 7 und Windows Server 2008 R2

Bei Windows 7 und Windows Server 2008 R2 wird PowerShell 2.0 automatisch installiert. Darüber hinaus können Sie PowerShell 3.0 auf diesen Systemen installieren. Sie können das Windows 8 SDK auch auf Windows 7 und Windows Server 2008 R2 installieren, wie oben beschrieben.

Installieren des Windows PowerShell 2.0 SDK für Windows 7, Vista, XP, Server 2003 und Server 2008

Das Windows PowerShell 2.0 SDK stellt die Verweisassemblys bereit, die zum Schreiben von Cmdlets, Anbietern und Hostinganwendungen erforderlich sind, und bietet C#-Beispielcode, der als Ausgangspunkt dienen kann, wenn Sie mit dem Schreiben von Code beginnen.

Verweisassemblys

Verweisassemblys werden standardmäßig an folgendem Speicherort installiert: c:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0.

Hinweis

Code, der für die Windows PowerShell 2.0-Assemblys kompiliert wird, kann nicht in Windows PowerShell 1.0-Installationen geladen werden. Jedoch kann Code, der für die Windows PowerShell 1.0-Assemblys kompiliert wird, in Windows PowerShell 2.0-Installationen geladen werden.

Beispiele

Codebeispiele werden standardmäßig an folgendem Speicherort installiert: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\. Die folgenden Abschnitte enthalten eine kurze Beschreibung der einzelnen Beispiele.

Cmdlet-Beispiele

  • GetProcessSample01: Zeigt, wie Sie ein einfaches Cmdlet schreiben, das alle Prozesse auf dem lokalen Computer erhält.
  • GetProcessSample02: Zeigt, wie Dem Cmdlet Parameter hinzugefügt werden. Das Cmdlet akzeptiert einen oder mehrere Prozessnamen und gibt die entsprechenden Prozesse zurück.
  • GetProcessSample03: Zeigt, wie Sie Parameter hinzufügen, die Eingaben aus der Pipeline akzeptieren.
  • GetProcessSample04: Zeigt, wie Fehler ohne Abbruch behandelt werden.
  • GetProcessSample05: Zeigt, wie eine Liste der angegebenen Prozesse angezeigt wird.
  • SelectObject: Zeigt, wie sie einen Filter schreiben, um nur bestimmte Objekte auszuwählen.
  • SelectString: Zeigt, wie Dateien nach angegebenen Mustern durchsucht werden.
  • StopProcessSample01: Zeigt, wie sie einen PassThru-Parameter implementieren und Benutzerfeedback durch Aufrufe der Methoden ShouldProcess und ShouldContinue anfordern. Benutzer geben den Parameter PassThru an, wenn sie erzwingen möchten, dass das Cmdlet ein Objekt zurückgibt.
  • StopProcessSample02: Zeigt, wie ein bestimmter Prozess beendet wird.
  • StopProcessSample03: Zeigt, wie Aliase für Parameter deklariert und Platzhalter unterstützt werden.
  • StopProcessSample04: Zeigt, wie Parametersätze deklariert werden, das Objekt, das das Cmdlet als Eingabe annimmt, und wie der zu verwendende Standardparameter festgelegt wird.

Remotingbeispiele

  • RemoteRunspace01: Zeigt, wie ein Remoterunspace erstellt wird, der zum Herstellen einer Remoteverbindung verwendet wird.
  • RemoteRunspacePool01: Zeigt, wie sie einen Remoterunspacepool erstellen und mehrere Befehle gleichzeitig mit diesem Pool ausführen.
  • Serialization01: Zeigt, wie Sie eine vorhandene .NET-Klasse betrachten und sicherstellen, dass Informationen aus ausgewählten öffentlichen Eigenschaften dieser Klasse über die Serialisierung/Deserialisierung hinweg beibehalten werden.
  • Serialization02: Zeigt, wie Sie eine vorhandene .NET-Klasse betrachten und sicherstellen, dass Informationen aus einer Instanz dieser Klasse über die Serialisierung/Deserialisierung hinweg beibehalten werden, wenn die Informationen in öffentlichen Eigenschaften der Klasse nicht verfügbar sind.
  • Serialization03: Zeigt, wie Sie eine vorhandene .NET-Klasse betrachten und sicherstellen, dass Instanzen dieser Klasse und abgeleiteter Klassen in .NET-Liveobjekte deserialisiert (aktiviert) werden.

Ereignisbeispiele

  • Event01: Zeigt, wie Sie ein Cmdlet für die Ereignisregistrierung erstellen, indem Sie von ObjectEventRegistrationBase ableiten.
  • Event02: Zeigt, wie Sie Benachrichtigungen über Windows PowerShell Ereignisse empfangen, die auf Remotecomputern generiert werden. Verwendet das über die Runspace-Klasse offen gelegte PSEventReceived-Ereignis.

Hosten von Anwendungsbeispielen

  • Runspace01: Zeigt, wie Sie die PowerShell-Klasse verwenden, um das Get-Process Cmdlet synchron auszuführen. Das Get-Process Cmdlet gibt Process-Objekte für jeden Prozess zurück, der auf dem lokalen Computer ausgeführt wird.
  • Runspace02: Zeigt, wie Sie die PowerShell-Klasse verwenden, um die Get-Process Cmdlets und Sort-Object synchron auszuführen. Das Get-Process Cmdlet gibt Process-Objekte für jeden Prozess zurück, der auf dem lokalen Computer ausgeführt wird, und Sort-Object sortiert die Objekte basierend auf ihrer ID-Eigenschaft. Die Ergebnisse dieser Befehle werden anhand des Steuerelements DataGridView angezeigt.
  • Runspace03: Zeigt, wie Sie die PowerShell-Klasse verwenden, um ein Skript synchron auszuführen, und wie Fehler ohne Abbruch behandelt werden. Das Skript empfängt eine Liste von Prozessnamen und ruft diese Prozesse anschließend ab. Die Ergebnisse des Skripts, einschließlich Fehler ohne Abbruch, die beim Ausführen des Skripts generiert wurden, werden in einem Konsolenfenster angezeigt.
  • Runspace04: Zeigt, wie Die PowerShell-Klasse zum Ausführen von Befehlen verwendet wird und wie Abbruchfehler erfasst werden, die beim Ausführen der Befehle ausgelöst werden. Zwei Befehle werden ausgeführt. An den letzten Befehl wird ein ungültiges Parameterargument übergeben. Daher werden keine Objekte zurückgegeben, und ein Fehler mit Abbruch wird ausgelöst.
  • Runspace05: Zeigt, wie Sie einem InitialSessionState-Objekt ein Snap-In hinzufügen, damit das Cmdlet des Snap-Ins verfügbar ist, wenn der Runspace geöffnet wird. Das Snap-In stellt ein Get-Proc Cmdlet bereit (definiert durch das GetProcessSample01-Beispiel), das synchron mit einem PowerShell-Objekt ausgeführt wird.
  • Runspace06: Zeigt, wie Sie einem InitialSessionState-Objekt ein Modul hinzufügen, damit das Modul geladen wird, wenn der Runspace geöffnet wird. Das Modul stellt ein Get-Proc Cmdlet bereit (definiert durch das GetProcessSample02-Beispiel), das synchron mit einem PowerShell-Objekt ausgeführt wird.
  • Runspace07: Zeigt, wie Sie einen Runspace erstellen und dann diesen Runspace verwenden, um zwei Cmdlets mithilfe eines PowerShell-Objekts synchron auszuführen.
  • Runspace08: Zeigt, wie Sie der Pipeline eines PowerShell-Objekts Befehle und Argumente hinzufügen und die Befehle synchron ausführen.
  • Runspace09: Zeigt, wie Sie der Pipeline eines PowerShell-Objekts ein Skript hinzufügen und das Skript asynchron ausführen. Ereignisse werden verwendet, um die Ausgabe des Skripts zu verarbeiten.
  • Runspace10: Zeigt, wie Sie einen anfänglichen Standardsitzungszustand erstellen, initialSessionState ein Cmdlet hinzufügen, einen Runspace erstellen, der den anfänglichen Sitzungszustand verwendet, und wie Sie den Befehl mit einem PowerShell-Objekt ausführen.
  • Runspace11: Zeigt, wie Sie die ProxyCommand-Klasse verwenden, um einen Proxybefehl zu erstellen, der ein vorhandenes Cmdlet aufruft, aber den Satz verfügbarer Parameter einschränkt. Der Proxybefehl wird anschließend zu einem anfänglichen Sitzungsstatus hinzugefügt, der dazu verwendet wird, einen eingeschränkten Runspace zu erstellen. Dies bedeutet, dass der Benutzer nur über den Proxybefehl auf die Funktionalität des Cmdlets zugreifen kann.
  • PowerShell01: Zeigt, wie Sie einen eingeschränkten Runspace mithilfe eines InitialSessionState-Objekts erstellen.
  • PowerShell02: Zeigt, wie Sie einen Runspacepool verwenden, um mehrere Befehle gleichzeitig auszuführen.

Hostbeispiele

  • Host01: Zeigt, wie eine Hostanwendung implementiert wird, die einen benutzerdefinierten Host verwendet. In diesem Beispiel wird ein Runspace erstellt, der den benutzerdefinierten Host verwendet, und dann wird die PowerShell-API verwendet, um ein Skript auszuführen, das exit aufruft. Die Hostanwendung untersucht anschließend die Ausgabe des Skripts und gibt die Ergebnisse aus.
  • Host02: Zeigt, wie eine Hostanwendung geschrieben wird, die die Windows PowerShell Runtime zusammen mit einer benutzerdefinierten Hostimplementierungen verwendet. Die Hostanwendung legt die Hostkultur auf Deutsch fest, führt das Cmdlet aus Get-Process und zeigt die Ergebnisse so an, wie Sie sie mithilfe pwrsh.exe sehen würden, und gibt dann die aktuellen Daten und die aktuelle Uhrzeit auf Deutsch aus.
  • Host03: Zeigt, wie Sie eine interaktive konsolenbasierte Hostanwendung erstellen, die Befehle über die Befehlszeile liest, die Befehle ausführt und dann die Ergebnisse in der Konsole anzeigt.
  • Host04: Zeigt, wie Sie eine interaktive konsolenbasierte Hostanwendung erstellen, die Befehle über die Befehlszeile liest, die Befehle ausführt und dann die Ergebnisse in der Konsole anzeigt. Diese Hostanwendung unterstützt auch das Anzeigen von Eingabeaufforderungen, die es den Benutzern ermöglichen, mehrere Auswahlmöglichkeiten anzugeben.
  • Host05: Zeigt, wie Sie eine interaktive konsolenbasierte Hostanwendung erstellen, die Befehle über die Befehlszeile liest, die Befehle ausführt und dann die Ergebnisse in der Konsole anzeigt. Diese Hostanwendung unterstützt auch Aufrufe von Remotecomputern mithilfe der Enter-PsSession Cmdlets und Exit-PsSession .
  • Host06: Zeigt, wie Sie eine interaktive konsolenbasierte Hostanwendung erstellen, die Befehle über die Befehlszeile liest, die Befehle ausführt und dann die Ergebnisse in der Konsole anzeigt. Darüber hinaus verwendet dieses Beispiel die Tokenizer-APIs, um die Farbe des vom Benutzer eingegebenen Texts anzugeben.

Anbieterbeispiele

  • AccessDBProviderSample01: Zeigt, wie eine Anbieterklasse deklariert wird, die direkt von der CmdletProvider-Klasse abgeleitet wird. Wird hier nur aus Gründen der Vollständigkeit aufgeführt.

  • AccessDBProviderSample02: Zeigt, wie die Methoden NewDrive und RemoveDrive überschrieben werden, um Aufrufe der Cmdlets und zu New-PSDrive Remove-PSDrive unterstützen. Die Anbieterklasse in diesem Beispiel wird von der DriveCmdletProvider-Klasse abgeleitet.

  • AccessDBProviderSample03: Zeigt, wie die Methoden GetItem und SetItem überschrieben werden, um Aufrufe der Cmdlets und zu Get-Item Set-Item unterstützen. Die Anbieterklasse in diesem Beispiel wird von der ItemCmdletProvider-Klasse abgeleitet.

  • AccessDBProviderSample04: Zeigt, wie Containermethoden überschrieben werden, um Aufrufe der Cmdlets , , und zu Copy-Item Get-ChildItem New-Item Remove-Item unterstützen. Diese Methoden sollten implementiert werden, wenn der Datenspeicher Elemente enthält, die Container sind. Ein Container ist eine Gruppe von untergeordneten Elementen unter einem gemeinsamen übergeordneten Element. Die Anbieterklasse in diesem Beispiel wird von der ItemCmdletProvider-Klasse abgeleitet.

  • AccessDBProviderSample05: Zeigt, wie Containermethoden überschrieben werden, um Aufrufe der Cmdlets und zu Move-Item Join-Path unterstützen. Diese Methoden sollten implementiert werden, wenn der Benutzer Elemente innerhalb eines Containers verschieben muss, und wenn der Datenspeicher geschachtelte Container enthält. Die Anbieterklasse in diesem Beispiel wird von der NavigationCmdletProvider-Klasse abgeleitet.

  • AccessDBProviderSample06: Zeigt, wie Inhaltsmethoden überschrieben werden, um Aufrufe der Clear-Content Get-Content Cmdlets , und Set-Content zu unterstützen. Diese Methoden sollten implementiert werden, wenn der Benutzer den Inhalt der Elemente im Datenspeicher verwaltet muss. Die Anbieterklasse in diesem Beispiel wird von der NavigationCmdletProvider-Klasse abgeleitet und implementiert die IContentCmdletProvider-Schnittstelle.