PowerShell 7 und Windows PowerShell. Tobias Weltner

Читать онлайн.
Название PowerShell 7 und Windows PowerShell
Автор произведения Tobias Weltner
Жанр Математика
Серия
Издательство Математика
Год выпуска 0
isbn 9783960104803



Скачать книгу

PowerShell gestartet haben und nachträglich herausfinden möchten, wo diese PowerShell eigentlich gespeichert ist, wählen Sie folgenden Befehl:

      PS> [Environment]::CommandLine

      C:\ps7test\pwsh.dll

      In diesem Beispiel sehen Sie, dass PowerShell aus dem Ordner c:\ps7test gestartet wurde. Sie sehen übrigens auch, dass die neue PowerShell eigentlich eine Bibliothek mit der Dateierweiterung *.dll ist. Der Startbefehl pwsh.exe leitet den Aufruf also bloß an diese Bibliothek weiter. Nerds wie ich finden so etwas spannend, aber Sie können dieses Detail auch höflich ignorieren.

      Den Pfad zur jeweils gerade genutzten PowerShell finden Sie hiermit heraus:

      PS> (Get-Process -Id $pid).Path

      C:\ps7test\pwsh.exe

      Die Variable $pid enthält bei allen Versionen der PowerShell stets die Prozess-ID der gerade laufenden PowerShell-Instanz-Sitzung.

       Kostenlose Softwareverteilungssysteme: Paketmanager

      In Linux-Betriebssystemen sind Paketmanager wie apt, yum, dnf, pacman oder brew seit Langem im Einsatz. Sie laden zusätzliche Software automatisch aus dem Internet und installieren sie. Mit diesen Paketmanagern wird übrigens auch PowerShell auf Linux- und macOS-Systemen installiert.

      Bei Windows sind solche Paketmanager noch relativ neu, setzen sich aber auch hier inzwischen durch: Am verbreitetsten sind Chocolatey (https://chocolatey.org/install) und Scoop (https://scoop.sh/).

      Auch PowerShell ist auf diesen Zug aufgesprungen und enthält einen eigenen plattformunabhängigen Paketmanager namens PowerShellGet (siehe Kapitel 16): Mit ihm kann man kinderleicht PowerShell-spezifische Ressourcen wie neue Cmdlets oder Skripte nachinstallieren, und schon im nächsten Kapitel begegnen Ihnen zahlreiche Beispiele dazu.

       Chocolatey und Scoop

      Weil Paketmanager für viele Windows-Anwender noch relativ neu sind, sollen die beiden Windows-Paketmanager Chocolatey und Scoop kurz mit einigen Beispielen zeigen, was sie können und wie Paketmanager funktionieren.

      Der grundlegende Unterschied zwischen den beiden ist die Art, wie Software installiert wird und welche Rechte dazu nötig sind: Während Chocolatey Installationspakete auf konventionelle Weise stets für alle Anwender installiert und dazu Administratorrechte benötigt, installiert Scoop Anwendungen ohne Administratorrechte und nur für den aktuellen Anwender als portable Apps.

      Chocolatey eignet sich daher eher für die Unternehmens-IT, während sich Scoop an Endanwender richtet, die trotz eingeschränkter Rechte schnell und einfach zusätzliche Software installieren möchten.

       Voraussetzungen

      In beiden Fällen müssen Sie bei älteren Windows-Systemen zuerst den neueren Sicherheitsprotokollstandard TLS 1.2 erlauben, der bei aktuellen Windows-Versionen automatisch unterstützt wird. Andernfalls können Sie über geschützte https:-Verbindungen keine Daten herunterladen:

      [System.Net.ServicePointManager]::SecurityProtocol -bor

      [System.Net.SecurityProtocolType]::Tls12

       Listing 1.3: Internetsicherheitsprotokoll TLS 1.2 für PowerShell erlauben

      Da die Installation über PowerShell-Skripte erfolgt, müssen Sie außerdem mindestens vorübergehend für die aktuelle Sitzung die Ausführung von Skripten erlauben. Sie erfahren in Kapitel 3 mehr darüber. Einstweilen genügt dieser Befehl:

      Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

       Listing 1.4: PowerShell-Skripte in der aktuellen PowerShell-Sitzung erlauben

       Achtung

      Führen Sie die folgenden Befehle unbedingt in einer PowerShell-Konsole aus und nicht in einem Editor wie zum Beispiel dem ISE-Editor.

      Die Befehle der hier vorgestellten Softwareverteilungen können im laufenden Betrieb Rückfragen an Sie stellen, zum Beispiel ob ein fehlendes Softwarepaket mitinstalliert werden soll. Solche Rückfragen werden von Editoren wie ISE nicht unterstützt und unterdrückt, sodass das Skript bei Nachfragen in Editoren zu »hängen« scheint.

       Chocolatey als Softwareverteilung

      Wenn Sie über Administratorrechte verfügen und Software klassisch für alle Anwender des Computers installieren möchten, installieren Sie sich die Paketverwaltung Chocolatey. Dazu benötigen Sie aktivierte Administratorrechte.

       Achtung

      Chocolatey erfordert grundsätzlich zur Installation volle Administratorrechte und ist schlecht geeignet, wenn Sie Software nur für den aktuellen Anwender installieren möchten. Verwenden Sie für diesen Fall besser Scoop (siehe nächsten Abschnitt).

      Listing 1.5 lädt mit Invoke-RestMethod zuerst das Installationsskript von Chocolatey herunter und führt es dann mit Invoke-Expression aus. Das dürfen Sie natürlich nur tun, wenn Sie den Quellen solcher Skripte vertrauen. Geben Sie die URL im Zweifelsfall in die Adressleiste Ihres Browsers ein, um den Code zuerst zu untersuchen oder im Unternehmensumfeld von jemandem freigeben zu lassen.

       Listing 1.5: Chocolatey installieren

      Alles Weitere übernimmt das Installationsskript und berichtet über alle Schritte, die es ausführt:

      Getting latest version of the Chocolatey package for download.

      Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.15.

      Downloading 7-Zip commandline tool prior to extraction.

      Extracting C:\Users\tobia\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\tobia\AppData\Local\Temp\chocolatey\chocInstall...

      Installing chocolatey on this machine

      Creating ChocolateyInstall as an environment variable (targeting 'Machine')

      Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'

      WARNING: It's very likely you will need to close and reopen your shell before you can use choco.

      Restricting write permissions to Administrators

      We are setting up the Chocolatey package repository.

      The packages themselves go to 'C:\ProgramData\chocolatey\lib'

      (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).

      A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin' and points to an executable

      in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

      Creating Chocolatey folders if they do not already exist.

      WARNING: You can safely ignore errors related to missing log files