Tags: Software-Distribution, Windows Server 2022, Kommandozeile
Microsofts neuester Paket-Manager ist in den aktuellen Versionen von Windows 10 und 11 bereits enthalten. Wenn man winget jedoch unter Windows Server nutzen oder eine Preview-Version ausprobieren möchte, dann muss man es manuell installieren. Bei Vorab-Versionen kann man dann die experimentellen Features aktivieren.
Bei winget handelt es sich um einen Paket-Manager im Stile von Chocolatey oder Linux-apt, der Programme von einem Repository installieren, aktualisieren und entfernen kann. Das Kommandozeilen-Tool ist zwar in Windows 10 und 11 enthalten, zurzeit allerdings nur in der Version 1.4.x.
Seitdem hat sich in der winget-Entwicklung einiges getan, das letzte Release ist momentan 1.6.1573. Diese Preview bietet einige offiziell noch nicht freigegebene Features, die man jedoch schon ausprobieren und in begrenztem Rahmen einsetzen kann.
winget als Bestandteil von App Installer
Zu diesem Zweck muss man das gewünschte Release von App Installer herunterladen, das die betreffende Preview von winget enthält. Aus der Liste der auf GibHub angebotenen Dateien wählt man jene mit der Namensendung msixbundle. Diese kann man in Windows 10 / 11 im Explorer durch Doppelklick starten, um die Installation anzustoßen.
Alternativ setzt man in PowerShell folgenden Befehl ab:
Add-AppxPackage -Path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Anschließend sollte
winget -v
das erfolgreiche Update bestätigen.
winget auf Windows Server installieren
Offiziell unterstützt Microsoft winget auf Windows Server zwar nicht, aber es lässt sich auch dort installieren, allerdings nicht unter Server Core. Dafür sind aber erst Abhängigkeiten aufzulösen, weil als Voraussetzung VCLibs 14 und UI.Xaml.2.7 benötigt werden.
Andernfalls wird man mit dieser Fehlermeldung konfrontiert:
Das Paket Microsoft.DesktopAppInstaller_1.21.1573.0_x64__8wekyb3d8bbwe kann von Windows nicht installiert werden, da es von einem Framework abhängig ist, das nicht gefunden wurde. Stellen Sie das von CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US veröffentlichte Framework Microsoft.UI.Xaml.2.7 mit einer neutralen oder x64-Prozessorarchitektur und Mindestversion 7.2109.13004.0 zusammen mit dem zu installierenden Paket bereit.
Microsoft.UI.Xaml 2.7.3 lädt man als NuGet-Paket herunter, ändert die Erweiterung des Dateinamens von .nupkg auf .zip und entpackt das Archiv. Das Appx-Paket findet sich dann unter
.\microsoft.ui.xaml.2.7.3\tools\AppX\x64\Release
Dieses installiert man dann mit
Add-AppxPackage -Path .\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.7.appx
Die Laufzeitbibliothek für Visual C++ findet man für alle unterstützten Architekturen auf dieser Seite. Nach dem Download installiert man sie folgendermaßen:
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx
Schließlich fügt man wie oben beschrieben den App Installer hinzu:
Add-AppxPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Experimentelle Features aktivieren
In der aktuellen Version bietet winget mehrere Features, die experimentellen Status haben. Dazu zählen das Configuration Management auf Basis von PowerShell DSC, das Installieren von optionalen Windows-Features, wenn eine Anwendung davon abhängt, oder das Einfrieren einer App auf einer bestimmten Version ("PIN").
Einige davon müssen explizit durch einen Eintrag in die JSON-Konfigurationsdaten aktiviert werden. Dazu ruft man
winget settings
auf, was die Einstellungen im Editor öffnet. Standardmäßig enthält diese außer der Schema-Deklaration und einigen auskommentierten Zeilen keinen Inhalt. Dort fügt man zum Beispiel folgenden Block ein:
Nachdem das Bearbeiten des JSON-Formats sehr heikel ist, sollte man das Ergebnis validieren, um eine ungültige Konfiguration zu vermeiden. Das kann man in PowerShell 7.x durch diesen Befehl tun:
Anschließend sollten die neuen Befehle, zum Beispiel configure, in winget zur Verfügung stehen. Dies kann man mit
winget features
überpüfen.
Zusammenfassung
Zwar gehört winget in den aktuellen Versionen von Windows 10 und 11 zum Lieferumfang, aber es handelt sich dabei um ein älteres stabiles Release. Wenn man mit Hilfe der Previews neuere Features ausprobieren möchte, dann benötigt man eine entsprechende Version von App Installer.
Diese lässt sich auf den Client-Systemen einfach über den Explorer installieren. Auf Windows Server muss man hingegen erst zwei Bibliotheken einrichten, bevor man den App Installer mit PowerShell hinzufügen kann.
Möchte man experimentelle Features verwenden, dann muss man diese in einigen Fällen erst durch einen Eintrag in die JSON-Konfigurationsdatei freischalten.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Winget 1.3: Support für portable Apps, Logging-Levels, URL für Return-Codes
- Firefox, Sysinternals, 7-Zip, Notepad++ mit winget automatisch installieren
- 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
Weitere Links
5 Kommentare
Moin Wolfgang,
Leider ist winget auf Windows Server 2019 und 2022 noch nicht supported. Es ist jedoch auf der Roadmap.
Es macht(e) auch einen Unterschied auf welchem OS wir es installieren, WS 2022 ist aufgrund der näheren Verwandtschaft zu Windows 10 22H2 da einfacher.
Siehe auch mein PR
https://github.com/microsoft/winget-cli/issues/702
diesen Diskussionsthread: https://github.com/microsoft/winget-cli/discussions/1955
dies ist derzeit die wohl aktuellste (unsupportete) Implementierung von Lior (Productmanager Azure Edge, Azure Arc)
https://gist.github.com/likamrat/cae833a6e5b3461709f14c093c21c293
dieser Thread (enthält nicht alle PRs) sollte auch von Interesse sein
https://github.com/microsoft/winget-cli/discussions/2361
Ich habe die hier beschriebene Installation auf Windows Server 2022 ausprobiert und bekomme den Fehler: Fehler beim Ausführen des Programms "winget.exe": Es wurden keine anwendbaren App-Lizenzen gefunden
Funktioniert das nicht für server 2022?
Viele Grüße
Stefan
Die License Datei findet sich im GitHub. Dies hat bei mir funktioniert:
Ich kann bestätigen, dass diese Methode, welche sich inmitten meiner Linksammlung fand, einfach und zuverlässig funktioniert @Wolfgang @Stefan
https://github.com/asheroto/winget-install
Gut genug dieses How-To zu aktualisieren Wolfgang?