PowerShell Core 6.1 bietet viele kleine Verbesserungen

PowerShell Core 6.1 verfügt nicht über die schlagzeilengreifenden Funktionen von PowerShell Core 6.0, aber viele seiner neuen Funktionen sind zwar kleiner, machen es jedoch zu einem lohnenden Upgrade.

Die Januar-Version von PowerShell Core 6.0 lieferte bemerkenswerte Funktionen wie PowerShell unter Linux und Secure Socket Shell-Remoting. Die Version von PowerShell Core 6.1 vom September war zwar nicht so auffällig, bot jedoch eine verbesserte Leistung und erweiterte Cmdlet-Kompatibilität.

Administratoren können in ihrem eigenen Tempo von 6.0 auf 6.1 aktualisieren. Sie müssen sich jedoch darüber im Klaren sein, dass der PowerShell Core-Support-Lebenszyklus sechs Monate beträgt. Administratoren möchten möglicherweise einen Grund für ein früheres Upgrade finden, um die neuesten Funktionen von PowerShell Core nutzen zu können.

PowerShell Core 6.1 enthält Windows PowerShell 5.1-Module

Die Änderung, die am meisten Aufregung und Verwirrung stiftet, besteht darin, dass der PowerShell Core 6.1-Modulpfad automatisch die Windows PowerShell 5.1-Module enthält.
$ env: PSModulePath -split ‘;’
C: Benutzer Richard Dokumente PowerShell Module
C: Programme PowerShell Module
C: Programme PowerShell 6 Module
C: Windows System32 WindowsPowerShell v1.0 Module
Der erste oben aufgeführte Ordner enthält die persönlichen Module, der zweite die Module, die mit PowerShell Core aus der PowerShell-Galerie heruntergeladen wurden, und der dritte enthält die Module, die mit einer bestimmten Version von PowerShell installiert wurden. Der letzte Eintrag befasst sich mit den Windows PowerShell 5.1-Modulen, bei denen Verwirrung entsteht.
Führen Sie beispielsweise den folgenden Befehl aus:
Get-Module -ListAvailable

Ein Mitglied des PowerShell-Projektteams erläutert die
Roadmap des Tools.

In der Ausgabe werden nur PowerShell Core 6-Module aufgelistet. Um die Windows PowerShell 5.1-Module einzuschließen, müssen Sie am Ende des Befehls den Schalter -SkipEditionCheck hinzufügen, der derzeit nicht in der Hilfedatei dokumentiert ist.
Beachten Sie beim Auflisten der verfügbaren Module in Version 6.1 von PowerShell Core, dass die Ausgabe eine neue Spalte mit dem Namen PSEdition enthält. Es hat entweder den Wert Core oder Desk. Wenn das Modulmanifest eine ähnliche Zeile wie die folgende hat, wird das Modul als Core registriert.
CompatiblePSEditions = @ (“Core”)
Andernfalls wird es als Desk-Version behandelt, und Sie müssen den Schalter -SkipEditionCheck verwenden, um es anzuzeigen.
Gleiches gilt für den Import eines Windows PowerShell 5.1-Moduls. Sie müssen -SkipEditionCheck verwenden. Andernfalls wird eine Fehlermeldung angezeigt:
Import-Modul Netadapter -SkipEditionCheck
In Version 6.1 von PowerShell Core können Sie viele Windows PowerShell-Module verwenden, jedoch nicht alle. Das Modul funktioniert, wenn es sich um ein Skriptmodul handelt (vorausgesetzt, es werden keine Befehle verwendet, die in PowerShell Core nicht verfügbar sind), ein CDXML-Modul oder ein Binärmodul, das nur mit .NET Core kompatible Assemblys verwendet, einschließlich des Windows-Kompatibilitätspakets für .NET Core.
Das Active Directory-Modul ist ein beliebtes Modul, das mit PowerShell Core immer noch nicht funktioniert.

PowerShell Core 6.1 bietet mehr Geschwindigkeit und experimentelle Funktionen

PowerShell Core 6.1 erhöht die Leistung für die folgenden Cmdlets erheblich: Gruppenobjekt, Sortierobjekt, Import-Csv und ConvertFrom-Json.
Mit dieser Version können Administratoren auch experimentelle Funktionen verwenden. Der folgende Befehl zeigt die aktuelle Liste:
Get-ExperimentalFeature -ListAvailable

In Version 6.1 von PowerShell Core können Sie viele, aber nicht alle Windows PowerShell-Module verwenden.

In PowerShell Core 6.1 sind keine experimentellen Funktionen aufgeführt. Ich gehe davon aus, dass diese Funktion in späteren Updates verwendet wird.
In Version 6.1 von PowerShell Core wird außerdem die Option Als Administrator ausführen in der PowerShell-Sprungliste und im Taskleistensymbol eingeführt, um das Starten an einer Eingabeaufforderung mit erhöhten Rechten zu vereinfachen.
Die in PowerShell Core 6.0 fehlende Cmdlet-Testverbindung wird in PowerShell Core 6.1 zurückgegeben, die Anzeige muss jedoch verbessert werden. Das Projektteam sollte die Fortschrittsinformationen und den laufenden Fortschrittsbalken entfernen. Die Antwortinformationen müssen ebenfalls ordnungsgemäß formatiert sein.
Zum Zeitpunkt der Veröffentlichung beziehen sich sowohl die Online-Hilfedatei als auch die PowerShell-Hilfedokumentation auf die 5.1-Version von Test-Connection, nicht auf die 6.1-Version.

