Beschreibt die neuen Features von Windows PowerShell 2.0. (about_Windows_PowerShell_2.0)
THEMAabout_Windows_PowerShell_2.0KURZBESCHREIBUNGBeschreibt die neuen Features von Windows PowerShell 2.0.DETAILBESCHREIBUNGWindows 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
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export