Tags: Software-Distribution, Kommandozeile
Microsofts neuer Paket-Manager kann eine Vielzahl von Anwendungen ohne Benutzereingriff installieren. 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 Konfiguration 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.
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.
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.
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.
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.
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.
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
Ähnliche Beiträge
- Winget 1.3: Support für portable Apps, Logging-Levels, URL für Return-Codes
- Microsoft veröffentlicht Windows Package Manager 1.0 (winget)
- Paket-Manager Winget: Neue Funktionen für Deinstallation, Upgrade, Export und Import
- Windows Package Manager (winget): Installation von Store Apps, Autovervollständigen von Paketnamen
- Windows Terminal als Administrator ausführen
Weitere Links