Warum Sie ein Upgrade von PowerShell 5.1 auf 7 . in Betracht ziehen sollten

Da Unternehmen immer mehr Cloud-Dienste und Linux-Server verwenden, hat sich ein Standard-Verwaltungstool für Windows entwickelt, um seine Fähigkeiten zur Verwaltung dieser Workloads zu erweitern.

Windows Server und sein Desktop-Äquivalent sind zwar für viele Unternehmen immer noch wichtig, aber nicht mehr so ​​dominant wie früher. Die Cloud- und Hybrid-Ökosysteme wachsen in vielen Unternehmen. Diese Änderungen im Schicht- und Aufgabenmanagement haben Administratoren dazu gebracht, neue Wege zur Bewältigung von Infrastrukturaufgaben zu finden. Das Team hinter PowerShell hat seine Funktionalität erweitert, um diese neuen Herausforderungen anzunehmen. Die neuesten Versionen von PowerShell bieten erweiterte Funktionen, die ein IT-Betriebsteam davon überzeugen könnten, von PowerShell 5.1 auf PowerShell 7 zu migrieren.

Warum zu PowerShell 7 wechseln?

PowerShell 7 verzichtet nicht auf lokale Bereitstellungen, bietet jedoch eine verbesserte Unterstützung für moderne Alternativen. Ein wichtiges Update, die Pipeline-Parallelisierung, ist Teil der stabilen Version. Die ForEach-Object -Parallel Cmdlet kann für jedes über eine Pipe geleitete Eingabeobjekt mehrere Skripts gleichzeitig ausführen. Die Funktion unterstützt auch die Rückgabe von Jobobjekten im Gegensatz zu Konsolenschreibvorgängen.
In früheren Versionen wurden diese Prozesse sequentiell ausgeführt, was zu einer geringeren Leistung führt. Es ist ein ähnliches Konzept wie das Laden einer Webseite: CSS und JavaScript werden Zeile für Zeile ausgeführt, bis die gesamte Seite generiert ist, was wertvolle Zeit in Anspruch nehmen kann. Die Pipeline-Parallelisierung ermöglicht die gleichzeitige Ausführung mehrerer Threads, um diese Art von Leistungsproblem zu lösen.
Ein sequenzielles Cmdlet mit fünf Aufgaben, die jeweils eine Sekunde dauern, dauert fünf Sekunden. Gleichzeitig könnte die gleichzeitige Ausführung in einer Sekunde zu gleichen Ergebnissen führen. Obwohl die Ausführungsreihenfolge nicht garantiert ist, kann das Skript drosseln, wie viele Skripte gleichzeitig ausgeführt werden.
Was ist noch in PowerShell 7 enthalten?

  • neue Operatoren für Pipelineketten, Nullbedingungen und Ternär;
  • einfachere Fehlersuche durch dynamische Ansichten;
  • Unterstützung des Modulimports dank einer neuen Kompatibilitätsschicht; und
  • direkter Aufruf von DSC-Ressourcen.

PowerShell 7 bringt weitere Leistungsverbesserungen. Eingebackenes SSH-Remoting erstellt einen PowerShell-Hostprozess auf einem angegebenen Computer als Subsystem, der als Sprungbrett für ein allgemeines Hostingmodell von Windows PowerShell 5.1 mit der Windows-Remoteverwaltung 2.0-Funktion angepriesen wird. Umgebungen mit einer Mischung aus Windows-, Linux- und MacOS-Betriebssystemen profitieren von dieser zusätzlichen Kontrolle.
Schließlich unterstützt PowerShell 7 Docker-Container. Administratoren können Bilder herunterladen und Befehle in zugehörigen Containern ohne lokale Administratorrechte ausführen oder das sudo Befehl.

Hinweise zur Betriebssystemkompatibilität

