Neuerungen in PowerShell 7.0What's New in PowerShell 7.0

PowerShell 7.0 ist eine plattformübergreifende Open-Source-Edition (Windows, macOS und Linux) von PowerShell, die für die Verwaltung heterogener Umgebungen und Hybrid Clouds entwickelt wurde.PowerShell 7.0 is an open-source, cross-platform (Windows, macOS, and Linux) edition of PowerShell, built to manage heterogeneous environments and hybrid cloud.

In diesem Release haben wir eine Reihe neuer Features eingeführt, einschließlich:In this release, we're introducing a number of new features, including:

  • Parallelisierung von Pipelines mit ForEach-Object -ParallelPipeline parallelization with ForEach-Object -Parallel
  • Neue Operatoren:New operators:
    • Ternärer Operator: a ? b : cTernary operator: a ? b : c
    • Pipeline-Kettenoperatoren: || und &&Pipeline chain operators: || and &&
    • Bedingte NULL-Operatoren: ?? und ??=Null conditional operators: ?? and ??=
  • Eine vereinfachte und dynamische Fehleransicht und das Cmdlet Get-Error für eine einfachere Untersuchung von FehlernA simplified and dynamic error view and Get-Error cmdlet for easier investigation of errors
  • Eine Kompatibilitätsebene, die es Benutzern ermöglicht, Module in eine implizite Windows PowerShell-Sitzung zu importierenA compatibility layer that enables users to import modules in an implicit Windows PowerShell session
  • Automatische Benachrichtigung zu neuen VersionenAutomatic new version notifications
  • Die Möglichkeit zum direkten Aufrufen von DSC-Ressourcen in PowerShell 7 (experimentell)The ability to invoke DSC resources directly from PowerShell 7 (experimental)

Eine vollständige Liste der Features und Korrekturen finden Sie in den Änderungsprotokollen.To see a full list of features and fixes, see the changelogs.

Wo kann ich PowerShell installieren?Where can I install PowerShell?

PowerShell 7 unterstützt derzeit die folgenden x64-Betriebssysteme:PowerShell 7 currently supports the following operating systems on x64, including:

  • Windows 8.1 und 10Windows 8.1, and 10
  • Windows Server 2012, 2012 R2, 2016, und 2019Windows Server 2012, 2012 R2, 2016, and 2019
  • macOS ab 10.13macOS 10.13+
  • Red Hat Enterprise Linux (RHEL)/CentOS 7Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Fedora ab 30Fedora 30+
  • Debian 9Debian 9
  • Ubuntu LTS ab 16.04Ubuntu LTS 16.04+
  • Alpine Linux ab 3.8Alpine Linux 3.8+

Zusätzlich unterstützt PowerShell 7.0 die ARM32- und ARM64-Varianten von Debian, Ubuntu und ARM64 Alpine Linux.Additionally, PowerShell 7.0 supports ARM32 and ARM64 flavors of Debian, Ubuntu, and ARM64 Alpine Linux.

Prüfen Sie die Installationsanweisungen für Ihr bevorzugtes Betriebssystem: Windows, macOS oder Linux.Check the installation instructions for your preferred operating system Windows, macOS, or Linux.

Wenngleich nicht offiziell unterstützt, hat die Community auch Pakete für Arch und Kali Linux bereitgestellt.While not officially supported, the community has also provided packages for Arch and Kali Linux.

Hinweis

Debian 10 und CentOS 8 unterstützen zurzeit nicht WinRM-Remoting.Debian 10 and CentOS 8 currently do not support WinRM remoting. Einzelheiten zum Einrichten von SSH-basiertem Remoting finden Sie unter PowerShell-Remoting über SSH.For details on setting up SSH-based remoting, see PowerShell Remoting over SSH.

Weitere aktuelle Informationen zu unterstützten Betriebssystemen und zum Supportlebenszyklus finden Sie unter PowerShell-Supportlebenszyklus.For more up-to-date information about supported operating systems and support lifecycle, see the PowerShell Support Lifecycle.

Ausführen von PowerShell 7Running PowerShell 7

PowerShell 7 wird in ein Verzeichnis getrennt von Windows PowerShell installiert.PowerShell 7 installs to a directory seperately from Windows PowerShell. Dadurch wird ermöglicht, PowerShell 7 parallel mit Windows PowerShell 5.1 zu nutzen.This enables you to run PowerShell 7 side-by-side with Windows PowerShell 5.1. Für PowerShell Core 6.x ist PowerShell 7 ein direktes Upgrade, durch das PowerShell Core 6.x entfernt wird.For PowerShell Core 6.x, PowerShell 7 is an in-place upgrade that removes PowerShell Core 6.x.

  • PowerShell 7 wird in %programfiles%\PowerShell\7 installiert.PowerShell 7 is installed to %programfiles%\PowerShell\7
  • Der Ordner %programfiles%\PowerShell\7 wird $env:PATH hinzugefügt.The %programfiles%\PowerShell\7 folder is added to $env:PATH

Das Installationsprogramm von PowerShell 7 aktualisiert frühere Versionen von PowerShell Core 6.x:The PowerShell 7 installer package upgrades previous versions of PowerShell Core 6.x:

  • PowerShell Core 6. x unter Windows: %programfiles%\PowerShell\6 wird durch %programfiles%\PowerShell\7 ersetzt.PowerShell Core 6.x on Windows: %programfiles%\PowerShell\6 is replaced by %programfiles%\PowerShell\7
  • Linux: /opt/microsoft/powershell/6 wird durch /opt/microsoft/powershell/7 ersetzt.Linux: /opt/microsoft/powershell/6 is replaced by /opt/microsoft/powershell/7
  • macOS: /usr/local/microsoft/powershell/6 wird durch /usr/local/microsoft/powershell/7 ersetzt.macOS: /usr/local/microsoft/powershell/6 is replaced by /usr/local/microsoft/powershell/7

Hinweis

In Windows PowerShell heißt die ausführbare Datei zum Starten von PowerShell powershell.exe.In Windows PowerShell, the executable to launch PowerShell is named powershell.exe. Ab Version 6 wurde der Name der ausführbaren Datei so geändert, dass die parallele Ausführung unterstützt wird.In version 6 and above, the executable name is changed to support side-by-side execution. Der neue Name der ausführbaren Datei zum Starten von PowerShell 7 ist pwsh.exe.The new executable name to launch PowerShell 7 is pwsh.exe. Vorschaubuilds bleiben als pwsh-preview anstelle von pwsh im Verzeichnis „7-preview“ erhalten.Preview builds remain in-place as pwsh-preview instead of pwsh under the 7-preview directory.

Verbesserte Abwärtskompatibilität mit Windows PowerShellImproved backwards compatibility with Windows PowerShell

PowerShell 7.0 markiert einen Wechsel zu .NET Core 3.1, wodurch eine wesentlich bessere Abwärtskompatibilität mit vorhandenen Windows PowerShell-Modulen ermöglicht wird.PowerShell 7.0 marks a move a to .NET Core 3.1, enabling significantly more backwards compatibility with existing Windows PowerShell modules. Dazu gehören viele Module unter Windows, die GUI-Funktionalität benötigen, wie Out-GridView und Show-Command, sowie viele Rollenverwaltungsmodule, die Teil von Windows sind.This includes many modules on Windows that require GUI functionality like Out-GridView and Show-Command, as well as many role management modules that ship as part of Windows.

Für Windows wurde Import-Module der neue Schalterparameter UseWindowsPowerShell hinzugefügt.For Windows, a new switch parameter UseWindowsPowerShell is added to Import-Module. Dieser Schalter erstellt in PowerShell 7 ein Proxymodul, das einen lokalen Windows PowerShell-Prozess verwendet, um alle in diesem Modul enthaltenen Cmdlets implizit auszuführen.This switch creates a proxy module in PowerShell 7 that uses a local Windows PowerShell process to implicitly run any cmdlets contained in that module. Weitere Informationen finden Sie unter Import-Module.For more information on Import-Module.

Weitere Informationen dazu, welche Microsoft-Module mit PowerShell 7.0 funktionieren, finden Sie in der Tabelle zur Modulkompatibilität.For more information on which Microsoft modules work with PowerShell 7.0, see the Module Compatibility Table.

Parallele Ausführung zu ForEach-Object hinzugefügtParallel execution added to ForEach-Object

Das Cmdlet ForEach-Object, das Elemente in einer Sammlung iteriert, zeichnet sich nun dank des neuen Parameters Parallel durch integrierte Parallelität aus.The ForEach-Object cmdlet, which iterates items in a collection, now has built-in parallelism with the new Parallel parameter.

Standardmäßig verwenden parallele Skriptblöcke das aktuelle Arbeitsverzeichnis des Aufrufers, der die parallelen Aufgaben gestartet hat.By default, parallel script blocks use the current working directory of the caller that started the parallel tasks.

In diesem Beispiel werden 50.000 Protokolleinträge aus 5 Systemprotokollen auf einem lokalen Windows-Computer abgerufen:This example retrieves 50,000 log entries from 5 system logs on a local Windows machine:

$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'

