Beschreibt die neuen Features von Windows PowerShell 2.0. (about_Windows_PowerShell_2.0)
# THEMA
about_Windows_PowerShell_2.0
# KURZBESCHREIBUNG
Beschreibt die neuen Features von Windows PowerShell 2.0.
# DETAILBESCHREIBUNG
Windows PowerShell 2.0 enthält mehrere wichtige Features, mit
denen die Verwendungsmöglichkeiten erweitert und die
Benutzerfreundlichkeit erhöht werden, und die Steuerung und
Verwaltung von Windows-basierten Umgebungen wird verbessert und
erleichtert.
Windows PowerShell 2.0 ist abwärtskompatibel. Cmdlets, Anbieter,
Snap-Ins, Skripts, Funktionen und Profile, die für Windows
PowerShell 1.0 entworfen wurden, können ohne Änderungen auch in
Windows PowerShell 2.0 verwendet werden.
NEUE FEATURES
Windows PowerShell 2.0 enthält die nachfolgend aufgeführten neuen
Features.
Remoting
In Windows PowerShell 2.0 können Sie Befehle mit einem
einzelnen Windows PowerShell-Befehl auf einem oder mehreren
Remotecomputern ausführen. Sie können einzelne Befehle
ausführen, oder Sie können eine dauerhafte Verbindung (Sitzung)
erstellen, um eine Reihe von verwandten Befehlen auszuführen.
Sie können auch eine Sitzung mit einem Remotecomputer starten,
damit die eingegebenen Befehle direkt auf dem Remotecomputer
ausgeführt werden.
Die Remotingfeatures von Windows PowerShell basieren auf der
Windows-Remoteverwaltung (WinRM). WinRM ist die Implementierung
des WS-Management-Protokolls von Microsoft. Dabei handelt es
sich um ein Standardkommunikationsprotokoll auf SOAP-Basis, das
mit Firewalls kompatibel ist.
Auf den Remotecomputern müssen Windows PowerShell 2.0,
Microsoft .NET Framework 2.0 sowie der WinRM-Dienst installiert
sein. Remotebefehle werden unter allen Betriebssystemen
unterstützt, die Windows PowerShell ausführen können. Der
aktuelle Benutzer muss die Berechtigung haben, Befehle auf den
Remotecomputern auszuführen. Weitere Informationen finden Sie
unter "about_Remote_Requirements".
Um Remoting zu unterstützen, wurden die Cmdlets "Invoke-Command"
, "Enter-PSSession" und "Exit-PSSession" zusammen mit anderen
Cmdlets hinzugefügt, die das Substantiv "PSSession" enthalten.
Mit diesen Cmdlets können Sie dauerhafte Verbindungen erstellen
und verwalten.
Außerdem wurde der ComputerName-Parameter mehreren Cmdlets
einschließlich "Get-Process", "Get-Service" und "Get-Eventlog"
hinzugefügt. Mit diesem Parameter können Sie Informationen über
Remotecomputer abrufen.
Diese Cmdlets rufen die Daten mit .NET Framework-Methoden ab
und benötigen Windows PowerShell-Remoting daher nicht. Neue
Programme oder eine neue Konfiguration sind nicht erforderlich.
Weitere Informationen finden Sie in der Hilfe für das jeweilige
Cmdlet.
Weitere Informationen über Remotebefehle finden Sie unter
"about_Remote" und unter "about_Remote_FAQ". Weitere
Informationen über Sitzungen finden Sie unter "about_PSSessions".
Windows PowerShell ISE
Windows PowerShell 2.0 enthält die integrierte Skriptumgebung
von Windows PowerShell (ISE), eine Hostanwendung, mit der Sie
Befehle ausführen und Skripts in einer grafischen und
farbcodierten Umgebung auf Unicode-Basis entwerfen, schreiben,
testen und debuggen können.
Windows PowerShell ISE erfordert Microsoft .NET Framework 3.0
oder höher.
Windows PowerShell ISE enthält Folgendes:
- Ein Befehlsbereich, in dem Sie interaktive Befehle wie in
der Windows PowerShell-Konsole ausführen können. Geben Sie
einfach einen Befehl ein, und drücken Sie die EINGABETASTE.
Die Ausgabe wird im Ausgabebereich angezeigt.
- Ein Skriptbereich, in dem Sie Funktionen und Skripts
erstellen, bearbeiten, debuggen und ausführen können.
- Mehrere Registerkarten, die jeweils über einen
Befehlsbereich und einen Skriptbereich verfügen, in denen
Sie eine oder mehrere Aufgaben unabhängig voneinander
bearbeiten können.
Windows PowerShell ISE ist sowohl für neue als auch für
fortgeschrittene Benutzer geeignet.
Hintergrundaufträge
Hintergrundaufträge sind Befehle, die asynchron ausgeführt
werden. Wenn Sie einen Hintergrundauftrag ausführen, wird die
Eingabeaufforderung unmittelbar zurückgegeben, auch wenn der Befehl noch
ausgeführt wird. Mit dem Hintergrundauftragsfeature können Sie
komplexe Befehle im Hintergrund ausführen, um die Sitzung für andere
Aufgaben zu nutzen, während der Befehl ausgeführt wird.
Hintergrundaufträge können auf einem lokalen Computer oder auf einem
Remotecomputer ausgeführt werden, und die Ergebnisse können auf einem
lokalen Computer oder auf einem Remotecomputer gespeichert werden.
Mit dem Cmdlet "Invoke-Command" können Sie einen Auftrag remote ausführen.
Windows PowerShell enthält einen Satz von Cmdlets, die das
Substantiv "Job" enthalten (Job-Cmdlets). Verwenden Sie diese
Cmdlets zum Erstellen, Starten, Verwalten und Löschen von
Hintergrundaufträgen sowie zum Abrufen der Ergebnisse eines
Hintergrundauftrags. Um eine Liste der Job-Cmdlets abzurufen,
geben Sie den folgenden Befehl ein:
get-command *-job
Weitere Informationen über Hintergrundaufträge finden Sie unter
"about_Jobs".
Skriptdebugger
Windows PowerShell 2.0 enthält einen Cmdlet-basierten Debugger
für Skripts und Funktionen. Der Debugger wird durch eine
vollständig dokumentierte öffentliche API unterstützt, mit der
Sie eigene Debugger erstellen oder Debugger anpassen oder
erweitern können.
Mit den Debugger-Cmdlets können Sie Haltepunkte in Zeilen, Spalten,
Variablen und Befehlen festlegen. Diese Cmdlets ermöglichen die
Verwaltung der Haltepunkte und das Anzeigen der Aufrufliste. Sie
können bedingte Haltepunkte erstellen und benutzerdefinierte Aktionen
für Haltepunkte festlegen, beispielsweise das Ausführen von Diagnose-
und Protokollskripts.
Wenn Sie einen Haltepunkt erreichen, unterbricht Windows
PowerShell die Ausführung und startet den Debugger. Der
Debugger enthält einen Satz von benutzerdefinierten Befehlen,
mit denen Sie den Code schrittweise durchlaufen können. Sie
können auch Standardbefehle von Windows PowerShell ausführen,
um die Werte von Variablen anzuzeigen, und Sie können die
Ergebnisse mit Cmdlets untersuchen.
Weitere Informationen zum Debuggen finden Sie unter
"about_Debuggers".
Datenabschnitt
Skripts, die für Windows PowerShell 2.0 entworfen wurden,
weisen einen oder mehrere DATA-Abschnitte auf, die die Daten
von der Skriptlogik trennen. Die Daten im neuen DATA-Abschnitt
sind auf eine angegebene Teilmenge der Windows PowerShell-
Skriptsprache beschränkt.
In Windows PowerShell 2.0 wird der DATA-Abschnitt verwendet, um
die Skriptinternationalisierung zu unterstützen. Mit dem
DATA-Abschnitt können Sie Benutzermeldungszeichenfolgen
identifizieren und isolieren, die in mehrere Benutzerober-
flächensprachen übersetzt werden.
Weitere Informationen finden Sie unter "about_Data_Sections".
Skriptinternationalisierung
Die Features zur Skriptinternationalisierung von Windows
PowerShell 2.0 ermöglichen es Ihnen, besser auf Benutzer in der
ganzen Welt einzugehen. Dank der Skriptinternationalisierung
können Skripts und Funktionen Meldungen und Hilfetext in
mehreren Sprachen anzeigen.
Die Features zur Skriptinternationalisierung fragen die im
Betriebssystem festgelegte Benutzeroberflächenkultur
($PsUICulture) während der Ausführung ab und importieren die
entsprechenden übersetzten Textzeichenfolgen, um sie
anschließend dem Benutzer anzuzeigen.
Im Datenabschnitt können Sie Textzeichenfolgen getrennt von
Code speichern, sodass sie bequem identifiziert werden können.
Das neue Cmdlet "ConvertFrom-StringData" konvertiert
Textzeichenfolgen in wörterbuchähnliche Hashtabellen, um die
Übersetzung zu erleichtern.
Weitere Informationen finden Sie unter
"about_Script_Internationalization".
WMI-Cmdlets
Die Funktionalität für die Windows-Verwaltungsinstrumentation
(Windows Management Instrumentation, WMI) von Windows
PowerShell 2.0 wurde durch Hinzufügen der folgenden Cmdlets
verbessert:
- Remove-WmiObject
- Set-WmiInstance
- Invoke-WmiMethod
Dem Cmdlet "Get-WmiObject" wurden neue Parameter hinzugefügt.
Alle WMI- Cmdlets unterstützen jetzt die folgenden Parameter:
- EnableAllPrivileges
- Impersonation
- Authentication
- Authority
Die neuen Parameter verbessern die Kontrolle über die
Sicherheitskonfiguration von WMI-Vorgängen, ohne dass die Typen
in der .NET Framework-Klassenbibliothek direkt bearbeitet
werden müssen.
Mit dem folgenden Befehl können Sie eine Liste der WMI-Cmdlets
anzeigen:
get-help *wmi*
Geben Sie "get-help" und anschließend den Namen des Cmdlets
ein, um die entsprechende Hilfe anzuzeigen.
Das Cmdlet "Get-WinEvent"
Das Cmdlet "Get-WinEvent" ruft Ereignisse aus den Protokollen
der Ereignisanzeige und aus der Ereignisablaufverfolgung für
Windows (Event Tracing for Windows, ETW) auf lokalen Computern
und auf Remotecomputern ab. Mit dem Cmdlet können Ereignisse
aus klassischen Ereignisprotokollen und aus Windows-Ereignispro-
tokollen abgerufen werden, die unter Windows Vista eingeführt
wurden.
Mit Get-WinEvent können Sie die Objekte abrufen, die
Ereignisprotokolle, Ereignisprotokollanbieter und die
Ereignisse in den Protokollen darstellen. Mit Get-WinEvent
können Sie Ereignisse aus verschiedenen Quellen in einem Befehl
kombinieren. Das Cmdlet unterstützt erweiterte Abfragen in der
XML-Pfadsprache XPath, in XML und im Hashtabellenformat.
Get-WinEvent erfordert Windows Vista oder Windows Server 2008
und Microsoft .NET Framework 3.5.
Das Cmdlet "Out-Gridview"
Das Cmdlet "Out-GridView" zeigt die Ergebnisse anderer Befehle
in einer interaktiven Tabelle an, in der Sie die Ergebnisse
durchsuchen, sortieren, anordnen und filtern können.
Beispielsweise können Sie die Ergebnisse der Befehle
"Get-Process", "Get-WmiObject", "Get-WinEvent" oder
"Get-Eventlog" an Out-GridView senden und dann die
Tabellenfeatures verwenden, um die Daten zu untersuchen.
help out-gridview -full
Das Cmdlet "Add-Type"
Mit dem Cmdlet "Add-Type" können Sie Windows PowerShell .NET
Framework-Typen aus dem Quellcode einer anderen .NET
Framework-Sprache hinzufügen.
Add-Type kompiliert den Quellcode, mit dem die Typen erstellt
und die Assemblys generiert werden, die die neuen .NET
Framework-Typen enthalten. Anschließend können Sie die .NET
Framework-Typen in Windows PowerShell-Befehlen mit den von .NET
Framework bereitgestellten Standardobjekttypen verwenden.
Sie können mit Add-Type auch Assemblys in die Sitzung laden,
damit Sie die Typen in den Assemblys in Windows PowerShell
verwenden können.
Add-Type ermöglicht das Entwickeln neuer .NET Framework-Typen,
das Verwenden von .NET Framework-Typen in C#-Bibliotheken und
das Zugreifen auf Win32-APIs.
Weitere Informationen finden Sie unter "Add-Type".
Ereignisbenachrichtigung
In Windows PowerShell 2.0 wird die Ereignisbenachrichtigung
eingeführt. Benutzer können sich für Ereignisse registrieren
und diese abonnieren, beispielsweise Windows PowerShell-
Ereignisse, WMI-Ereignisse oder .NET Framework-Ereignisse.
Außerdem können Benutzer synchron und asynchron auf Verwaltungs-
und Systemereignisse reagieren und diese überwachen und
weiterleiten.
Entwickler können Anwendungen schreiben, die die Ereignisarchi-
tektur verwenden, um Benachrichtigungen über Statusänderungen
zu empfangen. Benutzer können Skripts schreiben, die
verschiedene Ereignisse abonnieren und auf den Inhalt reagieren.
Windows PowerShell stellt Cmdlets bereit, die neue Ereignisse
erstellen, Ereignisse und Ereignisabonnements abrufen,
Ereignisse registrieren und ihre Registrierung aufheben sowie
auf Ereignisse warten und Ereignisse löschen. Weitere
Informationen über diese Cmdlets erhalten Sie mit folgendem Befehl:
get-command *-event
Module
Windows PowerShell-Module ermöglichen das Aufteilen und
Organisieren von Windows PowerShell-Skripts in Einheiten, die
unabhängig, in sich abgeschlossen und wiederverwendbar sind.
Code aus einem Modul wird im eigenen Kontext ausgeführt, sodass
Variablen, Funktionen, Aliasen und anderen Ressourcen in der
Sitzung keine Elemente hinzugefügt und diese nicht
überschrieben werden und keine entsprechenden Konflikte entstehen.
Sie können Module erstellen, verteilen, kombinieren, freigeben und
wiederverwenden, um einfache Skripts und komplexe Anwendungen zu
erstellen.
Windows PowerShell 2.0 enthält Cmdlets zum Hinzufügen, Abrufen
und Entfernen von Modulen sowie zum Exportieren von
Modulelementen. Weitere Informationen über die Cmdlets, die mit
Modulen verknüpft sind, erhalten Sie mit folgendem Befehl:
get-command *-module*
Transaktionen
Windows PowerShell 2.0 bietet Unterstützung für Transaktionen.
Transaktionen ermöglichen es, eine ganze Reihe von Vorgängen
rückgängig zu machen. Transaktionen sind nur für Vorgänge
verfügbar, die Transaktionen unterstützen. Sie können in
Anwendungen verwendet werden, die Unteilbarkeit, Konsistenz,
Isolation und Wiederherstellbarkeit erfordern, beispielsweise
Datenbanken und Message Queuing.
Cmdlets und Anbieter, die Transaktionen unterstützen, verfügen
über einen neuen UseTransaction-Parameter. Um einen Vorgang in
einer Transaktion zu starten, verwenden Sie das Cmdlet
"Start-Transaction." Verwenden Sie den UseTransaction-Parameter
des jeweiligen Cmdlets zur Ausführung des Vorgangs, wenn der
Befehl Teil einer Transaktion sein soll.
Wenn bei einem Befehl in der Transaktion an einem beliebigen
Punkt ein Fehler auftritt, verwenden Sie das Cmdlet
"Rollback-Transaction", um alle Befehle in der Transaktion
rückgängig zu machen.
Wenn alle Befehle erfolgreich ausgeführt werden, verwenden Sie
das Cmdlet "Commit-Transaction", um die Befehlsaktionen
dauerhaft zu machen.
Windows PowerShell 2.0 enthält Cmdlets zum Starten, Verwenden
und Zurücksetzen von Transaktionen sowie zum Ausführen
entsprechender Commits. Informationen über diese Cmdlets
erhalten Sie mit folgendem Befehl:
get-command *transaction*
Wichtige Änderungen an Windows PowerShell 1.0
-- Der Wert des Registrierungseintrags "PowerShellVersion" in
"HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" wurde in 2.0
geändert.
-- Neue Cmdlets und Variablen wurden hinzugefügt. Dadurch kann
es zu Konflikten mit Variablen und Funktionen in Profilen und
Skripts kommen.
-- Der -IEQ-Operator führt einen Vergleich ohne Berücksichtigung
der Groß-/Kleinschreibung für Zeichen aus.
-- Das Cmdlet "Get-Command" ruft zusätzlich zu Cmdlets
standardmäßig Funktionen ab.
-- Systemeigene Befehle, die eine Benutzeroberfläche generieren,
können nicht über die Pipeline an das Cmdlet "Out-Host"
übergeben werden.
-- Es können Konflikte zwischen den neuen Schlüsselwörtern
"Begin", "Process", "End" und "Dynamic Parameter" und
ähnlichen Wörtern in Skripts und Funktionen auftreten. Durch
Interpretieren dieser Wörter als Schlüsselwörter kann es zu
Analysefehlern kommen.
-- Die Auflösung von Cmdlet-Namen wurde geändert. In Windows
PowerShell 1.0 wurde ein Laufzeitfehler generiert, wenn zwei
Windows PowerShell-Snap-Ins Cmdlets mit dem gleichen Namen
exportiert haben. Wenn Sie den Namen des Befehls eingeben,
wird in Windows PowerShell 2.0 das Cmdlet ausgeführt, das der
Sitzung zuletzt hinzugefügt wurde. Um einen Befehl
auszuführen, der nicht standardmäßig ausgeführt wird,
qualifizieren Sie den Cmdlet-Namen mit dem Namen des
ursprünglichen Snap-Ins oder des ursprünglichen Moduls.
-- Geben Sie den Namen einer Funktion und anschließend '-?' ein,
um ggf. das Hilfethema für die Funktion aufzurufen.
-- Die Auflösung von Parametern für Microsoft .NET
Framework-Methoden wurde geändert.
In Windows PowerShell 1.0 wurde beim Aufrufen einer
überladenen .NET-Methode mit mehr als einer Syntax, die am
besten geeignet ist, kein Fehler gemeldet. In Windows
PowerShell 2.0 wird die Mehrdeutigkeit als Fehler gemeldet.
Außerdem wurde in Windows PowerShell 2.0 der Algorithmus zur
Auswahl der am besten geeigneten Methode überarbeitet, um die
Anzahl von Mehrdeutigkeiten signifikant zu minimieren.
-- Wenn Sie eine Auflistung in der Pipeline auflisten und
versuchen, die Auflistung in der Pipeline zu ändern, löst
Windows PowerShell eine Ausnahme aus.
Beispielsweise könnten die folgenden Befehle in Windows
PowerShell 1.0 verwendet werden, in Windows PowerShell 2.0
verursachen sie nach dem ersten Pipelinedurchlauf jedoch
einen Fehler.
$h = @{Name="Hallo"; Value="Test"}
$h.keys | foreach-object {$h.remove($_)}
Um diesen Fehler zu vermeiden, erstellen Sie einen
Unterausdruck für den Enumerator mit den Zeichen "$ ()". Beispiel:
$($h.keys) | foreach-object {$h.remove($_)}
Weitere Informationen über Windows PowerShell 2.0 finden Sie
auf den folgenden Websites:
-- Windows PowerShell-Website
http://go.microsoft.com/fwlink/?LinkID=106031
-- Windows PowerShell-Teamblog:
http://go.microsoft.com/fwlink/?LinkId=143696
SIEHE AUCH
about_Data_Sections
about_Debuggers
about_Functions_Advanced
about_Jobs
about_Join
about_PSSessions
about_Remote
about_Script_Internationalization
about_Split
C:\Windows>powershell get-help about_Windows_PowerShell_ISE -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.
about_Windows_PowerShell_2.0
# KURZBESCHREIBUNG
Beschreibt die neuen Features von Windows PowerShell 2.0.
# DETAILBESCHREIBUNG
Windows PowerShell 2.0 enthält mehrere wichtige Features, mit
denen die Verwendungsmöglichkeiten erweitert und die
Benutzerfreundlichkeit erhöht werden, und die Steuerung und
Verwaltung von Windows-basierten Umgebungen wird verbessert und
erleichtert.
Windows PowerShell 2.0 ist abwärtskompatibel. Cmdlets, Anbieter,
Snap-Ins, Skripts, Funktionen und Profile, die für Windows
PowerShell 1.0 entworfen wurden, können ohne Änderungen auch in
Windows PowerShell 2.0 verwendet werden.
NEUE FEATURES
Windows PowerShell 2.0 enthält die nachfolgend aufgeführten neuen
Features.
Remoting
In Windows PowerShell 2.0 können Sie Befehle mit einem
einzelnen Windows PowerShell-Befehl auf einem oder mehreren
Remotecomputern ausführen. Sie können einzelne Befehle
ausführen, oder Sie können eine dauerhafte Verbindung (Sitzung)
erstellen, um eine Reihe von verwandten Befehlen auszuführen.
Sie können auch eine Sitzung mit einem Remotecomputer starten,
damit die eingegebenen Befehle direkt auf dem Remotecomputer
ausgeführt werden.
Die Remotingfeatures von Windows PowerShell basieren auf der
Windows-Remoteverwaltung (WinRM). WinRM ist die Implementierung
des WS-Management-Protokolls von Microsoft. Dabei handelt es
sich um ein Standardkommunikationsprotokoll auf SOAP-Basis, das
mit Firewalls kompatibel ist.
Auf den Remotecomputern müssen Windows PowerShell 2.0,
Microsoft .NET Framework 2.0 sowie der WinRM-Dienst installiert
sein. Remotebefehle werden unter allen Betriebssystemen
unterstützt, die Windows PowerShell ausführen können. Der
aktuelle Benutzer muss die Berechtigung haben, Befehle auf den
Remotecomputern auszuführen. Weitere Informationen finden Sie
unter "about_Remote_Requirements".
Um Remoting zu unterstützen, wurden die Cmdlets "Invoke-Command"
, "Enter-PSSession" und "Exit-PSSession" zusammen mit anderen
Cmdlets hinzugefügt, die das Substantiv "PSSession" enthalten.
Mit diesen Cmdlets können Sie dauerhafte Verbindungen erstellen
und verwalten.
Außerdem wurde der ComputerName-Parameter mehreren Cmdlets
einschließlich "Get-Process", "Get-Service" und "Get-Eventlog"
hinzugefügt. Mit diesem Parameter können Sie Informationen über
Remotecomputer abrufen.
Diese Cmdlets rufen die Daten mit .NET Framework-Methoden ab
und benötigen Windows PowerShell-Remoting daher nicht. Neue
Programme oder eine neue Konfiguration sind nicht erforderlich.
Weitere Informationen finden Sie in der Hilfe für das jeweilige
Cmdlet.
Weitere Informationen über Remotebefehle finden Sie unter
"about_Remote" und unter "about_Remote_FAQ". Weitere
Informationen über Sitzungen finden Sie unter "about_PSSessions".
Windows PowerShell ISE
Windows PowerShell 2.0 enthält die integrierte Skriptumgebung
von Windows PowerShell (ISE), eine Hostanwendung, mit der Sie
Befehle ausführen und Skripts in einer grafischen und
farbcodierten Umgebung auf Unicode-Basis entwerfen, schreiben,
testen und debuggen können.
Windows PowerShell ISE erfordert Microsoft .NET Framework 3.0
oder höher.
Windows PowerShell ISE enthält Folgendes:
- Ein Befehlsbereich, in dem Sie interaktive Befehle wie in
der Windows PowerShell-Konsole ausführen können. Geben Sie
einfach einen Befehl ein, und drücken Sie die EINGABETASTE.
Die Ausgabe wird im Ausgabebereich angezeigt.
- Ein Skriptbereich, in dem Sie Funktionen und Skripts
erstellen, bearbeiten, debuggen und ausführen können.
- Mehrere Registerkarten, die jeweils über einen
Befehlsbereich und einen Skriptbereich verfügen, in denen
Sie eine oder mehrere Aufgaben unabhängig voneinander
bearbeiten können.
Windows PowerShell ISE ist sowohl für neue als auch für
fortgeschrittene Benutzer geeignet.
Hintergrundaufträge
Hintergrundaufträge sind Befehle, die asynchron ausgeführt
werden. Wenn Sie einen Hintergrundauftrag ausführen, wird die
Eingabeaufforderung unmittelbar zurückgegeben, auch wenn der Befehl noch
ausgeführt wird. Mit dem Hintergrundauftragsfeature können Sie
komplexe Befehle im Hintergrund ausführen, um die Sitzung für andere
Aufgaben zu nutzen, während der Befehl ausgeführt wird.
Hintergrundaufträge können auf einem lokalen Computer oder auf einem
Remotecomputer ausgeführt werden, und die Ergebnisse können auf einem
lokalen Computer oder auf einem Remotecomputer gespeichert werden.
Mit dem Cmdlet "Invoke-Command" können Sie einen Auftrag remote ausführen.
Windows PowerShell enthält einen Satz von Cmdlets, die das
Substantiv "Job" enthalten (Job-Cmdlets). Verwenden Sie diese
Cmdlets zum Erstellen, Starten, Verwalten und Löschen von
Hintergrundaufträgen sowie zum Abrufen der Ergebnisse eines
Hintergrundauftrags. Um eine Liste der Job-Cmdlets abzurufen,
geben Sie den folgenden Befehl ein:
get-command *-job
Weitere Informationen über Hintergrundaufträge finden Sie unter
"about_Jobs".
Skriptdebugger
Windows PowerShell 2.0 enthält einen Cmdlet-basierten Debugger
für Skripts und Funktionen. Der Debugger wird durch eine
vollständig dokumentierte öffentliche API unterstützt, mit der
Sie eigene Debugger erstellen oder Debugger anpassen oder
erweitern können.
Mit den Debugger-Cmdlets können Sie Haltepunkte in Zeilen, Spalten,
Variablen und Befehlen festlegen. Diese Cmdlets ermöglichen die
Verwaltung der Haltepunkte und das Anzeigen der Aufrufliste. Sie
können bedingte Haltepunkte erstellen und benutzerdefinierte Aktionen
für Haltepunkte festlegen, beispielsweise das Ausführen von Diagnose-
und Protokollskripts.
Wenn Sie einen Haltepunkt erreichen, unterbricht Windows
PowerShell die Ausführung und startet den Debugger. Der
Debugger enthält einen Satz von benutzerdefinierten Befehlen,
mit denen Sie den Code schrittweise durchlaufen können. Sie
können auch Standardbefehle von Windows PowerShell ausführen,
um die Werte von Variablen anzuzeigen, und Sie können die
Ergebnisse mit Cmdlets untersuchen.
Weitere Informationen zum Debuggen finden Sie unter
"about_Debuggers".
Datenabschnitt
Skripts, die für Windows PowerShell 2.0 entworfen wurden,
weisen einen oder mehrere DATA-Abschnitte auf, die die Daten
von der Skriptlogik trennen. Die Daten im neuen DATA-Abschnitt
sind auf eine angegebene Teilmenge der Windows PowerShell-
Skriptsprache beschränkt.
In Windows PowerShell 2.0 wird der DATA-Abschnitt verwendet, um
die Skriptinternationalisierung zu unterstützen. Mit dem
DATA-Abschnitt können Sie Benutzermeldungszeichenfolgen
identifizieren und isolieren, die in mehrere Benutzerober-
flächensprachen übersetzt werden.
Weitere Informationen finden Sie unter "about_Data_Sections".
Skriptinternationalisierung
Die Features zur Skriptinternationalisierung von Windows
PowerShell 2.0 ermöglichen es Ihnen, besser auf Benutzer in der
ganzen Welt einzugehen. Dank der Skriptinternationalisierung
können Skripts und Funktionen Meldungen und Hilfetext in
mehreren Sprachen anzeigen.
Die Features zur Skriptinternationalisierung fragen die im
Betriebssystem festgelegte Benutzeroberflächenkultur
($PsUICulture) während der Ausführung ab und importieren die
entsprechenden übersetzten Textzeichenfolgen, um sie
anschließend dem Benutzer anzuzeigen.
Im Datenabschnitt können Sie Textzeichenfolgen getrennt von
Code speichern, sodass sie bequem identifiziert werden können.
Das neue Cmdlet "ConvertFrom-StringData" konvertiert
Textzeichenfolgen in wörterbuchähnliche Hashtabellen, um die
Übersetzung zu erleichtern.
Weitere Informationen finden Sie unter
"about_Script_Internationalization".
WMI-Cmdlets
Die Funktionalität für die Windows-Verwaltungsinstrumentation
(Windows Management Instrumentation, WMI) von Windows
PowerShell 2.0 wurde durch Hinzufügen der folgenden Cmdlets
verbessert:
- Remove-WmiObject
- Set-WmiInstance
- Invoke-WmiMethod
Dem Cmdlet "Get-WmiObject" wurden neue Parameter hinzugefügt.
Alle WMI- Cmdlets unterstützen jetzt die folgenden Parameter:
- EnableAllPrivileges
- Impersonation
- Authentication
- Authority
Die neuen Parameter verbessern die Kontrolle über die
Sicherheitskonfiguration von WMI-Vorgängen, ohne dass die Typen
in der .NET Framework-Klassenbibliothek direkt bearbeitet
werden müssen.
Mit dem folgenden Befehl können Sie eine Liste der WMI-Cmdlets
anzeigen:
get-help *wmi*
Geben Sie "get-help" und anschließend den Namen des Cmdlets
ein, um die entsprechende Hilfe anzuzeigen.
Das Cmdlet "Get-WinEvent"
Das Cmdlet "Get-WinEvent" ruft Ereignisse aus den Protokollen
der Ereignisanzeige und aus der Ereignisablaufverfolgung für
Windows (Event Tracing for Windows, ETW) auf lokalen Computern
und auf Remotecomputern ab. Mit dem Cmdlet können Ereignisse
aus klassischen Ereignisprotokollen und aus Windows-Ereignispro-
tokollen abgerufen werden, die unter Windows Vista eingeführt
wurden.
Mit Get-WinEvent können Sie die Objekte abrufen, die
Ereignisprotokolle, Ereignisprotokollanbieter und die
Ereignisse in den Protokollen darstellen. Mit Get-WinEvent
können Sie Ereignisse aus verschiedenen Quellen in einem Befehl
kombinieren. Das Cmdlet unterstützt erweiterte Abfragen in der
XML-Pfadsprache XPath, in XML und im Hashtabellenformat.
Get-WinEvent erfordert Windows Vista oder Windows Server 2008
und Microsoft .NET Framework 3.5.
Das Cmdlet "Out-Gridview"
Das Cmdlet "Out-GridView" zeigt die Ergebnisse anderer Befehle
in einer interaktiven Tabelle an, in der Sie die Ergebnisse
durchsuchen, sortieren, anordnen und filtern können.
Beispielsweise können Sie die Ergebnisse der Befehle
"Get-Process", "Get-WmiObject", "Get-WinEvent" oder
"Get-Eventlog" an Out-GridView senden und dann die
Tabellenfeatures verwenden, um die Daten zu untersuchen.
help out-gridview -full
Das Cmdlet "Add-Type"
Mit dem Cmdlet "Add-Type" können Sie Windows PowerShell .NET
Framework-Typen aus dem Quellcode einer anderen .NET
Framework-Sprache hinzufügen.
Add-Type kompiliert den Quellcode, mit dem die Typen erstellt
und die Assemblys generiert werden, die die neuen .NET
Framework-Typen enthalten. Anschließend können Sie die .NET
Framework-Typen in Windows PowerShell-Befehlen mit den von .NET
Framework bereitgestellten Standardobjekttypen verwenden.
Sie können mit Add-Type auch Assemblys in die Sitzung laden,
damit Sie die Typen in den Assemblys in Windows PowerShell
verwenden können.
Add-Type ermöglicht das Entwickeln neuer .NET Framework-Typen,
das Verwenden von .NET Framework-Typen in C#-Bibliotheken und
das Zugreifen auf Win32-APIs.
Weitere Informationen finden Sie unter "Add-Type".
Ereignisbenachrichtigung
In Windows PowerShell 2.0 wird die Ereignisbenachrichtigung
eingeführt. Benutzer können sich für Ereignisse registrieren
und diese abonnieren, beispielsweise Windows PowerShell-
Ereignisse, WMI-Ereignisse oder .NET Framework-Ereignisse.
Außerdem können Benutzer synchron und asynchron auf Verwaltungs-
und Systemereignisse reagieren und diese überwachen und
weiterleiten.
Entwickler können Anwendungen schreiben, die die Ereignisarchi-
tektur verwenden, um Benachrichtigungen über Statusänderungen
zu empfangen. Benutzer können Skripts schreiben, die
verschiedene Ereignisse abonnieren und auf den Inhalt reagieren.
Windows PowerShell stellt Cmdlets bereit, die neue Ereignisse
erstellen, Ereignisse und Ereignisabonnements abrufen,
Ereignisse registrieren und ihre Registrierung aufheben sowie
auf Ereignisse warten und Ereignisse löschen. Weitere
Informationen über diese Cmdlets erhalten Sie mit folgendem Befehl:
get-command *-event
Module
Windows PowerShell-Module ermöglichen das Aufteilen und
Organisieren von Windows PowerShell-Skripts in Einheiten, die
unabhängig, in sich abgeschlossen und wiederverwendbar sind.
Code aus einem Modul wird im eigenen Kontext ausgeführt, sodass
Variablen, Funktionen, Aliasen und anderen Ressourcen in der
Sitzung keine Elemente hinzugefügt und diese nicht
überschrieben werden und keine entsprechenden Konflikte entstehen.
Sie können Module erstellen, verteilen, kombinieren, freigeben und
wiederverwenden, um einfache Skripts und komplexe Anwendungen zu
erstellen.
Windows PowerShell 2.0 enthält Cmdlets zum Hinzufügen, Abrufen
und Entfernen von Modulen sowie zum Exportieren von
Modulelementen. Weitere Informationen über die Cmdlets, die mit
Modulen verknüpft sind, erhalten Sie mit folgendem Befehl:
get-command *-module*
Transaktionen
Windows PowerShell 2.0 bietet Unterstützung für Transaktionen.
Transaktionen ermöglichen es, eine ganze Reihe von Vorgängen
rückgängig zu machen. Transaktionen sind nur für Vorgänge
verfügbar, die Transaktionen unterstützen. Sie können in
Anwendungen verwendet werden, die Unteilbarkeit, Konsistenz,
Isolation und Wiederherstellbarkeit erfordern, beispielsweise
Datenbanken und Message Queuing.
Cmdlets und Anbieter, die Transaktionen unterstützen, verfügen
über einen neuen UseTransaction-Parameter. Um einen Vorgang in
einer Transaktion zu starten, verwenden Sie das Cmdlet
"Start-Transaction." Verwenden Sie den UseTransaction-Parameter
des jeweiligen Cmdlets zur Ausführung des Vorgangs, wenn der
Befehl Teil einer Transaktion sein soll.
Wenn bei einem Befehl in der Transaktion an einem beliebigen
Punkt ein Fehler auftritt, verwenden Sie das Cmdlet
"Rollback-Transaction", um alle Befehle in der Transaktion
rückgängig zu machen.
Wenn alle Befehle erfolgreich ausgeführt werden, verwenden Sie
das Cmdlet "Commit-Transaction", um die Befehlsaktionen
dauerhaft zu machen.
Windows PowerShell 2.0 enthält Cmdlets zum Starten, Verwenden
und Zurücksetzen von Transaktionen sowie zum Ausführen
entsprechender Commits. Informationen über diese Cmdlets
erhalten Sie mit folgendem Befehl:
get-command *transaction*
Wichtige Änderungen an Windows PowerShell 1.0
-- Der Wert des Registrierungseintrags "PowerShellVersion" in
"HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" wurde in 2.0
geändert.
-- Neue Cmdlets und Variablen wurden hinzugefügt. Dadurch kann
es zu Konflikten mit Variablen und Funktionen in Profilen und
Skripts kommen.
-- Der -IEQ-Operator führt einen Vergleich ohne Berücksichtigung
der Groß-/Kleinschreibung für Zeichen aus.
-- Das Cmdlet "Get-Command" ruft zusätzlich zu Cmdlets
standardmäßig Funktionen ab.
-- Systemeigene Befehle, die eine Benutzeroberfläche generieren,
können nicht über die Pipeline an das Cmdlet "Out-Host"
übergeben werden.
-- Es können Konflikte zwischen den neuen Schlüsselwörtern
"Begin", "Process", "End" und "Dynamic Parameter" und
ähnlichen Wörtern in Skripts und Funktionen auftreten. Durch
Interpretieren dieser Wörter als Schlüsselwörter kann es zu
Analysefehlern kommen.
-- Die Auflösung von Cmdlet-Namen wurde geändert. In Windows
PowerShell 1.0 wurde ein Laufzeitfehler generiert, wenn zwei
Windows PowerShell-Snap-Ins Cmdlets mit dem gleichen Namen
exportiert haben. Wenn Sie den Namen des Befehls eingeben,
wird in Windows PowerShell 2.0 das Cmdlet ausgeführt, das der
Sitzung zuletzt hinzugefügt wurde. Um einen Befehl
auszuführen, der nicht standardmäßig ausgeführt wird,
qualifizieren Sie den Cmdlet-Namen mit dem Namen des
ursprünglichen Snap-Ins oder des ursprünglichen Moduls.
-- Geben Sie den Namen einer Funktion und anschließend '-?' ein,
um ggf. das Hilfethema für die Funktion aufzurufen.
-- Die Auflösung von Parametern für Microsoft .NET
Framework-Methoden wurde geändert.
In Windows PowerShell 1.0 wurde beim Aufrufen einer
überladenen .NET-Methode mit mehr als einer Syntax, die am
besten geeignet ist, kein Fehler gemeldet. In Windows
PowerShell 2.0 wird die Mehrdeutigkeit als Fehler gemeldet.
Außerdem wurde in Windows PowerShell 2.0 der Algorithmus zur
Auswahl der am besten geeigneten Methode überarbeitet, um die
Anzahl von Mehrdeutigkeiten signifikant zu minimieren.
-- Wenn Sie eine Auflistung in der Pipeline auflisten und
versuchen, die Auflistung in der Pipeline zu ändern, löst
Windows PowerShell eine Ausnahme aus.
Beispielsweise könnten die folgenden Befehle in Windows
PowerShell 1.0 verwendet werden, in Windows PowerShell 2.0
verursachen sie nach dem ersten Pipelinedurchlauf jedoch
einen Fehler.
$h = @{Name="Hallo"; Value="Test"}
$h.keys | foreach-object {$h.remove($_)}
Um diesen Fehler zu vermeiden, erstellen Sie einen
Unterausdruck für den Enumerator mit den Zeichen "$ ()". Beispiel:
$($h.keys) | foreach-object {$h.remove($_)}
Weitere Informationen über Windows PowerShell 2.0 finden Sie
auf den folgenden Websites:
-- Windows PowerShell-Website
http://go.microsoft.com/fwlink/?LinkID=106031
-- Windows PowerShell-Teamblog:
http://go.microsoft.com/fwlink/?LinkId=143696
SIEHE AUCH
about_Data_Sections
about_Debuggers
about_Functions_Advanced
about_Jobs
about_Join
about_PSSessions
about_Remote
about_Script_Internationalization
about_Split
C:\Windows>powershell get-help about_Windows_PowerShell_ISE -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.