Auf der Windows-Plattform unterstützt PowerShell 7 Windows 8.1, Windows 10 und die folgenden Windows Server-Versionen: 2012 (R2 enthalten), 2016 und 2019. Auf Apple-Systemen wird macOS 10.13 High Sierra oder höher unterstützt. PowerShell 7 unterstützt auch die folgenden Systeme und Plattformen:

  • Red Hat Enterprise-Linux;
  • CentOS7;
  • Fedora 30 oder höher;
  • Debian 9 (einschließlich ARM32/64);
  • Ubuntu 16.04 LTS oder höher (einschließlich ARM32/64); und
  • Alpine Linux 3.8 oder höher (einschließlich ARM64).

Microsoft ist bestrebt, x64-Architekturen zu unterstützen. Mitglieder der PowerShell-Community haben gebaut Arch und Kali Linux Pakete, um den Support auf diese Systeme auszudehnen – auch wenn der Support nicht offiziell ist. Diese Distributionen unterstützen x86-64-Architekturen.

So migrieren Sie zu PowerShell 7

Das PowerShell-Team hat die neue Open-Source-Version von PowerShell so erstellt, dass sie zusammen mit Windows PowerShell 5.1 ausgeführt werden kann, indem separate Installationsverzeichnisse eingerichtet wurden. Die neueste PowerShell 7-Version wird jedoch als direktes Upgrade installiert, um frühere Instanzen der Open-Source-PowerShell im System zu ersetzen.
Die Installationsorte von PowerShell 7 sind:

  • %Programmdateien%PowerShell7
  • Der Ordner %programfiles%PowerShell7 wird zu $env:PATH . hinzugefügt

Die Pfadposition trennt PowerShell 7 von anderen Versionen auf Ihrem System. Benutzer ohne Administratorrechte oder diejenigen, die frühere Versionen behalten möchten, sollten mit dem ZIP-Paket installieren.
Der neue Name der ausführbaren Datei lautet pwsh.exe, während die Windows PowerShell 5.1 powershell.exe ausführt.

Speicherorte für PowerShell-Module

Module erweitern die Fähigkeiten von PowerShell, indem sie neue Befehle hinzufügen. Diese Module werden an verschiedenen Orten innerhalb des Systems gespeichert. Die $Env:PSModulePath Variable enthält die Speicherorte des Modulordners. PowerShell überprüft diese Speicherorte automatisch, wenn der Benutzer versucht, ein Modul zu importieren. Die neueste Version von PowerShell priorisiert das automatische Laden von Modulen. Es gibt neue Speicherorte für PowerShell-Module, AllUsers-Bereich und Aktueller Benutzer Umfang. PowerShell 7 lädt sowohl Core- als auch Desktop-Module ohne Probleme.
PowerShell 5.1-Module sind aufwärtskompatibel mit PowerShell 7. Dazu gehören Azure PowerShell und Active Directory. Microsoft hat Schritte unternommen, um die Migration von PowerShell 5.1 für diejenigen zu vereinfachen, die auf inkompatible Module angewiesen sind. EIN WindowsPowerShell verwenden schalten Sie ein Import-Modul Mit dem Cmdlet können Benutzer die Kompatibilität zwischen Modulen bewerten. PowerShell 7.1 hat Schutzmaßnahmen hinzugefügt, um Clobbering in den folgenden Kernmodulen zu verhindern:

  • PowerShell.ConsoleHost
  • PowerShell.Diagnostics
  • PowerShell.Host
  • PowerShell.Verwaltung
  • PowerShell.Sicherheit
  • PowerShell.Dienstprogramm
  • WSMan.Management

Profilverwaltung geändert mit PowerShell 7