$logEntries = $logNames | ForEach-Object -Parallel {
    Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5

$logEntries.Count

50000

Der Parameter Parallel gibt den Skriptblock an, der für jeden Eingabeprotokollnamen parallel ausgeführt wird.The Parallel parameter specifies the script block that is run in parallel for each input log name.

Der neue Parameter ThrottleLimit begrenzt die Anzahl der zu einer bestimmten Zeit parallel ausgeführten Skriptblöcke.The new ThrottleLimit parameter limits the number of script blocks running in parallel at a given time. Der Standardwert ist 5.The default is 5.

Verwenden Sie die Variable $_, um das aktuelle Eingabeobjekt im Skriptblock darzustellen.Use the $_ variable to represent the current input object in the script block. Verwenden Sie den Bereich $using:, um Variablenverweise an den ausgeführten Skriptblock zu übergeben.Use the $using: scope to pass variable references to the running script block.

Weitere Informationen finden Sie unter ForEach-Object.For more information about ForEach-Object.

Ternärer OperatorTernary operator

PowerShell 7.0 führt einen ternären Operator ein, der sich wie eine vereinfachte if-else-Anweisung verhält.PowerShell 7.0 introduces a ternary operator which behaves like a simplified if-else statement. Der ternäre Operator von PowerShell ist eng an die Syntax des ternären Operators in C# angelehnt:PowerShell's ternary operator is closely modeled from the C# ternary operator syntax:

<condition> ? <if-true> : <if-false>

Der Bedingungsausdruck wird stets ausgewertet und sein Ergebnis in einen booleschen Wert konvertiert, um zu bestimmen, welcher Zweig als Nächstes ausgewertet wird:The condition-expression is always evaluated and its result converted to a Boolean to determine which branch is evaluated next:

  • Der Ausdruck <if-true> wird ausgeführt, wenn der Ausdruck <condition> TRUE ist.The <if-true> expression is executed if the <condition> expression is true
  • Der Ausdruck <if-false> wird ausgeführt, wenn der Ausdruck <condition> FALSE ist.The <if-false> expression is executed if the <condition> expression is false

Beispiel:For example:

$message = (Test-Path $path) ? "Path exists" : "Path not found"

Wenn in diesem Beispiel der Pfad vorhanden ist, wird Pfad vorhanden angezeigt.In this example, if the path exists, then Path exists is displayed. Wenn der Pfad nicht vorhanden ist, wird Pfad nicht gefunden angezeigt.If the path does not exist, then Path not found is displayed.

Weitere Informationen finden Sie unter Informationen zu „If“.For more information About If.

Pipeline-KettenoperatorenPipeline chain operators

PowerShell 7 implementiert die Operatoren && und ||, um Pipelines bedingt zu verketten.PowerShell 7 implements the && and || operators to conditionally chain pipelines. Diese Operatoren werden in PowerShell als „Pipeline-Kettenoperatoren“ bezeichnet und ähneln AND- und OR-Listen in Shells wie Bash und Zsh sowie bedingten Verarbeitungssymbolen in der Windows-Befehlsshell (cmd.exe).These operators are known in PowerShell as "pipeline chain operators", and are similar to AND and OR lists in shells like Bash and Zsh, as well as conditional processing symbols in the Windows Command Shell (cmd.exe).

Der Operator && führt die rechte Pipeline aus, wenn die linke Pipeline erfolgreich war.The && operator executes the right-hand pipeline, if the left-hand pipeline succeeded. Dagegen führt der Operator || die rechte Pipeline aus, wenn die linke Pipeline fehlgeschlagen ist.Conversely, the || operator executes the right-hand pipeline if the left-hand pipeline failed.

Hinweis

Diese Operatoren verwenden die Variablen $? und $LASTEXITCODE, um zu bestimmen, ob eine Pipeline fehlgeschlagen ist.These operators use the $? and $LASTEXITCODE variables to determine if a pipeline failed. Dadurch können Sie sie mit nativen Befehlen und nicht bloß mit Cmdlets oder Funktionen verwenden.This allows you to use them with native commands and not just with cmdlets or functions.

Hier ist der erste Befehl erfolgreich, und der zweite Befehl wird ausgeführt:Here, the first command succeeds and the second command is executed:

Write-Output 'First' && Write-Output 'Second'
First
Second

Hier schlägt der erste Befehl fehl, der zweite wird nicht ausgeführt:Here, the first command fails, the second is not executed:

Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

Hier ist der erste Befehl erfolgreich, der zweite Befehl wird nicht ausgeführt:Here, the first command succeeds, the second command is not executed:

Write-Output 'First' || Write-Output 'Second'
First

Hier schlägt der erste Befehl fehl, sodass der zweite Befehl ausgeführt wird:Here, the first command fails, so the second command is executed:

Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second

Weitere Informationen zu finden Sie unter Informationen zu Pipeline-Kettenoperatoren.For more information About Pipeline Chain Operators.

NULL-Sammeloperator, Zuweisung und bedingte OperatorenNull-coalescing, assignment, and conditional operators

PowerShell 7 bietet den NULL-Sammeloperator ??, die Zuweisung mit NULL-Bedingung ??= sowie die Zugriffsoperatoren ?. und ?[] für Member mit NULL-Bedingung.PowerShell 7 includes Null coalescing operator ??, Null conditional assignment ??=, and Null conditional member access operators ?. and ?[].

NULL-Sammeloperator ??Null-coalescing Operator ??

Der NULL-Sammeloperator ?? gibt den Wert seines linken Operanden zurück, wenn er nicht NULL ist.The null-coalescing operator ?? returns the value of its left-hand operand if it isn't null. Andernfalls wertet er den rechten Operanden aus und gibt sein Ergebnis zurück.Otherwise, it evaluates the right-hand operand and returns its result. Der Operator ?? wertet seinen rechten Operanden nicht aus, wenn der linke Operand mit ungleich NULL auswertet wird.The ?? operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ?? 100
100

Im folgenden Beispiel wird der rechte Operand nicht ausgewertet:In the following example, the right-hand operand won't be evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020

Zuweisungsoperator mit NULL-Bedingung ??=Null conditional assignment operator ??=

Der Zuweisungsoperator mit NULL-Bedingung ??= weist den Wert seines rechten Operanden dem linken Operanden nur zu, wenn der linke Operand mit NULL ausgewertet wird.The null conditional assignment operator ??= assigns the value of its right-hand operand to its left-hand operand only if the left-hand operand evaluates to null. Der Operator ??= wertet seinen rechten Operanden nicht aus, wenn der linke Operand mit ungleich NULL auswertet wird.The ??= operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ??= 100
$x
100

Im folgenden Beispiel wird der rechte Operand nicht ausgewertet:In the following example, the right-hand operand is not evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020

Zugriffsoperatoren für Member mit NULL-Bedingung ?.Null conditional member access operators ?. und ?[] (experimentell)and ?[] (Experimental)

Hinweis

Dies ist ein experimentelles Feature mit dem Namen PSNullConditionalOperators.This is an experimental feature named PSNullConditionalOperators. Weitere Informationen finden Sie unter Informationen zu experimentellen Features.Learn more About Experimental Features.

Ein bedingter NULL-Operator erlaubt den Memberzugriff (?.) oder Elementzugriff (?[]) auf seinen Operanden nur dann, wenn dieser Operand mit ungleich NULL ausgewertet wird. Andernfalls gibt er NULL zurück.A null conditional operator permits member access, ?., or element access, ?[], to its operand only if that operand evaluates to non-null; otherwise, it returns null.

Hinweis

Da PowerShell erlaubt, dass ? Teil des Variablennamens ist, ist für die Verwendung dieser Operatoren die formale Angabe des Variablennamens erforderlich.Since PowerShell allows ? to be part of the variable name, formal specification of the variable name is required for using these operators. Daher ist es nötig, {} um die Variablennamen herum zu platzieren, wie z. B. ${a} oder wenn ? Teil des Variablennamens ${a?} ist.So it is required to use {} around the variable names like ${a} or when ? is part of the variable name ${a?}.

Im folgenden Beispiel wird der Wert der Membereigenschaft Status zurückgegeben:In the following example, the value of the member property Status is returned:

$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped

Das folgende Beispiel gibt NULL zurück, ohne dass versucht wird, auf den Membernamen Status zuzugreifen:The following example returns null, without trying to access the member name Status:

$service = $Null
${Service}?.status

Analog wird bei Verwendung von ?[] der Wert des Elements zurückgegeben:Similarly, using ?[], the value of the element is returned:

$a = 1..10
${a}?[0]
1

Wenn der Operand NULL ist, wird nicht auf das Element zugegriffen und NULL zurückgegeben:And when the operand is null, the element isn't accessed and null is returned:

$a = $null
${a}?[0]

Weitere Informationen finden Sie unter Informationen zu Operatoren.For more information About_Operators.

Neue Ansicht ConciseView und neues Cmdlet Get-ErrorNew view ConciseView and cmdlet Get-Error

In PowerShell 7.0 wurde die Anzeige von Fehlermeldungen verbessert, um die Lesbarkeit von Interaktions- und Skriptfehlern mithilfe einer neuen Standardansicht namens ConciseView zu optimieren.PowerShell 7.0 enhances the display of error messages to improve the readability of interactive and script errors with a new default view ConciseView. Die Ansichten sind vom Benutzer über die Einstellungsvariable $ErrorView auswählbar.The views are user-selectable through the preference variable $ErrorView.

Wenn bei ConciseView ein Fehler nicht von einem Skript- oder Parserfehler herrührt, handelt es sich um eine einzeilige Fehlermeldung:With ConciseView, if an error is not from a script or parser error, then it's a single line error message:

Get-Childitem -Path c:\NotReal
Get-ChildItem: Cannot find path 'C:\NotReal' because it does not exist

Wenn der Fehler während der Skriptausführung auftritt oder ein Analysefehler ist, gibt PowerShell eine mehrzeilige Fehlermeldung zurück. Diese enthält den Fehler, einen Zeiger und eine Fehlermeldung, die angibt, wo der Fehler in dieser Zeile vorliegt.If the error occurs during script execution or is a parsing error, PowerShell returns a multiline error message that contains the error, a pointer and error message showing where the error is in that line. Wenn das Terminal keine farbigen Escapesequenzen nach ANSI (VT100) unterstützt, werden keine Farben angezeigt.If the terminal doesn't support ANSI color escape sequences (VT100), then colors are not displayed.

Fehleranzeige in einem Skript

Die Standardansicht in PowerShell 7 ist ConciseView.The default view in PowerShell 7 is ConciseView. Die vorherige Standardansicht war NormalView, die durch Festlegen der Einstellungsvariablen $ErrorView ausgewählt werden kann.The previous default view was NormalView and you can select thisby setting the preference variable $ErrorView.

$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView

Hinweis

Die neue Eigenschaft ErrorAccentColor wird zu $Host.PrivateData hinzugefügt, um die Änderung der Akzentfarbe der Fehlermeldung zu unterstützen.A new property ErrorAccentColor is added to $Host.PrivateData to support changing the accent color of the error message.

Das neue Cmdlet Get-Error bietet auf Wunsch eine vollständige Detailansicht des vollqualifizierten Fehlers.A new cmdlet Get-Error provides a complete detailed view of the fully qualified error when desired. Standardmäßig zeigt das Cmdlet die vollständigen Details, einschließlich innerer Ausnahmen, des zuletzt aufgetretenen Fehlers an.By default the cmdlet displays the full details, including inner exceptions, of the last error that occurred.

Anzeige aus Get-Error

Das Cmdlet Get-Error unterstützt die Eingabe aus der Pipeline unter Verwendung der integrierten Variablen $Error.The Get-Error cmdlet supports input from the pipeline using the built-in variable $Error. Get-Error zeigt alle weitergeleiteten Fehler an.Get-Error displays all piped errors.

$Error | Get-Error

Das Cmdlet Get-Error unterstützt den Parameter Newest, mit dem Sie angeben können, wie viele Fehler aus der aktuellen Sitzung angezeigt werden sollen.The Get-Error cmdlet supports the Newest parameter, allowing you to specify how many errors from the current session you wish displayed.

Get-Error -Newest 3 # Displays the lst three errors that occurred in the session

Weitere Informationen finden Sie unter Get-Error.For more information about Get-Error.

Benachrichtigung zu neuen VersionenNew version notification

PowerShell 7 verwendet Updatebenachrichtigungen, um Benutzer über das Vorhandensein von Updates für PowerShell zu informieren.PowerShell 7 uses update notifications to alert users to the existence of updates to PowerShell. Einmal pro Tag fragt PowerShell einen Onlinedienst ab, um zu prüfen, ob eine neuere Version verfügbar ist.Once per day, PowerShell queries an online service to determine if a newer version is available.

Hinweis

Die Prüfung auf Updates erfolgt während der ersten Sitzung innerhalb eines bestimmten 24-stündigen Zeitraums.The update check happens during the first session in a given 24-hour period. Aus Leistungsgründen beginnt die Prüfung auf Updates 3 Sekunden nach Beginn der Sitzung.For performance reasons, the update check starts 3 seconds after the session begins. Die Benachrichtigung wird nur zu Beginn nachfolgender Sitzungen angezeigt.The notification is shown only on the start of subsequent sessions.

Standardmäßig abonniert PowerShell je nach Version/Branch einen von zwei verschiedenen Benachrichtigungskanälen.By default, PowerShell subscribes to one of two different notification channels depending on its version/branch. Unterstützte, allgemein verfügbare (GA-) Versionen von PowerShell geben nur für aktualisierte GA-Releases Benachrichtigungen zurück.Supported, Generally Available (GA) versions of PowerShell only return notifications for updated GA releases. Vorschau- und Release Candidate-Releases (RC) benachrichtigen über Updates für Vorschau-, RC- und GA-Releases.Preview and Release Candidate (RC) releases notify of updates to preview, RC, and GA releases.

Das Verhalten der Updatebenachrichtigung kann mithilfe der Umgebungsvariablen $Env:POWERSHELL_UPDATECHECK geändert werden.The update notification behavior can be changed using the $Env:POWERSHELL_UPDATECHECK environment variable. Die folgenden Werte werden unterstützt:The following values are supported:

  • Default entspricht der Nichtangabe von $Env:POWERSHELL_UPDATECHECK.Default is the same as not defining $Env:POWERSHELL_UPDATECHECK
    • GA-Releases benachrichtigen zu Updates von GA-Releases.GA releases notify of updates to GA releases
    • Vorschau-/RC-Releases benachrichtigen zu Updates von GA- und Vorschau-Releases.Preview/RC releases notify of updates to GA and preview releases
  • Off deaktiviert das Feature zur Updatebenachrichtigung.Off turns off the update notification feature
  • LTS benachrichtigt nur zu Updates für LTS GA-Releases (Long-Term-Servicing).LTS only notifies of updates to long-term-servicing (LTS) GA releases

Hinweis

Die Umgebungsvariable $Env:POWERSHELL_UPDATECHECK ist erst vorhanden, nachdem sie zum ersten Mal festgelegt wurde.The environment variable $Env:POWERSHELL_UPDATECHECK does not exist until it is set for the first time.

So legen Sie die Versionsbenachrichtigung nur für LTS-Releases festTo set the version notification for LTS releases only:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

So legen Sie die Versionsbenachrichtigung auf das Default-Verhalten festTo set the version notification to the Default behavior:

$Env:POWERSHELL_UPDATECHECK = 'Default'

Weitere Informationen finden Sie unter Informationen zu Updatebenachrichtigungen.For more information About Update Notifications.

Unterstützung für neue DSC-Ressourcen mit Invoke-DSCResource (experimentell)New DSC Resource support with Invoke-DSCResource (Experimental)

Hinweis

Dies ist ein experimentelles Feature mit dem Namen PSDesiredStateConfiguration.InvokeDscResource.This is an experimental feature named PSDesiredStateConfiguration.InvokeDscResource. Weitere Informationen finden Sie unter Informationen zu experimentellen Features.Learn more About Experimental Features.

Mit dem Cmdlet Invoke-DscResource wird eine Methode einer angegebenen PowerShell DSC-Ressource (Desired State Configuration) ausgeführt.The Invoke-DscResource cmdlet runs a method of a specified PowerShell Desired State Configuration (DSC) resource.

Dieses Cmdlet ruft eine DSC-Ressource direkt auf, ohne ein Konfigurationsdokument zu erstellen.This cmdlet invokes a DSC resource directly, without creating a configuration document. Mit diesem Cmdlet können Konfigurationsverwaltungsprodukte Windows oder Linux mithilfe von DSC-Ressourcen verwalten.Using this cmdlet, configuration management products can manage Windows or Linux by using DSC resources. Dieses Cmdlet ermöglicht auch das Debuggen von Ressourcen, wenn die DSC-Engine mit aktiviertem Debuggen ausgeführt wird.This cmdlet also enables debugging of resources when the DSC engine is running with debugging enabled.

Mit diesem Befehl wird die Set-Methode einer Ressource mit dem Namen WindowsProcess aufgerufen und die zum Starten des angegebenen Windows-Prozesses erforderlichen Eigenschaften Path und Arguments bereitgestellt.This command invokes the Set method of a resource named WindowsProcess and provides the mandatory Path and Arguments properties to start the specified Windows process.

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
  Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
  Arguments = ''
}

