PowerShell Schnipseljagd 47/2019 – PS 7 Special Edition

PowerShell 7 – Preview 6: Updates und News

Trainings

Events

<Derzeit keine Events geplant>

PowerShell 7 – preview 6

Nach dem einfrieren von Windows Powershell 5.1 war in der Community einige Unsicherheit zu spüren, wie es nun mit PowerShell weitergeht. Nach der Release von PowerShell Core war ziemlich schnell klar das PS Core niemals an den Funktionsumfang von Windows PowerShell 5.1 herankommen wird. Mangelnde Unterstützung für beliebte Module wie dem AD-Modul (trotz dem mit dem WindowsCompatibility Modul einiges getan wurde um das zu kompensieren) und keine grafische Ausgabe haben viele PowerSheller im Unklaren gelassen und die sind und bleiben jetzt mal auf 5.1

In unseren Kursen trainieren wir auch nach wie vor 5.1 weil das für die wichtigste Anwendung – Windows Netze zu administrieren – die sinnvollste Option ist.

Die Ankündigung von PowerShell 7, basierend auf .Net Core 3 hat wieder einiges Licht ins Dunkel gebracht und uns ist klar geworden, das PowerShell Core (oder V6) nicht die Zukunft werden wird, denn diese liegt in PowerShell 7. Mit GUI Unterstützung (zumindest auf Windows) und einer modernen Plattform als Grundlage macht es wohl Sinn sich auf PS7 zu fokussieren.

Am 21. November 2019 hat das PowerSHell Engineering Team PowerShell 7-Preview 6 freigegeben. Diese Version ist die letzte „Preview“ Release, nächstes Monat soll ein Release-Candidate herauskommen. Das hat uns dazu bewogen eine Schnipseljagd dafür zu verwenden.

Es gibt Installationspakete für:

  • Alpine Linux
  • ARM Linux (32+64Bit)
  • Generisches Linux
  • OSX
  • Windows ARM (32+64Bit)
  • Windows (32+64Bit)
  • CentOS 8
  • RHEL 7
  • Debian 9 und 10
  • Ubuntu 116.04 und 18.04

In dieser Release, gibts eine Reihe interessanter Features, die sind im Engineering Blog sehr gut beschrieben und tws auch mit Videos unterlegt wurden. Trotzdem hier eine Liste mit kurzen Erklärungen.

Verbesserungen beim Fehlerhandling der Web CmdLets (z.i. Invoke-RestMethod) Link

Abfragen ob Variablen Indizes, Methoden oder Eigenschaften null sind, geht jetz mit ? im „.“ String. Schaut euch mal das Video an – zugegeben, ich habs nicht ganz verstanden … Link

ls -l gibt auf Unix/OSX jetzt mit mehr informationen, aufgrund einer verbesserten Dateisystemunterstützung. Link

Verbesserte Kombatibilität zu Windows PowerShell 5.1

Get/Set-Clipboard CmdLets sind zurück (nun auch auf Linux und macOS!). Derzeit unterstützen die „nur“ Text, aber ich denke mal das reicht uns vorerst. Link

Get-Counter erlaubt das lesen von Performance Countern auf Windows. (Import/Export-Counter gibts noch nicht). Link

Show-Command und Out-Gridview sind zurück (Auf Windows) ! Ohne diese Befehle war Multiplattform PowerShell ein Showstopper. Wir sind jetzt wieder ein bisschen glücklich 🙂

Out-GridView ist zurück
Show-Command ebenfalls

Update-List, Out-Printer und Clear-RecycleBin sind ebenfalls auf Windows zurück. Link

Test-Connection arbeitet nun sehr ähnlich wie unter Windows PowerShell 5.1. und funktioniert auf allen Plattformen gleich gut. Link

Import von Windows PowerShell 5.1 Modulen ist gleich in das Import-Module CmdLet eingebaut (ohne WindowsCompatibility Module).
Dazu muss allerdings Windows PowerShell 5.1 installiert sein, das geht also nur auf Windows-Systemen.
Wenn in einem Modulmanifest festegelegt ist, das es nicht „Core“ kompatibel ist, wird es in eine Windows PowerShell Session geladen und dann mit implizitem Remoting an die PS7 Session zur Verfügung gestellt. Ich habe das unten ausprobiert 🙂

Dieses Release wird wieder einiges an Klarheit schaffen wo die Reise hingeht. Fakt ist – ich deinstalliere jetzt PowerShell 6 (Core).

LG/Roman