Profile sind Skripte, die zu Beginn einer PowerShell-Sitzung ausgeführt werden, um das eigene Ökosystem über Aliase, Befehle, Laufwerke, Funktionen, Module und Variablen anzupassen.
Bei älteren Versionen von PowerShell mussten Benutzer diese Anpassungen für jede Sitzung neu erstellen, was zeitaufwändig und mühsam ist. Durch die Automatisierung der Anwendung dieser Skripte können Administratoren schneller mit der Arbeit beginnen. Profile sorgen auch dafür, dass wichtige Konfigurationen nicht übersehen werden.
Diese Dateinamen – und Speicherorte – haben sich seit Windows PowerShell 5.1 geändert. Profile befinden sich jetzt unter $HOMEDokumentePowerShell. Referenzen zu WindowsPowerShell wurden entfernt; Die meisten Standorte leben jetzt innerhalb der Power Shell Zweig des Dateisystems innerhalb Programmdateien und Benutzer. Diese Profile sind entsprechend benannt:

  • AllUsersAllHosts;
  • AllUsersCurrentHost;
  • CurrentUserAllHosts; und
  • CurrentUserCurrentHost.

Remoting, Gruppenrichtlinien und Protokolle

PowerShell 5.1 verwendet das Protokoll Web Services-Management (WS-MAN) für die Verbindung und den Datentransport. PowerShell 7 verwendet denselben Endpunkt, wenn die Windows-Remoteverwaltung aktiviert ist. PowerShell 7 kann jedoch einen eigenen Endpunkt verwenden, indem Sie die Aktivieren-PSRemoting Cmdlet, um eine neue Konfiguration hinzuzufügen.
Auf der SSH-Seite haben Benutzer, die Betriebssysteme ausführen, die nicht mit Windows-Komponenten kompatibel sind, einige Optionen, z Neue-PSSession, Enter-PSSession und Aufruf-Befehl Cmdlets, um Remoting zu ermöglichen. Benutzer können Zeichenfolgen, Computer und Benutzernamen angeben. Die SchlüsselDateiPfad Parameter verarbeitet die Schlüsselauthentifizierung.
Für ein Unternehmen, das mehrere Server in einer Unternehmensumgebung ausführt, funktionieren die Gruppenrichtlinieneinstellungen ähnlich wie Profile. Sie definieren Werte, die während der gesamten Bereitstellung konsequent respektiert werden. Administratoren können Folgendes anpassen:

  • Konsolensitzungskonfigurationen;
  • Aktivierungen der Modulprotokollierung;
  • Aktivierungen der Skriptblockprotokollierung;
  • Skriptausführungsrichtlinien;
  • PowerShell-Transkriptionsaktionen; und
  • Delegation von Standardquellpfaden für Update-Hilfe.

PowerShell 7 enthält Gruppenrichtlinienvorlagen, die einen Großteil der Arbeit, die in früheren Versionen erforderlich war, entfernen. Diese Dateien verwenden die Erweiterungen .admx und .adml. Um administrative Kernvorlagen zu installieren, können Teams das Skript InstallPSCorePolicyDefinitions.ps1 ausführen.
Eine Gewaltenteilung ist das Thema in PowerShell 7. Dies gilt auch für die Ereignisprotokollierung. Windows PowerShell 5.1 und PowerShell 7 protokollieren Ereignisse in unterschiedlichen Protokollen, um Verwirrung zu vermeiden und die Referenz zu erleichtern. Die Get-WinEvent -ListLog *PowerShell* Befehl ruft eine Liste von Protokollen ab.

Skripterstellung mit Visual Studio Code

Teams, die Windows PowerShell 5.1 auf Nicht-Windows-Systemen ausführen, hatten die Möglichkeit, Visual Studio Code als Quellcode-Editor zu verwenden. PowerShell 7 erweitert die Unterstützung für Visual Studio Code sowohl auf macOS als auch auf Linux. PowerShell in Visual Studio Code erfordert die Installation einer Erweiterung, die erklärt wird unter diesem Link.
Das traditionelle Skripttool für Administratoren ist die integrierte PowerShell-Skriptumgebung, die in Visual Studio Code verfügbar ist, jedoch nur für Windows PowerShell. Diese Option in der Befehlspalette ändert das Editor-Layout und erweitert die Funktionen des Editors, während die PowerShell-Funktionalität freigeschaltet wird.

Similar Posts

Leave a Reply