Cmdlet Test-Connection
Der obere Screenshot zeigt, wie PowerShell Core 6.1-Formate vom Cmdlet Test-Connection im Vergleich zur Windows PowerShell v5.1-Version unten ausgegeben werden.

PowerShell Core 6.1 bringt einen neuen Dateisystem-Navigationsbefehl, cd -, mit, um zum vorherigen Speicherort zurückzukehren. Push-Location und Pop-Location, verfügbar in 5.1 und 6.0, führen zum gleichen Ergebnis.

PowerShell Core 6.1-Dateinavigationsbefehl
In PowerShell Core 6.1 bringt Sie der Befehl cd – zum vorherigen Speicherort zurück.

PowerShell-Hilfedateien bewegen sich in Richtung Markdown

Irgendwann werden PowerShell-Hilfedateien in der Markup-Sprache Markdown anstelle von XAML verfügbar sein. In einem ersten Schritt fügt PowerShell Core 6.1 Cmdlets mit Markdown-Funktionen hinzu: ConvertFrom-Markdown, Get-MarkdownOption, Set-MarkdownOption und Show-Markdown.
Zum Zeitpunkt der Veröffentlichung gibt es keine Hilfedateien, um diese Funktionalität zu erläutern. Dies ist ein wiederkehrendes Thema im PowerShell Core-Projekt. Ein Großteil der Dokumentation muss entweder aktualisiert werden oder fehlt sofort. Das PowerShell-Projekt Anfrage für Kommentare In dieser Funktion werden die Ideen hinter den Cmdlets erläutert.
In der PowerShell-Konsole zeigt Show-Markdown den Inhalt einer Markdown-Datei an.

Cmdlet Show-Markdown
Das Cmdlet Show-Markdown zeigt den Inhalt einer Markdown-Datei in der PowerShell-Konsole an.

Alternativ zeigt der folgende Befehl die Markdown-Datei in Ihrem Browser an:
Show-Markdown -Path C: test README.md -UseBrowser
Als ich diesen Befehl zum ersten Mal auf meinem Windows 10-Computer ausführte, forderte PowerShell mich auf, einen Browser auszuwählen, der die Standardeinstellung für zukünftige Anrufe ist.
Die Cmdlets Get-MarkdownOption und Set-MarkdownOption steuern das Markdown-Rendering.
Get-Command Set-MarkdownOption -Syntax
Set-MarkdownOption [-Header1Color <string>] [-Header2Color <string>]
[-Header3Color <string>] [-Header4Color <string>] [-Header5Color <string>]
[-Header6Color <string>] [-Code <string>] [-ImageAltTextForegroundColor <string>] [-LinkForegroundColor <string>] [-ItalicsForegroundColor <string>]
[-BoldForegroundColor <string>] [-PassThru] [<CommonParameters>]
Set-MarkdownOption -Theme [-PassThru] [<CommonParameters>]
Set-MarkdownOption [-InputObject] [-PassThru] [<CommonParameters>]
Das Cmdlet ConvertFrom-Markdown verwendet eine Markdown-Datei und gibt standardmäßig HTML aus. VT100-codierte Zeichenfolge ist eine weitere Option.

Microsoft gibt mehrere Beschleuniger an PowerShell Core 6.1 zurück

Eine weitere interessante Entwicklung in dieser Version ist die Rückgabe mehrerer Beschleuniger:

  • [adsi]: System.DirectoryServices.DirectoryEntry
  • [adsisearcher]: System.DirectoryServices.DirectorySearcher
  • [wmi]: System.Management.ManagementObject
  • [wmiclass]: System.Management.ManagementClass
  • [wmisearcher]: System.Management.ManagementObjectSearcher

Mit den ersten beiden können Sie Skripts für Active Directory ausführen. Dies ähnelt der Vorgehensweise in Windows PowerShell 1.0, bevor Active Directory-Cmdlets eintrafen. Wenn Sie mit Active Directory mit PowerShell Core 6.1 arbeiten müssen, ist dies Ihre einzige Option, bis das Projektteam die Cmdlets portiert.
Die WMI-Beschleuniger (Windows Management Instrumentation) waren in Windows PowerShell 1.0 nützlich, ihre Verwendung wurde jedoch mit den WMI-Cmdlets in Windows PowerShell 2.0 und den Cmdlets Common Information Model in PowerShell 3.0 verringert. Ich habe nur eine Verwendung für die WMI-Beschleuniger gesehen, wenn Aktionen für die System Center Configuration Manager-Datenbank ausgeführt wurden.
Personen, die PowerShell Core noch nicht kennen, sollten sich das Projekt ansehen und Ideen einbringen, die sie in einer zukünftigen Version sehen möchten. Da PowerShell jetzt ein Open Source-Projekt ist, ist diese Art von Feedback erforderlich.

Similar Posts

Leave a Reply