winget erhält PowerShell-Modul und Configuration Management


    Tags: , ,

    App-Installer und winget für das Package-ManagementDer Windows Package Manager winget bietet in der aktuellen Preview mit configure und pin zwei experi­mentelle Features. Das erste kann Apps automatisch installieren und auf einem gewünschten Stand halten. Pinning nimmt Programme von Updates aus. Neu ist zudem ein PowerShell-Modul für den Zugriff auf die winget-Funktionen.

    Bei winget handelt es sich um einen Paket-Manager, der Programme nach dem Muster von Chocolatey oder Linux-apt von einem Repository installieren, aktualisieren oder auch entfernen kann. Das Kommandozeilen-Tool ist in den aktuellen Versionen von Windows 10 und 11 enthalten.

    Alle frei verfügbaren Apps installieren

    Eine Stärke des Dienstprogramms besteht darin, dass man damit nicht nur einzelne Anwendungen, sondern das ganze Portfolio an kostenloser Standard-Software in einem Durchgang installieren kann.

    Um beispielsweise Firefox, Notepad++, 7-zip und andere Apps mit einem einzigen Befehl auf einem neuen Rechner hinzuzufügen, musste man bisher erst einen Referenz-PC einrichten, um dessen Konfiguration zu exportieren und dann auf anderen Rechnern weiterzuverwenden.

    Winget configure

    Winget configuration benötigt keinen Muster-PC mehr, sondern erlaubt es, die gewünschte Konfiguration in einer YAML-Datei zu hinterlegen. Mit ihrer Hilfe lässt sich die Installation von Software auf beliebig vielen Rechnern automatisieren.

    Der Aufruf erfolgt in der Form

    winget configure <YAML-Konfigurationsdatei>

    Das Configuration Management von winget beruht auf PowerShell DSC. Es geht über die reine Installation von Software hinaus, weil die Steuerdatei den gewünschten Systemzustand in deklarativer Form beschreibt keine Sammlung von winget-Befehlen enthält.

    Befehlsoptionen für winget configure

    Daher lassen sich mit winget configure Abweichungen von der definierten System­konfiguration auch jederzeit einfach korrigieren. Programme, die nicht darin enthalten sind, werden dann entfernt, und solche, die fehlen, nachinstalliert.

    Apps gegen Updates sperren

    Ergänzend zur Automatisierung von Updates führt winget mit Pinning die Möglichkeit ein, Anwendungen auf einer bestimmten Version einzufrieren. Dafür existieren drei Varianten:

    • Blocking: Das Paket wird bei winget upgrade --all oder winget upgrade <WinGet-Paket> übersprungen. Um ein Upgrade mit WinGet zu erzwingen, muss man das Paket mit dem neuen Schalter --include-pinned entsperren.
    • Pinning: Das Paket ist von winget upgrade --all ausgeschlossen, erlaubt jedoch winget upgrade <WinGet-Paket>.
    • Gating: Das Paket wird auf bestimmte Versionen festgelegt, zum Beispiel auf 1.2.*. Dadurch werden alle Versionen zwischen 1.2.0 und 1.2.x als zulässige Updates angesehen. Mit
      winget upgrade <WinGet-Paket> --force
      lässt sich diese Vorgabe überschreiben.

    PowerShell-Modul

    Bei winget handelt es sich um ein Dienst­programm für die Kommandozeile, das aber fast alle Vorteile von PowerShell vermissen lässt. So bietet es keine automatische Vervollständigung für Parameter und es liefert keine Objekte, sondern bloßen Text zurück. Diesen muss man parsen, um aus dem Ergebnis schlau zu werden.

    Ähnlich wie bei DISM, das die gleichen Nachteile hat, bietet Microsoft nun auch für winget einen PowerShell-Wrapper. Dies erleichtert vor allem die Verwendung des Package-Managers in Scripts.

    Das Modul befindet sich derzeit ebenfalls in einer Preview und lässt sich mit

    Install-Module Microsoft.WinGet.Client

    installieren.

    Modul Microsoft.WinGet.Client installieren und enthaltene Cmdlets sowie Funktionen anzeigen

    Wie man mit

    Get-Command -Module Microsoft.WinGet.Client

    leicht feststellen kann, enthält das Modul die nötigen Cmdlets für das Suchen, Installieren, Aktualisieren und Entfernen von Paketen sowie für das Konfigurieren von Repositories.

    Verfügbarkeit und Voraussetzungen

    Die neuen Features Configuration und Pinning sind derzeit nur für die Preview von winget 1.5x verfügbar. Dort müssen sie über die Konfigurationsdatei aktiviert werden. Die Vorschau man von GitHub herunterladen.

    Microsoft.WinGet.Client wurde für PowerShell 7 entwickelt und lässt sich eingeschränkt auch unter Windows PowerShell nutzen.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links