Sysinternals, 7-Zip, Notepad++, Firefox: Alle Standard-Apps mit winget automatisch installieren


    Tags: ,

    App-Installer und winget für das Package-ManagementMicrosofts neuer Paket-Manager kann eine Vielzahl von Anwendungen ohne Benutzereingriff instal­lieren. Auf der Kommandozeile akzeptiert das Tool aber immer nur den Namen eines einzelnen Programms. Zur Überwindung dieses Limits kann man eine Batch-Datei oder die exportierte Konfigu­ration eines Referenzsystems nutzen.

    Wenn man häufig neue Rechner oder virtuelle Maschinen einrichten muss, dann kommt man meist nicht umhin, die übliche Sammlung kostenloser Standard-Apps zu installieren. Typische Kandidaten sind Editoren, Packer, Web-Browser oder Tools für die Bildbearbeitung.

    Wenn man dafür keine zentrale Lösung für die Software-Verteilung hat, dann kann man alternativ zum Paket-Manager winget greifen. Er gehört in Windows 11 zum Lieferumfang, und in Windows 10 kann man ihn über den App Installer aus dem Store hinzufügen.

    winget ist Bestandteil des App Installer. Diesen kann man aus dem Store oder von Github herunterladen.

    Der Package Manager installiert Applikationen von Microsofts Community Repository sowie seit dem ersten offiziellen Release auch vom Store. Grundsätzlich kann man auch lokale Repos betreiben, aber diese Option ist kein einsatzbereites Produkt.

    Nur ein Programm pro Aufruf

    Die grundsätzliche Vorgangsweise beim Hinzufügen eines Software-Pakets besteht darin, die Repositories nach einem bestimmten Paket zu durchsuchen und winget dann in einem weiteren Aufruf den Namen oder die ID der Software zu übergeben. Dies wiederholt man für jedes einzelne Programm.

    Möchte man alle benötigten Pakete auf mehreren Rechnern installieren, dann ist diese Prozedur zu umständlich.

    Aufrufe für die Installation ermitteln

    Es bietet sich daher an, alle Aufrufe in einer Batch-Datei zusammenzufassen. Dazu ermittelt man erst den genauen Namen oder die ID:

    winget search <Name der App>

    Bei dieser Gelegenheit kann man gleich prüfen, welches Paket man angesichts des relativ chaotischen Angebots man genau haben möchte. Dieses installiert man dann mit

    winget install <ID oder Name>

    Liegen mehrere Versionen eines Programms vor, dann kann man eine bestimmte über den Parameter -v spezifizieren.

    Installation von Notepad++ mittels winget

    Erfolglose Suche nach Sysinternals

    Soll ein Programm vom Store kommen, aber winget kann es nicht finden, dann lässt sich dieses unter Umständen trotzdem installieren, wenn man die ID aus der Store-URL entnimmt. Ein Beispiel dafür sind die Sysinternals, bei denen der Aufruf von

    winget search sysinternals

    zu keinem Treffer führt. Der Befehl

    winget install 9p7knl5rwt25 --accept-package-agreements

    bewirkt aber dann doch eine erfolgreiche Installation. Der Schalter --accept-package-agreements unterdrückt die interaktive Bestätigung der Lizenzbedingungen.

    Die Sysinternals Suite lässt sich aktuell über winget nicht finden und nur über die ID installieren.

    Winget über Script starten

    Hat man alle gewünschten Programme hinzugefügt, dann kann man die einzelnen Aufrufe sammeln und in einer Batch-Datei zusammenfassen. Bei erfolgreicher Installation liefert winget den Rückgabewert 0. Dies kann man sich zunutze machen, um eine entsprechende Meldung auszugeben oder eine sonstige Aktion anzustoßen .

    In PowerShell könnte das so aussehen:

    winget install notepad++
    if($LASTEXITCODE){"Notepad++ erfolgreich installiert!"}

    Referenzinstallation exportieren

    Hat man auf einem Rechner bereits einige der benötigten Programme installiert, dann kann man diese Liste in eine JSON-Datei exportieren:

    winget export -o .\winget-export.json

    Die Pakete müssen dabei nicht einmal mit winget hinzugefügt worden sein. Der Package Manager schlägt beim Export den Namen aller installierten Apps im Repository nach und trägt sie dann in die Liste ein. Existieren sie im Repo nicht, gibt winget eine entsprechende Meldung aus.

    Winget zeigt an, wenn installierte Programme im Repository nicht existieren

    Der Nachteil dieses Verfahrens besteht allerdings darin, dass sämtliche in Windows vorinstallierten Store Apps ebenfalls in der JSON-Datei auftauchen. Daher wird man diese vor dem Einsatz in einem Editor bereinigen müssen.

    Bereinigte Version der exportierten Programmliste

    Befindet sich die Exportdatei im gewünschten Zustand, dann kann man sie auf einen anderen Rechner übertragen und dort an den Import-Befehl übergeben:

    winget import -i .\winget-export.json --accept-package-agreements

    Nun sollte die Installation aller Programme zügig durchlaufen.

    Automatische Installation aller Programme, die in der JSON-Datei spezifiziert sind

    Wenn man die Eingabeaufforderung bzw. PowerShell ohne administrative Rechte gestartet hat, dann wird man bei den meisten Win32-Programmen mit dem UAC-Dialog konfrontiert.

    Fazit

    Mit dem neuen Package-Manager lassen sich alle gängigen Standard-Apps in einem Durchgang weitgehend ohne Benutzereingriff installieren. Dazu muss man allerdings erst alle erforderlichen Befehle zusammenstellen und in ein Script übertragen.

    Hat man bereits einen Rechner, auf dem sich alle gewünschten Programme befinden, dann kann man diese Liste von dort exportieren, von unnötigen Apps bereinigen und dann als Importkonfiguration auf andere PCs übernehmen.

    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 //

    Ähnliche Beiträge

    Weitere Links