Weitere Informationen finden Sie unter Invoke-DSCResource.For more information about Invoke-DSCResource.

Breaking Changes und VerbesserungenBreaking Changes and Improvements

Aktuelle ÄnderungenBreaking Changes

  • Bewirken, dass Updatebenachrichtigungen LTS und Standardkanäle unterstützen (#11132)Make update notification support LTS and default channels (#11132)
  • Aktualisierung von Test-Connection, damit das Cmdlet mehr wie in Windows PowerShell funktioniert (#10697) (vielen Dank an @vexx32!)Update Test-Connection to work more like the one in Windows PowerShell (#10697) (Thanks @vexx32!)
  • Beibehaltung von $?Preserve $? für ParenExpression, SubExpression und ArrayExpression (#11040)for ParenExpression, SubExpression and ArrayExpression (#11040)
  • Festlegung des Arbeitsverzeichnisses auf das aktuelle Verzeichnis in Start-Job (#10920) (vielen Dank an @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Veranlassen, dass $PSCulture Veränderungen der Kultur innerhalb der Sitzung konsistent widerspiegelt (#10138) (vielen Dank an @iSazonov!)Make $PSCulture consistently reflect in-session culture changes (#10138) (Thanks @iSazonov!)

Engineupdates und FixesEngine Updates and Fixes

  • Verbesserungen bei Haltepunkt-APIs für Remoteszenarien (#11312)Improvements in breakpoint APIs for remote scenarios (#11312)
  • Korrektur des Entweichens von PowerShell-Klassendefinition in einen anderen Runspace (#11273)Fix PowerShell class definition leaking into another Runspace (#11273)
  • Korrektur einer Regression in der Formatierung, die durch die in 7.0.0-Preview1 hinzugefügte Primitive FirstOrDefault verursacht wurde (#11258)Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 (#11258)
  • Zusätzliche in PS7-Telemetrie nachzuverfolgende Microsoft-Module (#10751)Additional Microsoft Modules to track in PS7 Telemetry (#10751)
  • Festlegung genehmigter Features als nicht experimentell (#11303)Make approved features non-experimental (#11303)
  • Aktualisierung von ConciseView für die Verwendung von TargetObject, falls zutreffend (#11075)Update ConciseView to use TargetObject if applicable (#11075)
  • Korrektur von NullReferenceException in öffentlichen CompletionCompleters-Methoden (#11274)Fix NullReferenceException in CompletionCompleters public methods (#11274)
  • Korrektur der Überprüfung des Status des Apartment-Threads auf Nicht-Windows-Plattformen (#11301)Fix apartment thread state check on non-Windows platforms (#11301)
  • Aktualisierung der Einstellung PSModulePath dergestalt, dass Prozess- und Computerumgebungsvariablen verkettet werden (#11276)Update setting PSModulePath to concatenate the process and machine environment variables (#11276)
  • Aktualisierung von .NET Core auf 3.1.0 (#11260)Bump .NET Core to 3.1.0 (#11260)
  • Korrektur der Erkennung von $PSHOME vor $env:PATH (#11141)Fix detection of $PSHOME in front of $env:PATH (#11141)
  • Zulassen, dass pwsh $env:PSModulePath erbt, und ermöglichen, dass powershell.exe ordnungsgemäß gestartet wird (#11057)Allow pwsh to inherit $env:PSModulePath and enable powershell.exe to start correctly (#11057)
  • Umstieg auf .NET Core 3.1 Preview 1 (#10798)Move to .NET Core 3.1 preview 1 (#10798)
  • Umgestaltung von Tagprüfungen nach erneuter Analyse in Dateisystemanbieter (#10431) (vielen Dank an @iSazonov!)Refactor reparse tag checks in file system provider (#10431) (Thanks @iSazonov!)
  • Ersetzung von Wagenrücklauf- und Zeilenvorschubzeichen (CR und LF) durch das Zeichen 0x23CE in Skriptprotokollierung (#10616)Replace CR and new line with a 0x23CE character in script logging (#10616)
  • Korrektur eines Ressourcenlecks durch Aufheben der Registrierung des Ereignisbehandlers in AppDomain.CurrentDomain.ProcessExit (#10626)Fix a resource leak by unregistering the event handler from AppDomain.CurrentDomain.ProcessExit (#10626)
  • Hinzufügung von Unterstützung für ActionPreference.break, um den Debugger anzuhalten, wenn Debug-, Fehler-, Informations-, Status-, ausführliche oder Warnmeldungen generiert werden (#8205) (vielen Dank an @KirkMunro!)Add support to ActionPreference.Break to break into debugger when Debug, Error, Information, Progress, Verbose or Warning messages are generated (#8205) (Thanks @KirkMunro!)
  • Aktivierung des Starts von Systemsteuerungs-Add-Ins in PowerShell Core ohne Angabe der CPL-Erweiterung.Enable starting control panel add-ins within PowerShell Core without specifying .CPL extension. (#9828)(#9828)
  • Unterstützung negativer Zahlen im Operator -split (#8960) (vielen Dank an @ece-jacob-scott!)Support negative numbers in -split operator (#8960) (Thanks @ece-jacob-scott!)

Allgemeine Cmdletupdates und KorrekturenGeneral Cmdlet Updates and Fixes

  • Korrektur für Problem in Raspbian beim Festlegen des Datums von Dateiänderungen im experimentellen Feature UnixStat (#11313)Fix for issue on Raspbian for setting date of file changes in UnixStat Experimental Feature (#11313)
  • Hinzufügung von -AsPlainText zu ConvertFrom-SecureString (#11142)Add -AsPlainText to ConvertFrom-SecureString (#11142)
  • Prüfung der WindowsPS-Version für WinCompat hinzugefügt (#11148)Added WindowsPS version check for WinCompat (#11148)
  • Korrektur der Fehlerberichterstellung in einigen WinCompat-Szenarien (#11259)Fix error-reporting in some WinCompat scenarios (#11259)
  • Hinzufügung von nativem binären Konfliktlöser (#11032) (vielen Dank an@iSazonov!)Add native binary resolver (#11032) (Thanks @iSazonov!)
  • Aktualisierung der Berechnung der Zeichenbreite unter vollständiger Berücksichtigung von CJK-Zeichen (#11262)Update calculation of char width to respect CJK chars correctly (#11262)
  • Hinzufügung von Unblock-File für macOS (#11137)Add Unblock-File for macOS (#11137)
  • Korrektur von Regression in Get-PSCallStack (#11210) (vielen Dank an @iSazonov!)Fix regression in Get-PSCallStack (#11210) (Thanks @iSazonov!)
  • Entfernung des automatischen Ladens des Moduls ScheduledJob bei Verwendung von Job-Cmdlets (#11194)Remove autoloading of the ScheduledJob module when using Job cmdlets (#11194)
  • Hinzufügung von OutputType zum Cmdlet Get-Error und Beibehaltung ursprünglicher Typnamen (#10856)Add OutputType to Get-Error cmdlet and preserve original typenames (#10856)
  • Korrektur des NULL-Verweises in der Eigenschaft SupportsVirtualTerminal (#11105)Fix null reference in SupportsVirtualTerminal property (#11105)
  • Hinzufügung der Grenzwertprüfung in Get-WinEvent (#10648) (vielen Dank an @iSazonov!)Add limit check in Get-WinEvent (#10648) (Thanks @iSazonov!)
  • Korrektur der Befehlslaufzeit dahingehend, dass StopUpstreamCommandsException in -ErrorVariable nicht aufgefüllt wird (#10840)Fix command runtime so StopUpstreamCommandsException doesn't get populated in -ErrorVariable (#10840)
  • Festlegung der Ausgabecodierung auf [Console]::OutputEncoding für native Befehle (#10824)Set the output encoding to [Console]::OutputEncoding for native commands (#10824)
  • Unterstützung mehrzeiliger Codeblöcke in Beispielen (#10776) (vielen Dank an @Greg-Smulko!)Support multi-line code blocks in examples (#10776) (Thanks @Greg-Smulko!)
  • Hinzufügung des Culture-Parameters zum Cmdlet Select-String (#10943) (vielen Dank an @iSazonov!)Add Culture parameter to Select-String cmdlet (#10943) (Thanks @iSazonov!)
  • Korrektur des Arbeitsverzeichnispfads von Start-Job mit nachgestelltem Rückwärtsschrägstrich (#11041)Fix Start-Job working directory path with trailing backslash (#11041)
  • ConvertFrom-Json: Standardmäßiges Aufheben des Umbruchs in Sammlungen (#10861) (vielen Dank an @danstur!)ConvertFrom-Json: Unwrap collections by default (#10861) (Thanks @danstur!)
  • Unterscheidung von Groß-/Kleinschreibung für das Cmdlet Group-Object mit den Schaltern -CaseSensitive und -AsHashtable (#11030) (vielen Dank an @vexx32!)Use case-sensitive Hashtable for Group-Object cmdlet with -CaseSensitive and -AsHashtable switches (#11030) (Thanks @vexx32!)
  • Behandlung der Ausnahme, wenn die Aufzählung von Dateien beim Neuerstellen des Pfads fehlschlägt, um die richtige Schreibweise zu erhalten (#11014)Handle exception if enumerating files fails when rebuilding path to have correct casing (#11014)
  • Korrektur von ConciseView zur Anzeige von Activity statt myCommand (#11007)Fix ConciseView to show Activity instead of myCommand (#11007)
  • Zulassen, dass Web-Cmdlets HTTP-Fehlerstatus ignorieren (#10466) (vielen Dank an @vdamewood!)Allow web cmdlets to ignore HTTP error statuses (#10466) (Thanks @vdamewood!)
  • Korrektur der Weiterleitung von mehr als einer CommandInfo an Get-Command (#10929)Fix piping of more than one CommandInfo to Get-Command (#10929)
  • Wiederhinzufügung des Cmdlets Get-Counter für Windows (#10933)Add back Get-Counter cmdlet for Windows (#10933)
  • Veranlassen, dass ConvertTo-Json [AutomationNull]::Value und [NullString]::Value als $null behandelt (#10957)Make ConvertTo-Json treat [AutomationNull]::Value and [NullString]::Value as $null (#10957)
  • Entfernung von Klammern aus der IPv6-Adresse für SSH-Remoting (#10968)Remove brackets from ipv6 address for SSH remoting (#10968)
  • Kein Absturz mehr, wenn der an pwsh gesendete Befehl nur aus Leerzeichen besteht (#10977)Fix crash if command sent to pwsh is just whitespace (#10977)
  • Plattformübergreifende Cmdlets Get-Clipboard und Set-Clipboard hinzugefügt (#10340)Added cross-platform Get-Clipboard and Set-Clipboard (#10340)
  • Korrektur der Festlegung des Ursprungspfads eines Dateisystemobjekts dahingehend, dass es keinen zusätzlichen nachstehenden Schrägstrich aufweist (#10959)Fix setting original path of filesystem object to not have extra trailing slash (#10959)
  • Unterstützung von $null für ConvertTo-Json (#10947)Support $null for ConvertTo-Json (#10947)
  • Wiederhinzufügung des Befehls Out-Printer für Windows (#10906)Add back Out-Printer command on Windows (#10906)
  • Korrektur von -WorkingDirectory für Start-Job mit Leerzeichen (#10951)Fix Start-Job -WorkingDirectory with whitespace (#10951)
  • Rückgabe des Standardwerts, wenn für eine Einstellung in PSConfiguration.cs der Wert NULL abgerufen wird (#10963) (vielen Dank an @iSazonov!)Return default value when getting null for a setting in PSConfiguration.cs (#10963) (Thanks @iSazonov!)
  • Behandlung von E/A-Ausnahme als nicht beendend (#10950)Handle IO exception as non-terminating (#10950)
  • Hinzufügung der Assembly GraphicalHost zur Aktivierung von Out-GridView, Show-Command und Get-Help -ShowWindow (#10899)Add GraphicalHost assembly to enable Out-GridView, Show-Command, and Get-Help -ShowWindow (#10899)
  • Verwenden von ComputerName über Pipeline in Get-HotFix (#10852) (vielen Dank an @kvprasoon!)Take ComputerName via pipeline in Get-HotFix (#10852) (Thanks @kvprasoon!)
  • Korrektur der Vervollständigung per TAB-TASTE für Parameter dergestalt, dass allgemeine Parameter als verfügbar angezeigt werden (#10850)Fix tab completion for parameters so that it shows common parameters as available (#10850)
  • Korrektur von GetCorrectCasedPath(), um vor dem Aufruf von First() zunächst zu prüfen, ob Systemdateieinträge zurückgegeben werden (#10930)Fix GetCorrectCasedPath() to first check if any system file entries is returned before calling First() (#10930)
  • Festlegung des Arbeitsverzeichnisses auf das aktuelle Verzeichnis in Start-Job (#10920) (vielen Dank an @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Ändern von TabExpansion2 dahingehend, dass -CursorColumn nicht erforderlich ist und als $InputScript.Length behandelt wird (#10849)Change TabExpansion2 to not require -CursorColumn and treat as $InputScript.Length (#10849)
  • Behandeln des Falls, bei dem Host möglicherweise keine Zeilen oder Spalten des Bildschirms zurückgibt (#10938)Handle case where Host may not return Rows or Columns of screen (#10938)
  • Korrektur der Verwendung von Akzentfarben für Hosts, die diese nicht unterstützen (#10937)Fix use of accent colors for hosts that don't support them (#10937)
  • Wiederhinzufügung des Befehls Update-List (#10922)Add back Update-List command (#10922)
  • Aktualisierung von FWLink Id für Clear-RecycleBin (#10925)Update FWLink Id for Clear-RecycleBin (#10925)
  • Überspringen der Datei während der Vervollständigung per TAB-TASTE, wenn Dateiattribute nicht gelesen werden können (#10910)During tab completion, skip file if can't read file attributes (#10910)
  • Wiederhinzufügung von Clear-RecycleBin für Windows (#10909)Add back Clear-RecycleBin for Windows (#10909)
  • Hinzufügung von $env:__SuppressAnsiEscapeSequences zum Steuern, ob bei der Ausgabe eine VT-Escapesequenz verwendet werden soll (#10814)Add $env:__SuppressAnsiEscapeSequences to control whether to have VT escape sequence in output (#10814)
  • Hinzufügung des Parameters -NoEmphasize zur farbigen Darstellung der Ausgabe von Select-String (#8963) (vielen Dank an @derek-xia!)Add -NoEmphasize parameter to colorize Select-String output (#8963) (Thanks @derek-xia!)
  • Wiederhinzufügung des Cmdlets Get-HotFix (#10740)Add back Get-HotFix cmdlet (#10740)
  • Ermöglichung des Verwendens von Add-Type in Anwendungen, die PowerShell hosten (#10587)Make Add-Type usable in applications that host PowerShell (#10587)
  • Verwendung einer effektiveren Auswertungsreihenfolge in LanguagePrimitives.IsNullLike() (#10781) (vielen Dank an @vexx32!)Use more effective evaluation order in LanguagePrimitives.IsNullLike() (#10781) (Thanks @vexx32!)
  • Verbesserung der Handhabung gemischter Sammlungen von weitergeleiteten Eingaben und weitergeleiteten Datenströmen in Format-Hex (#8674) (vielen Dank an @vexx32!)Improve handling of mixed-collection piped input and piped streams of input in Format-Hex (#8674) (Thanks @vexx32!)
  • Verwendung der Typkonvertierung in Hashtabellen für SSHConnection, wenn der Wert nicht dem erwarteten Typ entspricht (#10720) (vielen Dank an @SeeminglyScience!)Use type conversion in SSHConnection hashtables when value doesn't match expected type (#10720) (Thanks @SeeminglyScience!)
  • Korrektur des Verhaltens von Get-Content -ReadCount 0, wenn -TotalCount festgelegt ist (#10749) (vielen Dank an @eugenesmlv!)Fix Get-Content -ReadCount 0 behavior when -TotalCount is set (#10749) (Thanks @eugenesmlv!)
  • Umformulierung der Fehlermeldung des Typs „Zugriff verweigert“ in Get-WinEvent (#10639) (vielen Dank an @iSazonov!)Reword access denied error message in Get-WinEvent (#10639) (Thanks @iSazonov!)
  • Aktivierung der Vervollständigung per TAB-TASTE zur Variablenzuweisung bei Einschränkung von Enumeration oder Typ (#10646)Enable tab completion for variable assignment that is enum or type constrained (#10646)
  • Entfernung der nicht verwendeten Remotingeigenschaft SourceLength, die Formatierungsprobleme verursacht (#10765)Remove unused SourceLength remoting property causing formatting issues (#10765)
  • Hinzufügung des Parameters -Delimiter zu ConvertFrom-StringData (#10665) (vielen Dank an @steviecoaster!)Add -Delimiter parameter to ConvertFrom-StringData (#10665) (Thanks @steviecoaster!)
  • Hinzufügung von Positionsparameter für ScriptBlock bei Verwendung von Invoke-Command mit SSH (#10721) (vielen Dank an @machgo!)Add positional parameter for ScriptBlock when using Invoke-Command with SSH (#10721) (Thanks @machgo!)
  • Anzeige von Zeilenkontextinformationen bei mehreren Zeilen, aber keinen Skriptnamen für ConciseView (#10746)Show line context information if multiple lines but no script name for ConciseView (#10746)
  • Hinzufügung von Unterstützung für Pfade des Typs \wsl$\ zu Dateisystemanbieter (#10674)Add support for \wsl$\ paths to file system provider (#10674)
  • Hinzufügung des fehlenden Tokentexts für TokenKind.QuestionMark im Parser (#10706)Add the missing token text for TokenKind.QuestionMark in parser (#10706)
  • Festlegung des aktuellen Arbeitsverzeichnisses jedes ausgeführten Skripts des Typs ForEach-Object -Parallel auf einen Ort, der mit dem aufrufenden Skript identisch ist.Set current working directory of each ForEach-Object -Parallel running script to the same location as the calling script. (#10672)(#10672)
  • Ersetzung von api-ms-win-core-file-l1-2-2.dll durch Kernell32.dll für die APIs FindFirstStreamW und FindNextStreamW (#10680) (vielen Dank an @iSazonov!)Replace api-ms-win-core-file-l1-2-2.dll with Kernell32.dll for FindFirstStreamW and FindNextStreamW APIs (#10680) (Thanks @iSazonov!)
  • Optimierung des Hilfeformatierungsskripts, um toleranter gegenüber StrictMode zu sein (#10563)Tweak help formatting script to be more StrictMode tolerant (#10563)
  • Hinzufügen des Parameters -SecurityDescriptorSDDL zu New-Service (#10483) (vielen Dank an @kvprasoon!)Add -SecurityDescriptorSDDL parameter to New-Service (#10483) (Thanks @kvprasoon!)
  • Entfernung von Informationsausgaben, Konsolidierung der Nutzung von Ping in Test-Connection (#10478) (vielen Dank an @vexx32!)Remove informational output, consolidate ping usage in Test-Connection (#10478) (Thanks @vexx32!)
  • Lesen spezieller Analysepunkte, ohne auf sie zuzugreifen (#10662) (vielen Dank an @iSazonov!)Read special reparse points without accessing them (#10662) (Thanks @iSazonov!)
  • Direkte Clear-Host-Ausgabe an Terminal (#10681) (vielen Dank an @iSazonov!)Direct Clear-Host output to terminal (#10681) (Thanks @iSazonov!)
  • Wiederhinzufügung eines Zeilenvorschubzeichens für Gruppierung mit Format-Table und -Property (#10653)Add back newline for grouping with Format-Table and -Property (#10653)
  • Entfernung von [ValidateNotNullOrEmpty] aus -InputObject für Get-Random, um eine leere Zeichenfolge zuzulassen (#10644)Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random to allow empty string (#10644)
  • Keine Unterscheidung von Groß-/Kleinschreibung für Entfernungsalgorithmus in Zeichenfolgen des Vorschlagsystems (#10549) (vielen Dank an@iSazonov!)Make suggestion system string distance algorithm case-insensitive (#10549) (Thanks @iSazonov!)
  • Korrektur von NULL-Verweisausnahme in Eingabeverarbeitung für ForEach-Object -Parallel (#10577)Fix null reference exception in ForEach-Object -Parallel input processing (#10577)
  • Hinzufügung von PowerShell Core-Gruppenrichtliniendefinitionen (#10468)Add PowerShell Core group policy definitions (#10468)
  • Aktualisierung des Konsolenhosts zur Unterstützung von XTPUSHSGR/XTPOPSGR VT-Steuersequenzen, die in Zusammensetzbarkeitsszenarien verwendet werden.Update console host to support XTPUSHSGR/XTPOPSGR VT control sequences that are used in composability scenarios. (#10208)(#10208)
  • Hinzufügung des Parameters WorkingDirectory zu Start-Job (#10324) (vielen Dank an @davinci26!)Add WorkingDirectory parameter to Start-Job (#10324) (Thanks @davinci26!)
  • Entfernung des Ereignishandlers, der dazu geführt hat, dass Änderungen an Haltepunkten fälschlicherweise in den Runspacedebugger des Hosts repliziert wurden (#10503) (vielen Dank an @KirkMunro!)Remove the event handler that was causing breakpoint changes to be erroneously replicated to the host runspace debugger (#10503) (Thanks @KirkMunro!)
  • Austausch von api-ms-win-core-job-12-1-0.dll durch Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke-API (#10417) (vielen Dank an @iSazonov!)Replace api-ms-win-core-job-12-1-0.dll with Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Thanks @iSazonov!)
  • Korrektur der falschen Ausgabe für New-Service bei der Variablenzuweisung und -OutVariable (#10444) (vielen Dank an @kvprasoon!)Fix wrong output for New-Service in variable assignment and -OutVariable (#10444) (Thanks @kvprasoon!)
  • Korrektur globaler Toolprobleme bei Exitcode, Befehlszeilenparameter und Pfad mit Leerzeichen (#10461)Fix global tool issues around exit code, command line parameters and path with spaces (#10461)
  • Korrektur der Rekursion in OneDrive: Ändern Sie FindFirstFileEx() so, dass der SafeFindHandle-Typ verwendet wird (#10405)Fix recursion into OneDrive - change FindFirstFileEx() to use SafeFindHandle type (#10405)
  • Überspringen des automatischen Ladens von PSReadLine unter Windows, wenn die NVDA-Sprachausgabe aktiv ist (#10385)Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385)
  • Erhöhung der built-with-PowerShell-Modulversionen auf 7.0.0.0 (#10356)Increase built-with-PowerShell module versions to 7.0.0.0 (#10356)
  • Hinzufügen des Auslösens eines Fehlers in Add-Type, wenn ein Typ mit dem gleichen Namen bereits existiert (#9609) (vielen Dank an @iSazonov!)Add throwing an error in Add-Type if a type with the same name already exists (#9609) (Thanks @iSazonov!)

LeistungPerformance

  • Vermeidung der Verwendung des Abschlusses in Parser.SaveError (#11006)Avoid using closure in Parser.SaveError (#11006)
  • Verbesserung des Zwischenspeicherns beim Erstellen neuer RegEx-Instanzen (#10657) (vielen Dank an @iSazonov!)Improve the caching when creating new Regex instances (#10657) (Thanks @iSazonov!)
  • Verbesserte Verarbeitung der in PowerShell integrierten Typdaten aus types.ps1xml, typesV3.ps1xml und GetEvent.types.ps1xml (#10898)Improve processing of the PowerShell built-in type data from types.ps1xml, typesV3.ps1xml and GetEvent.types.ps1xml (#10898)
  • Aktualisierung von PSConfiguration.ReadValueFromFile, um es schneller und speichereffizienter zu machen (#10839)Update PSConfiguration.ReadValueFromFile to make it faster and more memory efficient (#10839)
  • Hinzufügung kleinerer Leistungsverbesserungen für die Initialisierung von Runspaces (#10569) (Thanks @iSazonov!)Add minor performance improvements for runspace initialization (#10569) (Thanks @iSazonov!)
  • Beschleunigung von ForEach-Object in häufig verwendeten Szenarien (#10454) und Behebung des Leistungsproblems mit ForEach-Object -Parallel in vielen Runspaces (#10455)Make ForEach-Object faster for its commonly used scenarios (#10454) and fix ForEach-Object -Parallel performance problem with many runspaces (#10455)

CodebereinigungCode Cleanup

  • Änderung von Kommentaren und Elementtexten gemäß Microsoft-Standards (#11304)Change comment and element text to meet Microsoft standards (#11304)
  • Bereinigung von Stilproblemen in Compiler.cs (#10368) (vielen Dank an @iSazonov!)Cleanup style issues in Compiler.cs (#10368) (Thanks @iSazonov!)
  • Entfernung des nicht verwendeten Typkonverters für CommaDelimitedStringCollection (#11000) (vielen Dank an @iSazonov!)Remove the unused type converter for CommaDelimitedStringCollection (#11000) (Thanks @iSazonov!)
  • Bereinigung des Stils in InitialSessionState.cs (#10865) (Thanks @iSazonov!)Cleanup style in InitialSessionState.cs (#10865) (Thanks @iSazonov!)
  • Codebereinigung für PSSession-Klasse (#11001)Code clean up for PSSession class (#11001)
  • Entfernung des nicht funktionierenden Features „Update-Help in Get-Help ausführen, wenn Get-Help zum ersten Mal ausgeführt wird“ (#10974)Remove the not-working 'run Update-Help from Get-Help when Get-Help runs for the first time' feature (#10974)
  • Behebung von Stilproblemen (#10998) (vielen Dank an @iSazonov!)Fix style issues (#10998) (Thanks @iSazonov!)
  • Bereinigung: Verwenden Sie den integrierten Typalias. (#10882) (vielen Dank an @iSazonov!)Cleanup: use the built-in type alias (#10882) (Thanks @iSazonov!)
  • Entfernung des nicht verwendeten Einstellungsschlüssels ConsolePrompting und Vermeidung der unnötigen Zeichenfolgenerstellung beim Abfragen der Einstellung ExecutionPolicy (#10985)Remove the unused setting key ConsolePrompting and avoid unnecessary string creation when querying ExecutionPolicy setting (#10985)
  • Deaktivieren der Updatebenachrichtigungsprüfung für tägliche Builds (#10903) (vielen Dank an @bergmeister!)Disable update notification check for daily builds (#10903) (Thanks @bergmeister!)
  • Reaktivierung der in #10338 verloren gegangenen Debug-API (#10808)Reinstate debugging API lost in #10338 (#10808)
  • Entfernung des WorkflowJobSourceAdapter-Verweises, der nicht mehr verwendet wird (#10326) (vielen Dank an @KirkMunro!)Remove WorkflowJobSourceAdapter reference that is no longer used (#10326) (Thanks @KirkMunro!)
  • Bereinigung von COM-Schnittstellen im Sprunglistencode durch Korrektur von PreserveSig-Attributen (#9899) (vielen Dank an @weltkante!)Cleanup COM interfaces in jump list code by fixing PreserveSig attributes (#9899) (Thanks @weltkante!)
  • Hinzufügung eines Kommentars, der beschreibt, warum -ia nicht der Alias für den allgemeinen Parameter -InformationAction ist (#10703) (vielen Dank an @KirkMunro!)Add a comment describing why -ia is not the alias for -InformationAction common parameter (#10703) (Thanks @KirkMunro!)
  • Umbenennung von InvokeCommandCmdlet.cs in InvokeExpressionCommand.cs (#10659) (vielen Dank an @kilasuit!)Rename InvokeCommandCmdlet.cs to InvokeExpressionCommand.cs (#10659) (Thanks @kilasuit!)
  • Hinzufügung geringfügiger Codebereinigungen im Zusammenhang mit Updatebenachrichtigungen (#10698)Add minor code cleanups related to update notifications (#10698)
  • Entfernung veralteter Workflowlogik aus den Skripts für das Remotesetup (#10320) (vielen Dank an @KirkMunro!)Remove deprecated workflow logic from the remoting setup scripts (#10320) (Thanks @KirkMunro!)
  • Aktualisierung des Hilfeformats in die Verwendung der richtigen Schreibweise (#10678) (vielen Dank an @tnieto88!)Update help format to use proper case (#10678) (Thanks @tnieto88!)
  • Bereinigung von CodeFactor-Stilproblemen bei Commits im letzten Monat (#10591) (vielen Dank an @iSazonov!)Clean up CodeFactor style issues coming in commits for the last month (#10591) (Thanks @iSazonov!)
  • Korrektur eines Tippfehlers in der Beschreibung des experimentellen Features PSTernaryOperator (#10586) (vielen Dank an @bergmeister!)Fix typo in description of PSTernaryOperator experimental feature (#10586) (Thanks @bergmeister!)
  • Konvertierung des Enumerationswerts ActionPreference.suspend in einen nicht unterstützten, reservierten Zustand und Aufhebung der Einschränkung für die Verwendung von ActionPreference.Ignore in Einstellungsvariablen (#10317) (vielen Dank an @KirkMunro!)Convert ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#10317) (Thanks @KirkMunro!)
  • Austausch von ArrayList durch List<T>, um besser lesbaren und zuverlässigeren Code zu erhalten, ohne Funktionalität zu ändern (#10333) (vielen Dank an @iSazonov!)Replace ArrayList with List<T> to get more readable and reliable code without changing functionality (#10333) (Thanks @iSazonov!)
  • Korrekturen am Codestil für TestConnectionCommand (#10439) (vielen Dank an @vexx32!)Make code style fixes to TestConnectionCommand (#10439) (Thanks @vexx32!)
  • Bereinigung von AutomationEngine und Entfernung des zusätzlichen Aufrufs der SetSessionStateDrive-Methode (#10416) (vielen Dank an @iSazonov!)Cleanup AutomationEngine and remove extra SetSessionStateDrive method call (#10416) (Thanks @iSazonov!)
  • Umbenennung der Standardeinstellung ParameterSetName zurück in Delimiter für ConvertTo-Csv und ConvertFrom-Csv (#10425)Rename default ParameterSetName back to Delimiter for ConvertTo-Csv and ConvertFrom-Csv (#10425)

ToolsTools

  • Hinzufügung einer Standardeinstellung für die SDKToUse-Eigenschaft für Builds in VS (#11085)Add default setting for the SDKToUse property so that it builds in VS (#11085)
  • Install-Powershell.ps1: Hinzufügung eines Parameters, um die MSI-Installation zu verwenden (#10921) (vielen Dank an @MJECloud!)Install-Powershell.ps1: Add parameter to use MSI installation (#10921) (Thanks @MJECloud!)
  • Hinzufügung einfacher Beispiele für install-powershell.ps1 (#10914) (vielen Dank an @kilasuit!)Add basic examples for install-powershell.ps1 (#10914) (Thanks @kilasuit!)
  • Veranlassen, dass Install-PowerShellRemoting.ps1 eine leere Zeichenfolge im PowerShellHome-Parameter behandelt (#10526) (vielen Dank an @Orca88!)Make Install-PowerShellRemoting.ps1 handle empty string in PowerShellHome parameter (#10526) (Thanks @Orca88!)
  • Wechsel von /etc/lsb-release zu /etc/os-release in install-powershell.sh (#10773) (vielen Dank an @Himura2la!)Switch from /etc/lsb-release to /etc/os-release in install-powershell.sh (#10773) (Thanks @Himura2la!)
  • Überprüfung von pwsh.exe und pwsh in täglicher Version unter Windows (#10738) (vielen Dank an @centreboard!)Check pwsh.exe and pwsh in daily version on Windows (#10738) (Thanks @centreboard!)
  • Entfernen von unnötigem Tippen aus installpsh-osx.sh (#10752)Remove unneeded tap in installpsh-osx.sh (#10752)
  • Aktualisierung von install-powershell.ps1 zur Überprüfung auf bereits installierte tägliche Builds (#10489)Update install-powershell.ps1 to check for already installed daily build (#10489)

TestsTests

  • Unzuverlässigen DSC-Test ausstehend gestalten (#11131)Make unreliable DSC test pending (#11131)
  • Korrektur des Tests von Zeichenfolgendaten für die ordnungsgemäße Validierung von Schlüsseln von Hashtabellen (#10810)Fix stringdata test to correctly validate keys of hashtables (#10810)
  • Entladung von Testmodulen (#11061) (vielen Dank an @iSazonov!)Unload test modules (#11061) (Thanks @iSazonov!)
  • Verlängerung der Zeit zwischen Wiederholungen der Test-URL (#11015)Increase time between retries of testing URL (#11015)
  • Aktualisieren vom Tests, um Testaktionen genau zu beschreiben.Update tests to accurately describe test actions. (#10928) (vielen Dank an @romero126!)(#10928) (Thanks @romero126!)
  • Temporäres Überspringen des unzuverlässigen Tests TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)Temporary skip the flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • Stabilisierung des Ereignishandlertests auf Lecks (#10790)Make the event handler leaking test stable (#10790)
  • Synchronisieren der Großbeschreibung in CI YAML (#10767) (vielen Dank an @RDIL!)Sync capitalization in CI YAML (#10767) (Thanks @RDIL!)
  • Hinzufügung eines Tests für die Korrektur des Ereignishandlerlecks (#10768)Add test for the event handler leaking fix (#10768)
  • Hinzufügung eines Tests von Get-ChildItem (#10507) (vielen Dank an @iSazonov!)Add Get-ChildItem test (#10507) (Thanks @iSazonov!)
  • Ersetzung mehrdeutiger Sprache für Tests von Schalter zu Parameter für Genauigkeit (#10666) (vielen Dank an @romero126!)Replace ambiguous language for tests from switch to parameter for accuracy (#10666) (Thanks @romero126!)
  • Hinzufügung einer experimentellen Prüfung zu Tests von ForEach-Object -Parallel (#10354) (vielen Dank an @KirkMunro!)Add experimental check to ForEach-Object -Parallel tests (#10354) (Thanks @KirkMunro!)
  • Aktualisierung von Tests für Alpine-Validierung (#10428)Update tests for Alpine validation (#10428)

Verbesserungen von Build- und PackvorgängenBuild and Package Improvements

  • Korrektur der Signierung von NuGet-Paketen für den Coordinated Package-Build (#11316)Fix Nuget package signing for Coordinated Package build (#11316)
  • Aktualisierung von Abhängigkeiten in PowerShell-Katalog und NuGet (#11323)Update dependencies from PowerShell Gallery and NuGet (#11323)
  • Aktualisierung von Microsoft.ApplicationInsights von 2.11.0 auf 2.12.0 (#11305)Bump Microsoft.ApplicationInsights from 2.11.0 to 2.12.0 (#11305)
  • Aktualisierung vonMicrosoft.CodeAnalysis.CSharp von 3.3.1 auf 3.4.0 (#11265)Bump Microsoft.CodeAnalysis.CSharp from 3.3.1 to 3.4.0 (#11265)
  • Aktualisierung von Paketen für Debian 10 und 11 (#11236)Updates packages for Debian 10 and 11 (#11236)
  • Ausschließliches Aktivieren experimenteller Funktionen vor RC (#11162)Only enable experimental features prior to RC (#11162)
  • Aktualisierung der Mindestversion von macOS (#11163)Update macOS minimum version (#11163)
  • Aktualisierung von NJsonSchema von 10.0.27 auf 10.0.28 (#11170)Bump NJsonSchema from 10.0.27 to 10.0.28 (#11170)
  • Aktualisierung von Links in README.md und metadata.json für Preview.5 (#10854)Updating links in README.md and metadata.json for Preview.5 (#10854)
  • Auswählen der Dateien für Konformitätstests, die im Besitz von PowerShell sind (#10837)Select the files for compliance tests which are owned by PowerShell (#10837)
  • Ermöglichung des Erstellens eines win7x86-msix-Pakets.Allow win7x86 msix package to build. (10515 intern)(Internal 10515)
  • Zulassen, dass semantische Versionen an die Funktion NormalizeVersion übergeben werden (#11087)Allow semantic versions to be passed to NormalizeVersion function (#11087)
  • Aktualisierung von .NET Core-Framework auf 3.1-preview.3 (#11079)Bump .NET core framework to 3.1-preview.3 (#11079)
  • Aktualisierung von PSReadLine von 2.0.0-beta5 auf 2.0.0-beta6 in /src/Modules (#11078)Bump PSReadLine from 2.0.0-beta5 to 2.0.0-beta6 in /src/Modules (#11078)
  • Aktualisierung von Newtonsoft.Json von 12.0.2 auf 12.0.3 (#11037) (#11038)Bump Newtonsoft.Json from 12.0.2 to 12.0.3 (#11037) (#11038)
  • Hinzufügung von Debian 10-, 11-und CentOS 8-Paketen (#11028)Add Debian 10, 11 and CentOS 8 packages (#11028)
  • Hochladen von JSON-Datei mit Build-Info mit dem Feld ReleaseDate (#10986)Upload Build-Info Json file with the ReleaseDate field (#10986)
  • Aktualisierung von .NET Core-Framework auf 3.1-preview.2 (#10993)Bump .NET core framework to 3.1-preview.2 (#10993)
  • Aktivierung des Builds des x86-MSIX-Pakets (#10934)Enable build of x86 MSIX package (#10934)
  • Aktualisierung der URL des .SDK-Installationsskripts in build.psm1 (#10927)Update the dotnet SDK install script URL in build.psm1 (#10927)
  • Aktualisierung von Markdig.Signed von 0.17.1 auf 0.18.0 (#10887)Bump Markdig.Signed from 0.17.1 to 0.18.0 (#10887)
  • Aktualisierung von ThreadJob von 2.0.1 auf 2.0.2 (#10886)Bump ThreadJob from 2.0.1 to 2.0.2 (#10886)
  • Aktualisierung von AppX Manifest und des Packaging-Moduls entsprechend den Microsoft Store-Anforderungen (#10878)Update AppX Manifest and Packaging module to conform to MS Store requirements (#10878)
  • Aktualisierung des Paketverweises für das PowerShell SDK in preview.5 (10295 intern)Update package reference for PowerShell SDK to preview.5 (Internal 10295)
  • Aktualisierung von ThirdPartyNotices.txt (#10834)Update ThirdPartyNotices.txt (#10834)
  • Aktualisierung von Microsoft.PowerShell.Native auf 7.0.0-preview.3 (#10826)Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Aktualisierung von Microsoft.ApplicationInsights von 2.10.0 auf 2.11.0 (#10608)Bump Microsoft.ApplicationInsights from 2.10.0 to 2.11.0 (#10608)
  • Aktualisierung von NJsonSchema von 10.0.24 auf 10.0.27 (#10756)Bump NJsonSchema from 10.0.24 to 10.0.27 (#10756)
  • Hinzufügung der Unterstützung von MacPorts zum Buildsystem (#10736) (vielen Dank an @Lucius-Q-User!)Add MacPorts support to the build system (#10736) (Thanks @Lucius-Q-User!)
  • Aktualisierung von PackageManagement von 1.4.4 auf 1.4.5 (#10728)Bump PackageManagement from 1.4.4 to 1.4.5 (#10728)
  • Aktualisierung von NJsonSchema von 10.0.23 auf 10.0.24 (#10635)Bump NJsonSchema from 10.0.23 to 10.0.24 (#10635)
  • Hinzufügung einer Umgebungsvariablen zur Unterscheidung von Client-/Servertelemetrie in MSI (#10612)Add environment variable to differentiate client/server telemetry in MSI (#10612)
  • Aktualisierung von PSDesiredStateConfiguration von 2.0.3 auf 2.0.4 (#10603)Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
  • Aktualisierung vonMicrosoft.CodeAnalysis.CSharp von 3.2.1 auf 3.3.1 (#10607)Bump Microsoft.CodeAnalysis.CSharp from 3.2.1 to 3.3.1 (#10607)
  • Aktualisierung von .Net Core 3.0 RTM (#10604) (vielen Dank an @bergmeister!)Update to .Net Core 3.0 RTM (#10604) (Thanks @bergmeister!)
  • Aktualisierung der Erstellung von MSIX-Paketen entsprechend den Microsoft Store-Anforderungen (#10588)Update MSIX packaging so the version to Windows Store requirements (#10588)
  • Aktualisierung der PowerShellGet-Version von 2.2 auf 2.2.1 (#10382)Bump PowerShellGet version from 2.2 to 2.2.1 (#10382)
  • Aktualisierung der PackageManagement-Version von 1.4.3 auf 1.4.4 (#10383)Bump PackageManagement version from 1.4.3 to 1.4.4 (#10383)
  • Aktualisierung von README.md und metadata.json für 7.0.0-preview.4 (10011 intern)Update README.md and metadata.json for 7.0.0-preview.4 (Internal 10011)
  • Aktualisierung der .Net Core 3.0-Version von Preview 9 auf RC1 (#10552) (vielen Dank an @bergmeister!)Upgrade .Net Core 3.0 version from Preview 9 to RC1 (#10552) (Thanks @bergmeister!)
  • Korrektur der Listengenerierung für ExperimentalFeature (intern 9996)Fix ExperimentalFeature list generation (Internal 9996)
  • Aktualisierung der PSReadLine-Version von 2.0.0-beta4 auf 2.0.0-beta5 (#10536)Bump PSReadLine version from 2.0.0-beta4 to 2.0.0-beta5 (#10536)
  • Korrektur des Releasebuildskripts zum Festlegen des ReleasetagsFix release build script to set release tag
  • Aktualisierung von Microsoft.PowerShell.Native auf 7.0.0-preview.2 (#10519)Update version of Microsoft.PowerShell.Native to 7.0.0-preview.2 (#10519)
  • Aktualisierung auf Netcoreapp3.0 preview9 (#10484) (vielen Dank an @bergmeister!)Upgrade to Netcoreapp3.0 preview9 (#10484) (Thanks @bergmeister!)
  • Sicherstellung, dass der täglich koordinierte Build weiß, dass es sich um einen täglichen Build handelt (#10464)Make sure the daily coordinated build, knows it is a daily build (#10464)
  • Aktualisierung des kombinierten Paketbuilds dahingehend, dass die täglichen Builds freigegeben werden (#10449)Update the combined package build to release the daily builds (#10449)
  • Entfernung des Verweises auf appveyor (#10445) (vielen Dank an @RDIL!)Remove appveyor reference (#10445) (Thanks @RDIL!)
  • Aktualisierung von NJsonSchema von 10.0.22 auf 10.0.23 (#10421)Bump NJsonSchema version from 10.0.22 to 10.0.23 (#10421)
  • Entfernung der Löschung des Buildordners linux-x64, da einige Abhängigkeiten für Alpine ihn benötigen (#10407)Remove the deletion of linux-x64 build folder because some dependencies for Alpine need it (#10407)

Dokumentation und Inhalt der HilfeDocumentation and Help Content

  • Umgestaltung von Änderungsprotokollen in ein Protokoll pro Release (#11165)Refactor change logs into one log per release (#11165)
  • Korrektur von FWLinks für Onlinehilfedokumente für PowerShell 7 (#11071)Fix FWLinks for PowerShell 7 online help documents (#11071)
  • Aktualisierung von CONTRIBUTING.MD (#11096) (vielen Dank an @mklement0!)Update CONTRIBUTING.md (#11096) (Thanks @mklement0!)
  • Korrektur von Links zu Installationsdokumenten in README.MD (#11083)Fix installation doc links in README.md (#11083)
  • Hinzufügung von Beispielen zum Skript install-powershell.ps1 (#11024) (vielen Dank an @kilasuit!)Adds examples to install-powershell.ps1 script (#11024) (Thanks @kilasuit!)
  • Korrektur für Hervorhebung von Select-String und Import-DscResource in CHANGELOG.md (#10890)Fix to Select-String emphasis and Import-DscResource in CHANGELOG.md (#10890)
  • Entfernung des veralteten Links aus powershell-beginners-guide.md (#10926)Remove the stale link from powershell-beginners-guide.md (#10926)
  • Merge stabiler Branches und Wartung von Änderungsprotokollen (#10527)Merge stable and servicing change logs (#10527)
  • Aktualisierung der verwendeten .NET-Version in Builddokumenten (#10775) (vielen Dank an @Greg-Smulko!)Update used .NET version in build docs (#10775) (Thanks @Greg-Smulko!)
  • Austausch von Links aus MSDN zu docs.microsoft.com in powershell-beginners-guide.md (#10778) (vielen Dank an @iSazonov!)Replace links from MSDN to docs.microsoft.com in powershell-beginners-guide.md (#10778) (Thanks @iSazonov!)
  • Korrektur eines fehlerhaften Links zur DSC-Übersicht (#10702)Fix broken DSC overview link (#10702)
  • Aktualisierung von Support_Question.md mit einem Link zu Stack Overflow als weitere Communityressource (#10638) (vielen Dank an @mklement0!)Update Support_Question.md to link to Stack Overflow as another community resource (#10638) (Thanks @mklement0!)
  • Hinzufügung der Prozessorarchitektur zur Verteilungsanforderungsvorlage (#10661)Add processor architecture to distribution request template (#10661)
  • Hinzufügung eines neuen PowerShell MoL-Buchs zu Dokumenten zum Erlernen von PowerShell (#10602)Add new PowerShell MoL book to learning PowerShell docs (#10602)
  • Aktualisierung von README.md und Metadaten für v6.1.6 and v6.2.3 (#10523)Update README.md and metadata for v6.1.6 and v6.2.3 releases (#10523)
  • Korrektur eines Tippfehlers in README.md (#10465) (vielen Dank an @vedhasp!)Fix a typo in README.md (#10465) (Thanks @vedhasp!)
  • Hinzufügung eines Verweises auf das Modul PSKoans zur Dokumentation für Lernressourcen (#10369) (vielen Dank an @vexx32!)Add a reference to PSKoans module to Learning Resources documentation (#10369) (Thanks @vexx32!)
  • Aktualisierung von README.md und metadata.json für 7.0.0-preview.3 (#10393)Update README.md and metadata.json for 7.0.0-preview.3 (#10393)