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. DasGet-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 undSort-Object
synchron auszuführen. DasGet-Process
Cmdlet gibt Process-Objekte für jeden Prozess zurück, der auf dem lokalen Computer ausgeführt wird, undSort-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 undExit-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 , undSet-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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für