Neuigkeiten in PowerShell Core 6.0What's New in PowerShell Core 6.0
PowerShell Core 6.0 ist eine neue, plattformübergreifende (Windows, macOS und Linux) Open Source-Edition von PowerShell, die für heterogene Umgebungen und die Hybrid Cloud entwickelt wurde.PowerShell Core 6.0 is a new edition of PowerShell that is cross-platform (Windows, macOS, and Linux), open-source, and built for heterogeneous environments and the hybrid cloud.
Aus .NET Framework in .NET Core übernommenMoved from .NET Framework to .NET Core
In PowerShell Core wird .NET Core 2.0 als Runtime verwendet.PowerShell Core uses .NET Core 2.0 as its runtime. Dank .NET Core 2.0 funktioniert PowerShell Core auf verschiedenen Plattformen (Windows, macOS und Linux)..NET Core 2.0 enables PowerShell Core to work on multiple platforms (Windows, macOS, and Linux). PowerShell Core macht auch die .NET Core 2.0-APIs verfügbar, die in PowerShell-Cmdlets und -Skripts verwendet werden.PowerShell Core also exposes the API set offered by .NET Core 2.0 to be used in PowerShell cmdlets and scripts.
In Windows PowerShell wurde die PowerShell-Engine mithilfe der .NET Framework Runtime gehostet.Windows PowerShell used the .NET Framework runtime to host the PowerShell engine. Windows PowerShell macht also die .NET Framework-APIs verfügbar.This means that Windows PowerShell exposes the API set offered by .NET Framework.
Die von .NET Core und .NET Framework gemeinsam genutzten APIs sind als Teil von .NET Standard definiert.The APIs shared between .NET Core and .NET Framework are defined as part of .NET Standard.
Weitere Informationen dazu, wie sich dies auf die Kompatibilität von Modulen und Skripts in PowerShell Core und Windows PowerShell auswirkt, finden Sie unter Abwärtskompatibilität mit Windows PowerShell.For more information on how this affects module/script compatibility between PowerShell Core and Windows PowerShell, see Backwards compatibility with Windows PowerShell.
Unterstützung für macOS und LinuxSupport for macOS and Linux
PowerShell unterstützt jetzt offiziell macOS und Linux, einschließlich:PowerShell now officially supports macOS and Linux, including:
- Windows 7, 8.1 und 10Windows 7, 8.1, and 10
- Windows Server 2008 R2, 2012 R2, 2016Windows Server 2008 R2, 2012 R2, 2016
- Halbjährlicher Kanal von Windows ServerWindows Server Semi-Annual Channel
- Ubuntu 14.04, 16.04 und 17.04Ubuntu 14.04, 16.04, and 17.04
- Debian 8.7 und höher sowie Debian 9Debian 8.7+, and 9
- CentOS 7:CentOS 7
- Red Hat Enterprise Linux 7Red Hat Enterprise Linux 7
- OpenSUSE 42.2OpenSUSE 42.2
- Fedora 25, 26Fedora 25, 26
- macOS 10.12 oder höhermacOS 10.12+
Unsere Community hat außerdem Pakete für die folgenden Plattformen beigetragen, die jedoch nicht offiziell unterstützt werden:Our community has also contributed packages for the following platforms, but they are not officially supported:
- Arch LinuxArch Linux
- Kali LinuxKali Linux
- AppImage (funktioniert auf verschiedenen Linux-Plattformen)AppImage (works on multiple Linux platforms)
Für die folgenden Plattformen gibt es experimentelle (nicht unterstützte) Releases:We also have experimental (unsupported) releases for the following platforms:
- Windows unter ARM32/ARM64Windows on ARM32/ARM64
- Raspbian (Stretch)Raspbian (Stretch)
In PowerShell Core 6.0 wurden einige Änderungen vorgenommen, um die Funktionsweise auf Nicht-Windows-Systemen zu verbessern.A number of changes were made to in PowerShell Core 6.0 to make it work better on non-Windows systems. Einige davon sind sehr wichtig und gelten auch für Windows.Some of these are breaking changes, which also affect Windows. Andere betreffen nur Nicht-Windows-Installationen von PowerShell Core.Others are only present or applicable in non-Windows installations of PowerShell Core.
- Unterstützung der nativen Verwendung von Platzhaltern in Befehlen auf Unix-PlattformenAdded support for native command globbing on Unix platforms.
- Die
more
-Funktionalität respektiert$PAGER
von Linux und entspricht standardmäßigless
.Themore
functionality respects the Linux$PAGER
and defaults toless
. Jetzt können Sie also Platzhalter mit nativen Binärdateien bzw. Befehlen verwenden, z.B.ls *.txt
.This means you can now use wildcards with native binaries/commands (for example,ls *.txt
). (#3463)(#3463) - Der abschließende umgekehrte Schrägstrich wird bei nativen Befehlsargumenten automatisch mit einem Escapezeichen versehen.Trailing backslash is automatically escaped when dealing with native command arguments. (#4965)(#4965)
- Der Schalter
-ExecutionPolicy
wird bei der Ausführung von PowerShell auf Nicht-Windows-Plattformen ignoriert, da das Signieren von Skripts derzeit nicht unterstützt wird.Ignore the-ExecutionPolicy
switch when running PowerShell on non-Windows platforms because script signing is not currently supported. (#3481)(#3481) - ConsoleHost berücksichtigt auf Unix-Plattformen jetzt
NoEcho
.Fixed ConsoleHost to honorNoEcho
on Unix platforms. (#3801)(#3801) Get-Help
unterstützt nun Mustervergleiche auf Unix-Plattformen, bei denen die Groß- und Kleinschreibung nicht beachtet wird.FixedGet-Help
to support case insensitive pattern matching on Unix platforms. (#3852)(#3852)powershell
-Manpage wurde zum Paket hinzugefügt.powershell
man-page added to package
ProtokollierungLogging
Unter macOS verwendet PowerShell native os_log
-APIs zur Anmeldung beim einheitlichen Protokollierungssystem von Apple.On macOS, PowerShell uses the native os_log
APIs to log to Apple's unified logging system. Unter Linux verwendet PowerShell Syslog, eine weit verbreitete Protokollierungslösung.On Linux, PowerShell uses Syslog, a ubiquitous logging solution.
DateisystemFilesystem
Unter macOS und Linux wurden einige Änderungen vorgenommen, damit für Dateinamen, die früher unter Windows nicht unterstützt wurden, nun Unterstützung angeboten wird:A number of changes have been made on macOS and Linux to support filename characters not traditionally supported on Windows:
- Pfade, die an Cmdlets übergeben werden, sind jetzt schrägstrichagnostisch, d.h., dass sowohl „/“ als auch „\“ als Verzeichnistrennzeichen akzeptiert werden.Paths given to cmdlets are now slash-agnostic (both / and \ work as directory separator)
- Die XDG Base Directory-Spezifikation wird eingehalten und standardmäßig verwendet:XDG Base Directory Specification is now respected and used by default:
- Der Linux/macOS-Profilpfad lautet
~/.config/powershell/profile.ps1
The Linux/macOS profile path is located at~/.config/powershell/profile.ps1
- Der Speicherpfad für den Verlauf lautet
~/.local/share/powershell/PSReadline/ConsoleHost_history.txt
The history save path is located at~/.local/share/powershell/PSReadline/ConsoleHost_history.txt
- Der Benutzermodulpfad lautet
~/.local/share/powershell/Modules
The user module path is located at~/.local/share/powershell/Modules
- Der Linux/macOS-Profilpfad lautet
- Unterstützung für Datei- und Ordnernamen mit Doppelpunkt unter Unix.Support for file and folder names containing the colon character on Unix. (#4959)(#4959)
- Unterstützung für Skriptnamen oder vollständige Pfade, die Kommas enthalten.Support for script names or full paths that have commas. (#4136) (Vielen Dank an @TimCurwick)(#4136) (Thanks to @TimCurwick!)
- Es wird erkannt, wann mit
-LiteralPath
die Platzhaltererweiterung für Navigations-Cmdlets unterdrückt wird.Detect when-LiteralPath
is used to suppress wildcard expansion for navigation cmdlets. (#5038)(#5038) Get-ChildItem
wurde in der Funktionsweise anls -R
in *nix und nativeDIR /S
-Windows-Befehle angeglichen.UpdatedGet-ChildItem
to work more like the *nixls -R
and the WindowsDIR /S
native commands.Get-ChildItem
gibt jetzt die symbolischen Links zurück, die bei einer rekursiven Suche gefunden wurden, und sucht nicht in den Verzeichnissen, zu denen die Links führen.Get-ChildItem
now returns the symbolic links encountered during a recursive search and does not search the directories that those links target. (#3780)(#3780)
Groß- und KleinschreibungCase sensitivity
Unter Linux und macOS wird die Groß-/Kleinschreibung im Gegensatz zu Windows meist beachtet, während unter Windows die Groß-/Kleinschreibung beibehalten wird.Linux and macOS tend to be case-sensitive while Windows is case-insensitive while preserving case. PowerShell unterscheidet nicht nach Groß-/Kleinschreibung.In general, PowerShell is case insensitive.
Bei Umgebungsvariablen wird unter macOS und Linux z.B. nach Groß-/Kleinschreibung unterschieden. Daher wurde die Groß-/Kleinschreibung der Umgebungsvariable PSModulePath
standardisiert.For example, environment variables are case-sensitive on macOS and Linux, so the casing of the PSModulePath
environment variable has been standardized. (#3255) Bei Import-Module
wird die Groß-/Kleinschreibung beachtet, wenn der Modulname mit einem Dateipfad bestimmt werden soll.(#3255) Import-Module
is case insensitive when it's using a file path to determine the module's name. (#5097)(#5097)
Unterstützung für parallele InstallationenSupport for side-by-side installations
PowerShell Core wird separat von Windows PowerShell installiert, konfiguriert und ausgeführt.PowerShell Core is installed, configured, and executed separately from Windows PowerShell. Außerdem enthält PowerShell Core ein „portables“ ZIP-Paket,PowerShell Core has a "portable" ZIP package. mit dem Sie beliebig viele Versionen an einem beliebigen Speicherort auf dem Datenträger installieren können, auch lokal für eine Anwendung, die PowerShell als Abhängigkeit verwendet.Using the ZIP package, you can install any number of versions anywhere on disk, including local to an application that takes PowerShell as a dependency. Eine parallele Installation erleichtert das Testen neuer PowerShell-Versionen und die Migration vorhandener Skripts.Side-by-side installation makes it easier to test new versions of PowerShell and migrating existing scripts over time. Sie ermöglicht außerdem Abwärtskompatibilität, da Skripts an bestimmte Versionen angeheftet werden können, die sie benötigen.Side-by-side also enables backwards compatibility as scripts can be pinned to specific versions that they require.
Hinweis
Der MSI-basierte Installer unter Windows führt standardmäßig eine direkte Updateinstallation aus.By default, the MSI-based installer on Windows does an in-place update install.
powershell(.exe)
in pwsh(.exe)
umbenanntRenamed powershell(.exe)
to pwsh(.exe)
Der binäre Name für PowerShell Core wurde von powershell(.exe)
in pwsh(.exe)
geändert.The binary name for PowerShell Core has been changed from powershell(.exe)
to pwsh(.exe)
. So können Benutzer PowerShell Core deterministisch auf Computern ausführen, um parallele Windows PowerShell- und PowerShell Core-Installationen zu unterstützen.This change provides a deterministic way for users to run PowerShell Core on machines to support side-by-side Windows PowerShell and PowerShell Core installations. pwsh
ist außerdem viel kürzer und lässt sich einfacher eingeben.pwsh
is also much shorter and easier to type.
Weitere Änderungen in pwsh(.exe)
im Vergleich zu powershell.exe
:Additional changes to pwsh(.exe)
from powershell.exe
:
- Der erste positionelle Parameter wurde von
-Command
in-File
geändert.Changed the first positional parameter from-Command
to-File
.#!
, auch Shebang genannt, wird damit nicht mehr in PowerShell-Skripts benötigt, die über Nicht-PowerShell-Shells auf Nicht-Windows-Plattformen ausgeführt werden.This change fixes the usage of#!
(aka as a shebang) in PowerShell scripts that are being executed from non-PowerShell shells on non-Windows platforms. Damit können Sie auch Befehle wiepwsh foo.ps1
oderpwsh fooScript
ausführen, ohne-File
anzugeben.It also means that you can run commands likepwsh foo.ps1
orpwsh fooScript
without specifying-File
. Beim Versuch, einen Befehl wiepwsh.exe -Command Get-Command
auszuführen, muss für diese Änderung jedoch-c
oder-Command
explizit angegeben werden.However, this change requires that you explicitly specify-c
or-Command
when trying to run commands likepwsh.exe -Command Get-Command
. (#4019)(#4019) - PowerShell Core akzeptiert den Schalter
-i
(oder-Interactive
), um eine interaktive Shell anzugeben.PowerShell Core accepts the-i
(or-Interactive
) switch to indicate an interactive shell. (#3558) Daher kann PowerShell als Standard-Shell auf Unix-Plattformen verwendet werden.(#3558) This allows PowerShell to be used as a default shell on Unix platforms. - Die Parameter
-importsystemmodules
und-psconsoleFile
wurden auspwsh.exe
entfernt.Removed parameters-importsystemmodules
and-psconsoleFile
frompwsh.exe
. (#4995)(#4995) pwsh -version
wurde geändert, und Hilfe fürpwsh.exe
bei der Ausrichtung an anderen nativen Tools wurde integriert.Changedpwsh -version
and built-in help forpwsh.exe
to align with other native tools. (#4958 & #4931) (Vielen Dank an @iSazonov)(#4958 & #4931) (Thanks @iSazonov)- Ungültige Argument-Fehlermeldungen für
-File
und-Command
und mit den Unix-Standards konsistente Exitcodes (#4573)Invalid argument error messages for-File
and-Command
and exit codes consistent with Unix standards (#4573) - Parameter
-WindowStyle
unter Windows hinzugefügt.Added-WindowStyle
parameter on Windows. (#4573) Paketbasierte Installationsupdates auf Nicht-Windows-Plattformen werden direkt installiert.(#4573) Similarly, package-based installations updates on non-Windows platforms are in-place updates.
Abwärtskompatibilität mit Windows PowerShellBackwards compatibility with Windows PowerShell
Das Ziel von PowerShell Core ist die höchstmögliche Kompatibilität mit Windows PowerShell.The goal of PowerShell Core is to remain as compatible as possible with Windows PowerShell. PowerShell Core verwendet .NET Standard, um binäre Kompatibilität mit vorhandenen .NET-Assemblys bereitzustellen.PowerShell Core uses .NET Standard 2.0 to provide binary compatibility with existing .NET assemblies. Viele PowerShell-Module hängen von diesen Assemblys (häufig DLL-Dateien) ab. Daher lässt .NET Standard zu, dass sie weiterhin .NET Core nutzen.Many PowerShell modules depend on these assemblies (often times DLLs), so .NET Standard allows them to continue working with .NET Core. PowerShell Core enthält auch eine Heuristik, mit der in bekannten Ordnern wie dem üblichen Speicherort des globalen Assemblycache auf dem Datenträger nach .NET Framework-DLL-Abhängigkeiten gesucht wird.PowerShell Core also includes a heuristic to look in well-known folders--like where the Global Assembly Cache typically resides on disk--to find .NET Framework DLL dependencies.
Weitere Informationen zu .NET Standard finden Sie auf dem .NET Blog, in diesem YouTube und in diesen Häufig gestellte Fragen auf GitHub.You can learn more about .NET Standard on the .NET Blog, in this YouTube video, and via this FAQ on GitHub.
Die PowerShell-Sprache und die „integrierten“ Module (z.B. Microsoft.PowerShell.Management
und Microsoft.PowerShell.Utility
) sollten genauso funktionieren wie in Windows PowerShell.Best efforts have been made to ensure that the PowerShell language and "built-in" modules (like Microsoft.PowerShell.Management
, Microsoft.PowerShell.Utility
, etc.) work the same as they do in Windows PowerShell. In vielen Fällen haben wir mit der Hilfe der Community Fehlerkorrekturen und neue Funktionen für diese Cmdlets eingebaut.In many cases, with the help of the community, we've added new capabilities and bug fixes to those cmdlets. In einigen Fällen wurde Funktionalität aufgrund einer fehlenden Abhängigkeit in zugrunde liegenden .NET Ebenen entfernt oder ist nicht verfügbar.In some cases, due to a missing dependency in underlying .NET layers, functionality was removed or is unavailable.
Die meisten der in Windows enthaltenen Module (z.B. DnsClient
, Hyper-V
, NetTCPIP
, Storage
usw.) und andere Microsoft-Produkte, einschließlich Azure und Office, wurden noch nicht explizit auf .NET Core portiert.Most of the modules that ship as part of Windows (for example, DnsClient
, Hyper-V
, NetTCPIP
, Storage
, etc.) and other Microsoft products including Azure and Office have not been explicitly ported to .NET Core yet. Das PowerShell-Team arbeitet mit diesen Produktgruppen und -teams, um ihre vorhandenen Module zu überprüfen und in PowerShell Core zu portieren.The PowerShell team is working with these product groups and teams to validate and port their existing modules to PowerShell Core. Mit .NET Standard und CDXML scheinen viele dieser herkömmliche Windows PowerShell-Module in PowerShell Core zu funktionieren. Dies wurde bisher jedoch noch nicht formal validiert, und sie werden nicht offiziell unterstützt.With .NET Standard and CDXML, many of these traditional Windows PowerShell modules do seem to work in PowerShell Core, but they have not been formally validated, and they are not formally supported.
Durch die Installation des Moduls WindowsPSModulePath
können Sie Windows PowerShell-Module durch Anfügen von PSModulePath
aus Windows PowerShell an PSModulePath
aus PowerShell Core verwenden.By installing the WindowsPSModulePath
module, you can use Windows PowerShell modules by appending the Windows PowerShell PSModulePath
to your PowerShell Core PSModulePath
.
Installieren Sie zunächst das WindowsPSModulePath
-Modul aus dem PowerShell-Katalog:First, install the WindowsPSModulePath
module from the PowerShell Gallery:
# Add `-Scope CurrentUser` if you're installing as non-admin
Install-Module WindowsPSModulePath -Force
Führen Sie nach der Installation dieses Moduls das Cmdlet Add-WindowsPSModulePath
aus, um PSModulePath
aus Windows PowerShell zu PowerShell Core hinzuzufügen:After installing this module, run the Add-WindowsPSModulePath
cmdlet to add the Windows PowerShell PSModulePath
to PowerShell Core:
# Add this line to your profile if you always want Windows PowerShell PSModulePath
Add-WindowsPSModulePath
Docker-UnterstützungDocker support
PowerShell Core enthält Unterstützung für Docker-Container für alle wichtigen Plattformen, die wir unterstützen, einschließlich mehrerer Linux-Distributionen, Windows Server Core und Nano Server.PowerShell Core adds support for Docker containers for all the major platforms we support (including multiple Linux distros, Windows Server Core, and Nano Server).
Eine vollständige Liste finden Sie bei den Tags unter microsoft/powershell
auf Docker Hub.For a complete list, check out the tags on microsoft/powershell
on Docker Hub. Weitere Informationen zu Docker und PowerShell Core finden Sie unter Docker auf GitHub.For more information on Docker and PowerShell Core, see Docker on GitHub.
SSH-basiertes PowerShell-RemotingSSH-based PowerShell Remoting
Das PowerShell-Remoting-Protokoll (PSRP) funktioniert jetzt nicht nur mit dem herkömmlichen WinRM-basierten PSRP, sondern auch mit dem Secure Shell-Protokoll (SSH).The PowerShell Remoting Protocol (PSRP) now works with the Secure Shell (SSH) protocol in addition to the traditional WinRM-based PSRP.
Sie können also Cmdlets wie Enter-PSSession
und New-PSSession
verwenden und sich mithilfe von SSH authentifizieren.This means that you can use cmdlets like Enter-PSSession
and New-PSSession
and authenticate using SSH. Dazu müssen Sie PowerShell nur als Subsystem mit einem OpenSSH-basierten SSH-Server registrieren. Anschließend können Sie Ihre vorhandene SSH-basierte Authentifizierung (z.B. Kennwörter oder private Schlüssel) mit der herkömmlichen PSSession
-Semantik verwenden.All you have to do is register PowerShell as a subsystem with an OpenSSH-based SSH server, and you can use your existing SSH-based authenticate mechanisms (like passwords or private keys) with the traditional PSSession
semantics.
Weitere Informationen zum Konfigurieren und Verwenden von SSH-basiertem Remoting finden Sie unter PowerShell-Remoting über SSH.For more information on configuring and using SSH-based remoting, see PowerShell Remoting over SSH.
Die Standardcodierung ist UTF-8 ohne BOM mit Ausnahme von New-ModuleManifest.Default encoding is UTF-8 without a BOM except for New-ModuleManifest
Früher haben Windows PowerShell-Cmdlets wie Get-Content
und Set-Content
unterschiedliche Codierungen wie ASCII und UTF-16 verwendet.In the past, Windows PowerShell cmdlets like Get-Content
, Set-Content
used different encodings, such as ASCII and UTF-16. Dadurch kam es beim Kombinieren von Cmdlets ohne Angabe einer Codierung immer wieder zu Problemen.The variance in encoding defaults created problems when mixing cmdlets without specifying an encoding.
Nicht-Windows-Plattformen verwenden normalerweise UTF-8 ohne eine Bytereihenfolge-Marke (BOM) als Standardcodierung für Textdateien.Non-Windows platforms traditionally use UTF-8 without a Byte Order Mark (BOM) as the default encoding for text files. Viele Windows-Anwendungen und -Tools kehren UTF-16 jedoch den Rücken und nutzen die BOM-freie UTF-8-Codierung.More Windows applications and tools are moving away from UTF-16 and towards BOM-less UTF-8 encoding. Daher wurde die Standardcodierung in PowerShell Core geändert, damit sie der des größeren Ökosystems entspricht.PowerShell Core changes the default encoding to conform with the broader ecosystems.
Dies bedeutet, dass alle integrierten-Cmdlets, die den Parameter -Encoding
verwenden, auch standardmäßig den Wert UTF8NoBOM
nutzen.This means that all built-in cmdlets that use the -Encoding
parameter use the UTF8NoBOM
value by default. Diese Änderung betrifft folgende Cmdlets:The following cmdlets are affected by this change:
- Add-ContentAdd-Content
- Export-ClixmlExport-Clixml
- Export-CsvExport-Csv
- Export-PSSessionExport-PSSession
- Format-HexFormat-Hex
- Get-ContentGet-Content
- Import-CsvImport-Csv
- Out-FileOut-File
- Select-StringSelect-String
- Send-MailMessageSend-MailMessage
- Set-ContentSet-Content
Diese Cmdlets wurden auch aktualisiert, sodass der Parameter -Encoding
universell System.Text.Encoding
akzeptiert.These cmdlets have also been updated so that the -Encoding
parameter universally accepts System.Text.Encoding
.
Der Standardwert von $OutputEncoding
wurde auch in UTF-8 geändert.The default value of $OutputEncoding
has also been changed to UTF-8.
Es hat sich bewährt, Codierungen in Skripts mithilfe des Parameters -Encoding
explizit festzulegen, um plattformübergreifend deterministisches Verhalten hervorzurufen.As a best practice, you should explicitly set encodings in scripts using the -Encoding
parameter to produce deterministic behavior across platforms.
Das Cmdlet New-ModuleManifest
verfügt nicht über den Parameter Encoding.New-ModuleManifest
cmdlet does not have Encoding parameter. Die Codierung der mit dem Cmdlet New-ModuleManifest
erstellten Modulmanifestdatei (PSD1) hängt von der Umgebung ab: In einer PowerShell Core-Umgebung unter Linux lautet die Codierung UTF-8 (ohne BOM). Andernfalls wird die Codierung UTF-16 (mit BOM) verwendet.The encoding of the module manifest (.psd1) file created with New-ModuleManifest
cmdlet depends on environment: if it is PowerShell Core running on Linux then encoding is UTF-8 (no BOM); otherwise encoding is UTF-16 (with BOM). (#3940)(#3940)
Unterstützung eines kaufmännischen Und-Zeichens (&
) am Ende einer Pipeline (#3360)Support backgrounding of pipelines with ampersand (&
) (#3360)
Wenn Sie ein &
am Ende einer Pipeline einfügen, wird die Pipeline als PowerShell-Auftrag ausgeführt.Putting &
at the end of a pipeline causes the pipeline to be run as a PowerShell job. In diesem Fall wird ein Auftragsobjekt zurückgegeben.When a pipeline is backgrounded, a job object is returned. Wird die Pipeline als Auftrag ausgeführt, kann sie mithilfe aller Standard-*-Job
-Cmdlets verwaltet werden.Once the pipeline is running as a job, all of the standard *-Job
cmdlets can be used to manage the job. Die in der Pipeline verwendeten Variablen (außer der prozessspezifischen) werden automatisch in den Auftrag kopiert, sodass Copy-Item $foo $bar &
funktioniert.Variables (ignoring process-specific variables) used in the pipeline are automatically copied to the job so Copy-Item $foo $bar &
just works. Der Auftrag wird auch im aktuellen Verzeichnis statt im Basisverzeichnis des Benutzers ausgeführt.The job is also run in the current directory instead of the user's home directory. Weitere Informationen zu PowerShell-Aufträgen finden Sie unter about_Jobs.For more information about PowerShell jobs, see about_Jobs.
Semantische VersionsverwaltungSemantic versioning
SemanticVersion
ist nun mitSemVer 2.0
kompatibel.MadeSemanticVersion
compatible withSemVer 2.0
. (#5037) (Vielen Dank an @iSazonov)(#5037) (Thanks @iSazonov!)- Standard-
ModuleVersion
inNew-ModuleManifest
zu0.0.1
geändert, um SemVer zu entsprechen.Changed defaultModuleVersion
inNew-ModuleManifest
to0.0.1
to align with SemVer. (#4842) (Vielen Dank an @LDSpits)(#4842) (Thanks @LDSpits) semver
wurde als Typaccelerator fürSystem.Management.Automation.SemanticVersion
hinzugefügt.Addedsemver
as a type accelerator forSystem.Management.Automation.SemanticVersion
. (#4142) (Vielen Dank an @oising)(#4142) (Thanks to @oising!)- Der Vergleich zwischen einer
SemanticVersion
- und einerVersion
-Instanz, der nur mitMajor
- undMinor
-Versionswerten erstellt wurde, wurde aktiviert.Enabled comparison between aSemanticVersion
instance and aVersion
instance that is constructed only withMajor
andMinor
version values.
SprachupdatesLanguage updates
- Die Analyse von Unicode-Escapesequenzen wurde implementiert, sodass Benutzer Unicode-Zeichen als Argumente, Zeichenfolgen oder Variablennamen verwenden können.Implement Unicode escape parsing so that users can use Unicode characters as arguments, strings, or variable names. (#3958) (Vielen Dank an @rkeithhill)(#3958) (Thanks to @rkeithhill!)
- Es wurde ein neues Escapezeichen für die ESC-TASTE hinzugefügt:
`e
.Added new escape character for ESC:`e
- Es wurde Unterstützung für das Konvertieren von Enumerationen in Zeichenfolgen hinzugefügt. (#4318) (Vielen Dank an @KirkMunro)Added support for converting enums to string (#4318) (Thanks @KirkMunro)
- Probleme bei der Umwandlung eines Arrays mit einem einzigen Element in eine generische Auflistung wurden behoben.Fixed casting single element array to a generic collection. (#3170)(#3170)
- Dem
..
-Operator wurde eine Überladung des Zeichenbereichs hinzugefügt, sodass'a'..'z'
Buchstaben von „a“ bis „z“ zurückgibt.Added character range overload to the..
operator, so'a'..'z'
returns characters from 'a' to 'z'. (#5026) (Vielen Dank an @IISResetMe)(#5026) (Thanks @IISResetMe!) - Schreibgeschützte Variablen werden bei der Variablenzuweisung nicht mehr überschrieben.Fixed variable assignment to not overwrite read-only variables
- Lokale Variablen werden beim Dot-Sourcing von Skript-Cmdlets automatisch per Push an „DottedScopes“ übertragen. (#4709)Push locals of automatic variables to 'DottedScopes' when dotting script cmdlets (#4709)
- Die Optionen „Singleline“ und „Multiline“ können jetzt im Split-Operator verwendet werden. (#4721) (Vielen Dank an @iSazonov)Enable use of 'Singleline, Multiline' option in split operator (#4721) (Thanks @iSazonov)
Engine-UpdatesEngine updates
$PSVersionTable
hat vier neue Eigenschaften:$PSVersionTable
has four new properties:PSEdition
: Dieser Wert ist unter PowerShell Core aufCore
festgelegt und unter Windows PowerShell aufDesktop
.PSEdition
: This is set toCore
on PowerShell Core andDesktop
on Windows PowerShellGitCommitId
: Dies ist die Git-Commit-ID des Git-Branchs oder -Tags, in dem PowerShell erstellt wurde.GitCommitId
: This is the Git commit ID of the Git branch or tag where PowerShell was built. Bei veröffentlichten Builds ist sie wahrscheinlich mitPSVersion
identisch.On released builds, it will likely be the same asPSVersion
.OS
: Dies ist eine von[System.Runtime.InteropServices.RuntimeInformation]::OSDescription
zurückgegebene Betriebssystem-Versionszeichenfolge.OS
: This is an OS version string returned by[System.Runtime.InteropServices.RuntimeInformation]::OSDescription
Platform
: Dieser Wert wird von[System.Environment]::OSVersion.Platform
zurückgegeben. Unter Windows ist er aufWin32NT
, unter macOS aufUnix
und unter Linux aufUnix
festgelegt.Platform
: This is returned by[System.Environment]::OSVersion.Platform
It is set toWin32NT
on Windows,Unix
on macOS, andUnix
on Linux.
- Die
BuildVersion
-Eigenschaft wurde aus$PSVersionTable
entfernt.Removed theBuildVersion
property from$PSVersionTable
. Diese Eigenschaft war stark an die Windows-Buildversion gebunden.This property was strongly tied to the Windows build version. Stattdessen wird empfohlen, die genaue Version von PowerShell Core mitGitCommitId
abzurufen.Instead, we recommend that you useGitCommitId
to retrieve the exact build version of PowerShell Core. (#3877) (Vielen Dank an @iSazonov)(#3877) (Thanks to @iSazonov!) - Die Eigenschaft
ClrVersion
wurde aus$PSVersionTable
entfernt.RemoveClrVersion
property from$PSVersionTable
. Diese Eigenschaft ist für .NET Core irrelevant und wurde nur für die Abwärtskompatibilität in bestimmten Fällen beibehalten, die nicht für PowerShell gelten.This property is irrelevant for .NET Core, and was only preserved in .NET Core for specific legacy purposes that are inapplicable to PowerShell. - Es wurden die drei automatischen Variablen
$IsWindows
,$IsMacOs
und$IsLinux
hinzugefügt, mit denen festgestellt werden kann, ob PowerShell unter einem bestimmten Betriebssystem ausgeführt wird.Added three new automatic variables to determine whether PowerShell is running in a given OS:$IsWindows
,$IsMacOs
, and$IsLinux
. GitCommitId
wurde dem PowerShell Core-Banner hinzugefügt.AddGitCommitId
to PowerShell Core banner. Nun müssen Sie beim Start von PowerShell nicht$PSVersionTable
ausführen, um die Version zu erhalten.Now you don't have to run$PSVersionTable
as soon as you start PowerShell to get the version! (#3916) (Vielen Dank an @iSazonov)(#3916) (Thanks to @iSazonov!)- Es wurde eine JSON-Konfigurationsdatei namens
powershell.config.json
in$PSHome
hinzugefügt, in der einige Einstellungen vor der Startzeit gespeichert werden (z.B.ExecutionPolicy
).Add a JSON config file calledpowershell.config.json
in$PSHome
to store some settings required before startup time (e.g.ExecutionPolicy
). - Es werden keine Pipelines bei der Ausführung von ausführbaren Windows-Dateien blockiert.Don't block pipeline when running Windows EXE's
- Die Enumeration von COM-Auflistungen wurde aktiviert.Enabled enumeration of COM collections. (#4553)(#4553)
Cmdlet-UpdatesCmdlet updates
Neue CmdletsNew cmdlets
Get-Uptime
wurdeMicrosoft.PowerShell.Utility
hinzugefügt.AddGet-Uptime
toMicrosoft.PowerShell.Utility
.- Der Befehl
Remove-Alias
wurde hinzugefügt.AddRemove-Alias
Command. (#5143) (Vielen Dank an @PowershellNinja)(#5143) (Thanks @PowershellNinja!) - Dem Verwaltungsmodul wurde
Remove-Service
hinzugefügt.AddRemove-Service
to Management module. (#4858) (Vielen Dank an @joandrsn)(#4858) (Thanks @joandrsn!)
Web-CmdletsWeb cmdlets
- Unterstützung für die Zertifikatauthentifizierung wurde hinzugefügt.Add certificate authentication support for web cmdlets. (#4646) (Vielen Dank an @markekraus)(#4646) (Thanks @markekraus)
- Unterstützung für Inhaltsheader wurde hinzugefügt.Add support for content headers to web cmdlets. (#4494 & #4640) (Vielen Dank an @markekraus)(#4494 & #4640) (Thanks @markekraus)
- Unterstützung für Header mit mehreren Links wurde hinzugefügt.Add multiple link header support to Web Cmdlets. (#5265) (Vielen Dank an @markekraus)(#5265) (Thanks @markekraus!)
- Unterstützung für die Linkheader-Paginierung (#3828)Support Link header pagination in web cmdlets (#3828)
- Wenn die Antwort einen Linkheader enthält, wird für
Invoke-WebRequest
eine RelationLink-Eigenschaft als Wörterbuch erstellt, das die URLs undrel
-Attribute darstellt. Um die Verwendung zu erleichtern, wird außerdem sichergestellt, dass die URLs absolut sind.ForInvoke-WebRequest
, when the response includes a Link header we create a RelationLink property as a Dictionary representing the URLs andrel
attributes and ensure the URLs are absolute to make it easier for the developer to use. - Wir machen für
Invoke-RestMethod
einen-FollowRelLink
-Schalter verfügbar, wenn die Antwort einen Linkheader enthält, der automatischnext
rel
-Links folgt, bis sie nicht mehr vorhanden sind, oder sobald der optionale Parameterwert-MaximumFollowRelLink
erreicht wird.ForInvoke-RestMethod
, when the response includes a Link header we expose a-FollowRelLink
switch to automatically follownext
rel
links until they no longer exist or once we hit the optional-MaximumFollowRelLink
parameter value.
- Wenn die Antwort einen Linkheader enthält, wird für
- Der Parameter
-CustomMethod
wurde hinzugefügt, um die Verwendung nicht standardmäßiger Methodenverben zu ermöglichen.Add-CustomMethod
parameter to web cmdlets to allow for non-standard method verbs. (#3142) (Vielen Dank an @Lee303)(#3142) (Thanks to @Lee303!) - Unterstützung für
SslProtocol
wurde hinzugefügt.AddSslProtocol
support to Web Cmdlets. (#5329) (Vielen Dank an @markekraus)(#5329) (Thanks @markekraus!) - Mehrteilige Unterstützung wurde hinzugefügt.Add Multipart support to web cmdlets. (#4782) (Vielen Dank an @markekraus)(#4782) (Thanks @markekraus)
-NoProxy
wurde Web-Cmdlets hinzugefügt, damit sie die systemweite Proxyeinstellung ignorieren.Add-NoProxy
to web cmdlets so that they ignore the system-wide proxy setting. (#3447) (Vielen Dank an @TheFlyingCorpse)(#3447) (Thanks to @TheFlyingCorpse!)- Der Benutzer-Agent von Web-Cmdlets meldet nun die Betriebssystemplattform. (#4937) (Vielen Dank an @LDSpits)User Agent of Web Cmdlets now reports the OS platform (#4937) (Thanks @LDSpits)
- Der
-SkipHeaderValidation
-Schalter wurde hinzugefügt, um das Hinzufügen von Headern ohne Überprüfung des Headerwerts zu unterstützen.Add-SkipHeaderValidation
switch to web cmdlets to support adding headers without validating the header value. (#4085)(#4085) - Falls erforderlich, können Sie festlegen, dass Web-Cmdlets das HTTPS-Zertifikat auf dem Server nicht überprüfen sollen.Enable web cmdlets to not validate the HTTPS certificate of the server if required.
- Es wurden Authentifizierungsparameter hinzugefügt.Add authentication parameters to web cmdlets. (#5052) (Vielen Dank an @markekraus)(#5052) (Thanks @markekraus)
- Fügen Sie
-Authentication
hinzu, um drei Optionen bereitzustellen: „Basic“, „OAuth“ und „Bearer“.Add-Authentication
that provides three options: Basic, OAuth, and Bearer. - Es wurde
-Token
hinzugefügt, um das Bearer-Token für die Optionen „OAuth“ und „Bearer“ zu erhalten.Add-Token
to get the bearer token for OAuth and Bearer options. - Es wurde
-AllowUnencryptedAuthentication
hinzugefügt, um die Authentifizierung zu umgehen, die für alle Transportschemas außer HTTPS bereitgestellt wird.Add-AllowUnencryptedAuthentication
to bypass authentication that is provided for any transport scheme other than HTTPS.
- Fügen Sie
-ResponseHeadersVariable
wurdeInvoke-RestMethod
hinzugefügt, um die Erfassung von Antwortheadern zu aktivieren.Add-ResponseHeadersVariable
toInvoke-RestMethod
to enable the capture of response headers. (#4888) (Vielen Dank an @markekraus)(#4888) (Thanks @markekraus)- Web-Cmdlets enthalten nun die HTTP-Antwort in der Ausnahme, wenn der Statuscode der Antwort nicht erfolgreich ist.Fix web cmdlets to include the HTTP response in the exception when the response status code is not success. (#3201)(#3201)
- Der
UserAgent
von Web-Cmdlets wurde vonWindowsPowerShell
inPowerShell
geändert.Change web cmdletsUserAgent
fromWindowsPowerShell
toPowerShell
. (#4914) (Vielen Dank an @markekraus)(#4914) (Thanks @markekraus) Invoke-RestMethod
wurde expliziteContentType
-Erkennung hinzugefügt. (#4692)Add explicitContentType
detection toInvoke-RestMethod
(#4692)-SkipHeaderValidation
von Web-Cmdlets funktioniert jetzt mit nicht standardmäßigen User-Agent-Headern.Fix web cmdlets-SkipHeaderValidation
to work with non-standard User-Agent headers. (#4479 und(#4479 & #4512) (Vielen Dank an @markekraus)4512) (Thanks @markekraus)
JSON-CmdletsJSON cmdlets
ConvertFrom-Json
wurde-AsHashtable
hinzugefügt, sodass stattdessen einHashtable
zurückgegeben wird.Add-AsHashtable
toConvertFrom-Json
to return aHashtable
instead. (#5043) (Vielen Dank an @bergmeister)(#5043) (Thanks @bergmeister!)- Für die
ConvertTo-Json
-Ausgabe wird ein ansprechenderer Formatierer verwendet.Use prettier formatter withConvertTo-Json
output. (#2787) (Vielen Dank an @kittholland)(#2787) (Thanks to @kittholland!) ConvertTo-Json
wurde Unterstützung für dieJobject
-Serialisierung hinzugefügt.AddJobject
serialization support toConvertTo-Json
. (#5141)(#5141)ConvertFrom-Json
deserialisiert nun ein Array von Zeichenfolgen aus der Pipeline, die zusammen eine vollständige JSON-Zeichenfolge bilden,FixConvertFrom-Json
to deserialize an array of strings from the pipeline that together construct a complete JSON string. d.h., Zeilenumbrüche verursachen keine Fehler bei der JSON-Analyse mehr.This fixes some cases where newlines would break JSON parsing. (#3823)(#3823)- Der für
System.Array
definierteAliasProperty "Count"
wurde entfernt.Remove theAliasProperty "Count"
defined forSystem.Array
. Dadurch wird die nicht wichtigeCount
-Eigenschaft aus einigenConvertFrom-Json
-Ausgaben entfernt.This removes the extraneousCount
property on someConvertFrom-Json
output. (#3231) (Vielen Dank an @PetSerAl)(#3231) (Thanks to @PetSerAl!)
CSV-CmdletsCSV cmdlets
Import-Csv
unterstützt nun das erweiterte W3C-Protokolldateiformat. (#2482) (Vielen Dank an @iSazonov)Import-Csv
now supports the W3C Extended Log File Format (#2482) (Thanks @iSazonov!)PSTypeName
-Unterstützung wurde fürImport-Csv
undConvertFrom-Csv
hinzugefügt.AddPSTypeName
Support forImport-Csv
andConvertFrom-Csv
. (#5389) (Vielen Dank an @markekraus)(#5389) (Thanks @markekraus!)Import-Csv
unterstützt nunCR
,LF
undCRLF
als Zeilentrennzeichen.MakeImport-Csv
supportCR
,LF
, andCRLF
as line delimiters. (#5363) (Vielen Dank an @iSazonov)(#5363) (Thanks @iSazonov!)-NoTypeInformation
ist nun der Standard fürExport-Csv
undConvertTo-Csv
.Make-NoTypeInformation
the default onExport-Csv
andConvertTo-Csv
. (#5164) (Vielen Dank an @markekraus)(#5164) (Thanks @markekraus!)
Dienst-CmdletsService cmdlets
- Den von
Get-Service
zurückgegebenenServiceController
-Objekten wurden die EigenschaftenUserName
,Description
,DelayedAutoStart
,BinaryPathName
undStartupType
hinzugefügt.Add propertiesUserName
,Description
,DelayedAutoStart
,BinaryPathName
, andStartupType
to theServiceController
objects returned byGet-Service
. (#4907) (Vielen Dank an @joandrsn)(#4907) (Thanks @joandrsn) - Es wurden Funktionen zum Festlegen von Anmeldeinformationen für den
Set-Service
-Befehl hinzugefügt.Add functionality to set credentials onSet-Service
command. (#4844) (Vielen Dank an @joandrsn)(#4844) (Thanks @joandrsn)
Weitere CmdletsOther cmdlets
Get-ChildItem
wurde ein Parameter namens-FollowSymlink
hinzugefügt, der bedarfsgesteuert symbolische Verknüpfungen mit Prüfungen auf Linkschleifen durchläuft.Add a parameter toGet-ChildItem
called-FollowSymlink
that traverses symlinks on demand, with checks for link loops. (#4020)(#4020)Add-Type
wurde aktualisiert und unterstützt nunCSharpVersion7
.UpdateAdd-Type
to supportCSharpVersion7
. (#3933) (Vielen Dank an @iSazonov)(#3933) (Thanks to @iSazonov)- Das
Microsoft.PowerShell.LocalAccounts
-Modul wurde aufgrund der Verwendung von nicht unterstützten APIs entfernt, bis eine bessere Lösung verfügbar ist.Remove theMicrosoft.PowerShell.LocalAccounts
module due to the use of unsupported APIs until a better solution is found. (#4302)(#4302) *-Counter
-Cmdlets wurden aufgrund der Verwendung von nicht unterstützten APIs ausMicrosoft.PowerShell.Diagnostics
entfernt, bis eine bessere Lösung verfügbar ist.Remove the*-Counter
cmdlets inMicrosoft.PowerShell.Diagnostics
due to the use of unsupported APIs until a better solution is found. (#4303)(#4303)- Unterstützung für
Invoke-Item -Path <folder>
hinzugefügt.Add support forInvoke-Item -Path <folder>
. (#4262)(#4262) Split-Path
wurden die Schalter-Extension
und-LeafBase
hinzugefügt, sodass Pfade zwischen der Dateierweiterung und dem Rest des Dateinamens aufgeteilt werden können.Add-Extension
and-LeafBase
switches toSplit-Path
so that you can split paths between the filename extension and the rest of the filename. (#2721) (Vielen Dank an @powercode)(#2721) (Thanks to @powercode!)Sort-Object
wurden die Parameter-Top
und-Bottom
für die Sortierung „Top/Bottom N“ hinzugefügt.Add parameters-Top
and-Bottom
toSort-Object
for Top/Bottom N sort- Der übergeordnete Prozess eines Prozesses wurde durch Hinzufügen von
CodeProperty "Parent"
zuSystem.Diagnostics.Process
verfügbar gemacht.Expose a process' parent process by adding theCodeProperty "Parent"
toSystem.Diagnostics.Process
. (#2850) (Vielen Dank an @powercode)(#2850) (Thanks to @powercode!) - Für Speicherspalten von
Get-Process
werden MB statt KB verwendet.Use MB instead of KB for memory columns ofGet-Process
- Der Schalter
-NoNewLine
wurdeOut-String
hinzugefügt.Add-NoNewLine
switch forOut-String
. (#5056) (Vielen Dank an @raghav710)(#5056) (Thanks @raghav710) - Das Cmdlet
Move-Item
berücksichtigt nun die Parameter-Include
,-Exclude
und-Filter
.Move-Item
cmdlet honors-Include
,-Exclude
, and-Filter
parameters. (#3878)(#3878) *
kann jetzt in Registrierungspfaden fürRemove-Item
verwendet werden.Allow*
to be used in registry path forRemove-Item
. (#4866)(#4866)-Title
wurdeGet-Credential
hinzugefügt und die Benutzeroberfläche bei Aufforderungen plattformübergreifend vereinheitlicht.Add-Title
toGet-Credential
and unify the prompt experience across platforms.- Der Parameter
-TimeOut
wurdeTest-Connection
hinzugefügt.Add the-TimeOut
parameter toTest-Connection
. (#2492)(#2492) Get-AuthenticodeSignature
-Cmdlets können nun Dateisignatur-Zeitstempel erhalten.Get-AuthenticodeSignature
cmdlets can now get file signature timestamp. (#4061)(#4061)- Der nicht unterstützte
-ShowWindow
-Schalter wurde ausGet-Help
entfernt.Remove unsupported-ShowWindow
switch fromGet-Help
. (#4903)(#4903) Get-Content -Delimiter
enthält nun nicht mehr das von den Arrayelementen zurückgegebene Trennzeichen. (#3706) (Vielen Dank an @mklement0)FixGet-Content -Delimiter
to not include the delimiter in the array elements returned (#3706) (Thanks @mklement0)ConvertTo-HTML
wurden die ParameterMeta
,Charset
undTransitional
hinzugefügt. (#4184) (Vielen Dank an @ergo3114)AddMeta
,Charset
, andTransitional
parameters toConvertTo-HTML
(#4184) (Thanks @ergo3114)- Dem
Get-ComputerInfo
-Ergebnis wurden die EigenschaftenWindowsUBR
undWindowsVersion
hinzugefügt.AddWindowsUBR
andWindowsVersion
properties toGet-ComputerInfo
result -Group
wurde derGet-Verb
-Parameter hinzugefügt.Add-Group
parameter toGet-Verb
New-FileCatalog
undTest-FileCatalog
wurde Unterstützung fürShouldProcess
hinzugefügt (behebt-WhatIf
und-Confirm
).AddShouldProcess
support toNew-FileCatalog
andTest-FileCatalog
(fixes-WhatIf
and-Confirm
). (#3074) (Vielen Dank an @iSazonov)(#3074) (Thanks to @iSazonov!)- Dem Cmdlet
Start-Process
wurde der-WhatIf
-Schalter hinzugefügt. (#4735) (Vielen Dank an @sarithsutha)Add-WhatIf
switch toStart-Process
cmdlet (#4735) (Thanks @sarithsutha) - Vielen vorhandenen Parametern wurde
ValidateNotNullOrEmpty
hinzugefügt.AddValidateNotNullOrEmpty
too many existing parameters.
RegisterkartenvervollständigungTab completion
Der Typrückschluss bei der Vervollständigung mit der TAB-TASTE wurde basierend auf den Variablenwerten der Common Language Runtime verbessert.Enhanced the type inference in tab completion based on runtime variable values. (#2744) (Vielen Dank an @powercode) Dadurch funktioniert die Vervollständigung mit der TAB-TASTE z.B. in folgendem Fall:(#2744) (Thanks to @powercode!) This enables tab completion in situations like:
$p = Get-Process $p | Foreach-Object Prio<tab>
Die Hashtabellen-Vervollständigung mit der TAB-TASTE wurde bei
-Property
vonSelect-Object
hinzugefügt.Add Hashtable tab completion for-Property
ofSelect-Object
. (#3625) (Vielen Dank an @powercode)(#3625) (Thanks to @powercode)Die automatische Argumentvervollständigung wurde für
-ExcludeProperty
und-ExpandProperty
vonSelect-Object
hinzugefügt.Enable argument auto-completion for-ExcludeProperty
and-ExpandProperty
ofSelect-Object
. (#3443) (Vielen Dank an @iSazonov)(#3443) (Thanks to @iSazonov!)native.exe --<tab>
ruft bei der Vervollständigung mit der TAB-TASTE den nativen Vervollständiger auf.Fix a bug in tab completion to makenative.exe --<tab>
call into native completer. (#3633) (Vielen Dank an @powercode)(#3633) (Thanks to @powercode!)
Aktuelle ÄnderungenBreaking changes
Wir haben einige wichtige Änderungen in PowerShell Core 6.0 eingeführt.We've introduced a number of breaking changes in PowerShell Core 6.0. Weitere Informationen finden Sie unter Breaking Changes in PowerShell 6.0.To read more about them in detail, see Breaking Changes in PowerShell Core 6.0.
DebuggenDebugging
- Unterstützung für die Möglichkeit, das Remotedebuggen von
Invoke-Command -ComputerName
schrittweise zu durchlaufen.Support for remote step-in debugging forInvoke-Command -ComputerName
. (#3015)(#3015) - Die Binderdebugprotokollierung wurde in PowerShell Core aktiviert.Enable binder debug logging in PowerShell Core
DateisystemupdatesFilesystem updates
- Der Dateisystemanbieter kann jetzt über einen UNC-Pfad verwendet werden.Enable usage of the Filesystem provider from a UNC path. ($4998)($4998)
Split-Path
funktioniert nun mit UNC-Stämmen.Split-Path
now works with UNC rootscd
ohne Argumente verhält sich nun wiecd ~
.cd
with no arguments now behaves ascd ~
- In PowerShell Core dürfen nun Pfade mit mehr als 260 Zeichen verwendet werden.Fixed PowerShell Core to allow use of paths that are more than 260 characters long. (#3960)(#3960)
Fehlerbehebungen und LeistungsverbesserungenBug fixes and performance improvements
Wir haben viele Leistungsverbesserungen in PowerShell vorgenommen, z.B. bei der Startzeit, bei verschiedenen integrierten Cmdlets sowie bei der Interaktion mit nativen Binärdateien.We've made many improvements to performance across PowerShell, including in startup time, various built-in cmdlets, and interaction with native binaries.
Außerdem wurden einige Fehler in PowerShell Core behoben.We've also fixed a number of bugs within PowerShell Core. Eine vollständige Liste der Korrekturen und Änderungen finden Sie unter [Changelog (Änderungsprotokoll)][] auf GitHub.For a complete list of fixes and changes, check out our changelog on GitHub.
TelemetrieTelemetry
- In PowerShell Core 6.0 wurde dem Konsolenhost Telemetrie hinzugefügt, um zwei Werte zu melden (#3620):PowerShell Core 6.0 added telemetry to the console host to report two values (#3620):
- die Betriebssystemplattform (
$PSVersionTable.OSDescription
)the OS platform ($PSVersionTable.OSDescription
) - die genaue PowerShell-Version (
$PSVersionTable.GitCommitId
)the exact version of PowerShell ($PSVersionTable.GitCommitId
)
- die Betriebssystemplattform (
Wenn Sie diese Telemetrie deaktivieren möchten, erstellen Sie einfach die Umgebungsvariable POWERSHELL_TELEMETRY_OPTOUT
mit einem der folgenden Werte: true
, 1
oder yes
.If you want to opt-out of this telemetry, simply create POWERSHELL_TELEMETRY_OPTOUT
environment variable with one of the following values: true
, 1
or yes
. Durch das Erstellen der Variable wird das Senden von Telemetriedaten bereits vor der ersten Ausführung von PowerShell umgangen.Creating the variable bypasses all telemetry even before the first run of PowerShell. Diese Telemetriedaten und die daraus gewonnenen Erkenntnisse sollen im Community-Dashboard veröffentlicht werden.We also plan on exposing this telemetry data and the insights we glean from the telemetry in the community dashboard. Weitere Informationen zur Verwendung dieser Daten finden Sie in diesem Blogbeitrag.You can find out more about how we use this data in this blog post.