Leserartikel Eine kurze Einfuehrung zu winget

Im Zuge des WinRAR Threads ist des oefteren winget erwaehnt worden, insbesondere aus der Warte heraus, das WinRAR keinen automatischen Updater hat, und deswegen ein Update haeufig nicht durchgefuehrt wird.
Jetzt gibts eine Luecke in 7Zip, welches ebenfalls keinen eigenen Updater mitbringt, also noch ein Fall fuer winget :D

winget ist ein Kommandozeilenprogramm, welches Windows seit Windows 10 1709 kennt. Also schon echt lange.

Und kaum jemand kennt es.

Ich moechte diesen kurzen Artikel schreiben um das Bewusstsein fuer winget zu schaerfen. Zeigen was es kann, was es nicht kann, und wie man es verwendet.
Meine Beispiele kommen alle von Windows 10 22H2. Ich habe zwar ein Windows 11 on ARM Geraet auf dem winget ebenfalls funktioniert, aber das ist wenig repraesentativ weil dort nur sehr wenig Software installiert ist.

Was ist winget?
Winget wird auch als "Windows Package Manager" bezeichnet, eine Paketverwaltung fuer Windows, angelehnt an Paketverwaltungen wie sie unter Linux ueblich sind. Wikipedia: Windows Package Manager
Mit winget kann man Software unabhaengig vom Microsoft Store installieren und updaten.
Dabei greift es auf Installationsdateien direkt bei den Softwareanbietern zurueck.

Was braucht man um winget zu verwenden?
In aktuellen Versionen von Windows 10 und 11 ist Winget mitgeliefert und muss nicht nachinstalliert werden.
Man braucht kein Microsoft Konto um winget zu verwenden, ein lokales Konto funktioniert genauso.
Was man aber braucht ist ein Internetzugang, denn winget bezieht noetige Dateien direkt.

WingetUI ist eine GUI Alternative, die auch einfacher mit anderen Quellen umgehen kann. Mangels eigener Erfahrungen ist WingetUI aber nicht Thema dieses Posts.

Was kann man mit winget machen?
Man kann mit winget zahlreiche Windowsprogramme ueber die Kommandozeile installieren. Man kann alle, oder einzelne (unterstuetze) Programme aktualisieren.
Dabei laedt winget die jeweiligen Programme von ihren offiziellen Quellen herunter.

Wie benutzt man winget?
Um winget zu verwenden, startet man am besten ein administratives Terminal. Hat man das nicht, loest jedes Paket seine eigene UAC Abfrage aus.
Meine Beispiele kommen aus der Powershell, bis auf das "--query" Beispiel sollte alles so aber auch in der CMD funktionieren.
Programmnamen sind nicht casesensitiv. Wenn ein Leerzeichen im Programmnamen vorkommt, muessen Anfuehrungszeichen gesetzt werden.

winget list listet alle installierten Programme auf. Diese Liste enthaelt auch Windows Store Apps, die bei der Programmauflistung in der Systemsteuerung nicht enthalten sind. Besonderes Augenmerk sei auf die letzte Spalte gerichtet: Steht dort "winget", kennt winget das Programm und kann es gegebenenfalls updaten.
In einer Powershell kann winget list | sort verwendet werden um die Liste alphabetisch zu haben

Winget unterstuetzt ueber 5.000 Programme. Eine vollstaendige Liste kann mit winget search --query `"`" | sort >> winget.txt in eine Textdatei geschrieben werden. Der Output ist viel zu viel fuer die Shell selbst :D

winget install "<Programmname>" installiert Programme. Dabei funktionieren auch unvollstaendige Programmnamen, das Ergebnis muss nur eindeutig sein. Ist es nicht eindeutig bekommt man eine Fehlermeldung mit der Ansage das man genauer sein muss, wo alle gefundenen Treffer gelistet werden.
Um mal beim einleitenden Thema zu bleiben:
winget install WinRAR laedt WinRAR herunter und startet den Installer.


winget uninstall "<Programmname>" kann Programme aus der Liste deinstallieren.
Dementsprechend deinstalliert winget uninstall WinRAR WinRAR auch wieder.

Der aber eigendlich wichtigste Punkt:
winget kann Updates installieren, bzw. Programme updaten. Dabei muessen diese nicht urspruenglich mit winget installiert worden sein.
winget upgrade WinRAR prueft ob es ein Update fuer WinRAR gibt, wenn ja wird es heruntergeladen und installiert.

TL;DR:
winget upgrade --all prueft alle kompatibelen Programme auf Upgrades und installiert diese.
Gegebenenfalls macht ein winget upgrade --all --include-unknown Sinn, aber bei mir wurde nie was damit mehr gefunden als ohne --include-unknown

Weiterfuehrender Link:
https://learn.microsoft.com/de-de/windows/package-manager/winget/

Fuer Anregungen und Ergaenzungen bin ich dankbar und wuerde das ggf. in den Artikel nachpflegen.

EDIT: Informationen ueber die Verwendung von unvollstaendigen Programmnamen hinzugefuegt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: SVΞN, nachtlampe, TeehLukas und 24 andere
Endlich wieder ein Leserartikel der den Namen verdient ;)
 
  • Gefällt mir
Reaktionen: SVΞN, Gröss87, BFF und 3 andere
Tiptop, ein paar Sachen die mir dazu einfallen/die ich gern sehen würde:
  • Geht das mit "einfachen" Namen (winrar) grundsätzlich, oder erst ab irgendeiner Version ? Ich nutze noch die doppel-notation, bsp mozilla.firefox
  • Mehrfachinstallation von mehreren Programmen in einem Aufruf ? Ich loope aktuell über eine Stringliste, vielleicht geht das auch in schön :)
  • Troubleshooting-Tips, wenn mal was fehlschlägt ? Discord ist bei mir ein kandidat, der lt. winget immer mal aktueller ist, als das was winget bietet.
Ansonsten wunderbar, wirklich mal wieder was hilfreiches 👍
 
  • Gefällt mir
Reaktionen: Ranayna
Kyze schrieb:
Mehrfachinstallation von mehreren Programmen in einem Aufruf ?
Ja, einfach die Programmnamen nach winget Install auflisten.
 
Kyze schrieb:
Geht das mit "einfachen" Namen (winrar) grundsätzlich, oder erst ab irgendeiner Version ? Ich nutze noch die doppel-notation, bsp mozilla.firefox
Das mit den Namen haengt wohl vom Programmnamen ab, wie er in der Liste ist.
Dabei gehen sowohl Namen aus der ersten, als auch aus der zweiten Spalte.

7zip war da glaube ich eins, das in der zweiten Spalte 7zip.7zip heisst, und in der ersten irgendwas mit 7-zip. Genau kann ich das nochmal pruefen wenn ich wieder zuhause bin.

WinRAR heisst einfach nur WinRAR, deswegen funktioniert das so.
 
Dein Beispiel passt nicht so ganz. WinRAR habe ich manuell installiert.
1693407028114.png
 
Das ist ja interessant. Ich habe extra noch eine alte Version von WinRAR gesucht und installiert, und die konnte ich direkt updaten.
Bei dir werden anscheinend zwei Versionen gefunden. Koennte eine davon aus dem MS Store sein? Den verwende ich nicht und hab mich da auch nie angemeldet.
 
Ich nehme an liegt an Windows 11 und dem neuen Kontext-Menü (siehe "ShellExtension").
 
Danke für den Artikel, heute hab ich mal wieder was gelernt, was richtig nützlich ist.
 
Da ich damit auf mehreren Rechnern den selben Unfall hatte - vollautomatische statt benutzerdefinierte Installation (in Standardordner statt meine vorgesehen, Icons auf den Desktop; ggf. Zuweisen Erweiterungen… → viel Arbeit mit dem Aufräumen!) - muss ich doch fragen wie man diese Automatik so bändigt, dass man gefragt wird.

Dass das eine Vollautomatik konterkariert ist klar. Aber so eine Tool sollte die REG oder wenigstens das Startmenü filzen wo demnach ein Prog installiert ist, mindestens. Wenn Installation benutzerdefiniert erlauben muss so ein Tool eigene Listen anlegen was der User gerne hätte und was nicht.

In der vorhandenen Form mit dem Gedanken der Vollautomatik für mich als Profi eine glatte 5.

CN8
 
Schade, dass die Erkennung installierter Software auch etwas fragwürdig funktioniert:
1693416830610.png


Also meine ganzen JetBrains-Tools sind aktueller als das, was da steht...

Aber: Vielleicht installiere ich sie in Zukunft über winget

Edit:
Hmm... naja, bei Programmen, welche selbst eine Update-Prüfung haben, muss ich mal schauen, ob ich WinGet nutze:
1693417529303.png


für Tools wie 7-zip, das ich alle 100 Jahre mal nutze, oder ein WinRAR, das - sind mir mal ehrlich - einmal installiert selten aktualisiert wird (eben auch mangels Update-Check), da ist etwas wie winget durchaus nützlich. Muss mal schauen, ob ich da über die Aufgabenplanung Anwendungen regelmäßig auf Aktualisierungen prüfen lasse
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: schwimmcoder
@cumulonimbus8:
Das ist eine persoenliche Entscheidung gewesen, aber ich habe es aufgegeben alles in besondere Pfade zu installieren. Erst recht Systemprogramme, die selber keine Daten erzeugen.
Es macht aus meiner Sicht keinen Sinn, ein Programm wie zum Beispiel WinRAR woanders als in den Standardvorschlag zu installieren.
Bei grossen Programmen, wenn man ein kleines Systemlaufwerk hat, kann es noch Sinn machen. Aber selbst da sollte man lieber ueber ein groesseres Laufwerk nachdenken. Denn oft ist es reine Syssiphusarbeit das umzuleiten, weil viele Programme eh einen Haufen Dinge im Systemlaufwerk, bzw. im Userprofil, ablegen.
Desktopverknuepfungen sind mir egal. Legt ein Installer eine an, ists in Ordnung, wenn nicht dann auch. Es stoert mich nicht. Den Desktop sehe ich eh nur in den ersten paar Minuten nach dem Start des Rechners. Programme starte ich entweder ueber eine in der Taskleiste angepinnte Toolbar (Mit einer der Gruende warum ich nicht auf Windows 11 wechseln will) oder ueber die Suche, und Spiele starte ich aus dem Steamclient.

@Kyze: Programmnamen gehen auch als Teilstrings. Obwohl der offizielle Paketname von 7-Zip "7zip.7zip" ist, reicht ein "7zip", oder weil der Displayname 7-Zip enthalt, gehts auch mit Bindestrich. Es muss nur eindeutig sein, sonst gibts die Fehlermeldung die @tollertyp gepostet hat.
 
  • Gefällt mir
Reaktionen: aragorn92
Ranayna schrieb:
Es macht aus meiner Sicht keinen Sinn, ein Programm wie zum Beispiel WinRAR woanders als in den Standardvorschlag zu installieren.
Gut. Mein Kram ist gewachsen. Gewohnheit.

Und doch - was nicht nach C gekleistert wird hält C schlank und damit ist C einfacher als Image zu sichern. Zähle ich zusammen, Metadaten, dann macht das bei einem System das sich seit 25 Jahren und mehr auf diese Methode durchfuttert schon eine Menge Holz aus.

Passt mir schon nicht, dass ich nicht den Installationsordner wählen darf - dass ich nicht nach den anderen Optionen gefragt werde, sorry, das ist tödlich das es immer solche Kameraden gibt die einem dann Murks servieren während andere ruhig und brav durchlaufen.

Eine Automatik die nicht mir dient, die nicht meine Vorgaben annimmt ist keine…

CN8
 
Also grundsätzlich begrüße ich winget. Man merkt aber an vielen Stellen, wie "unausgereift" es leider auch noch ist.

Beispiel:
1693417689053.png


Schlägt er mir noch als Update vor... obwohl er die Version vorher installiert hat:
1693417721531.png



Edit
und hier ein Beispiel mit winget upgrade --include-unknown

1693417818161.png


Man muss da aber selbst nicht aktiv drauf achten, das Tool sagt einem schon, wenn es solche Programme findet:
1693417853804.png
 
  • Gefällt mir
Reaktionen: cumulonimbus8
Hallo, noch eine Rückmeldung:
Also bei mir tauchte auch Display Fusion doppelt in der Liste auf - das liegt daran, dass ich es via Steam gekauft und installiert habe. Steam legt für jede Software einen Uninstall-Eintrag an, und der Display-Fusion-Installer legt dann einen weiteren für sich an. Die Einträge waren also auch doppelt in der "Programme hinzufügen oder entfernen"-Liste.

Ich habe nun einfach den Eintrag, den Steam angelegt hat, in der Registry entfernt. Das führt nun dazu, dass Display Fusion nicht mehr in der Liste der ohne Version (winget upgrade --include-unknown) angezeigt wird und ich es problemlos via winget aktualisieren kann. Installieren halt nicht, aufgrund meiner Steam-Lizenz.

Leider verhält sich das Upgrade bei manchen Anwendungen nicht wie man es sich wünscht. Habe Heroic auf meiner Spiele-SSD installiert. Mache ich ein Upgrade via winget, dann installiert es das Upgrade aber in einen von mir nicht gewünschten Ordner:
1695067940319.png


Naja, kann sein, dass ich langfristig damit leben kann, dass Heroic da liegt (nutze ihn eh kaum btw), muss nur mal schauen wo die Konfiguration liegt, denn die will ich meistens nicht auf der Systempartition haben. Aber vermutlich ist es da egal, wohin ich es installiere.

Edit: Wie vermutet liegt die Konfiguration in AppData, dann werde ich die über Symlinks evtl umziehen.
1695068251419.png
 
cumulonimbus8 schrieb:
Gut. Mein Kram ist gewachsen. Gewohnheit.

Und doch - was nicht nach C gekleistert wird hält C schlank und damit ist C einfacher als Image zu sichern. Zähle ich zusammen, Metadaten, dann macht das bei einem System das sich seit 25 Jahren und mehr auf diese Methode durchfuttert schon eine Menge Holz aus.

Passt mir schon nicht, dass ich nicht den Installationsordner wählen darf - dass ich nicht nach den anderen Optionen gefragt werde, sorry, das ist tödlich das es immer solche Kameraden gibt die einem dann Murks servieren während andere ruhig und brav durchlaufen.

Eine Automatik die nicht mir dient, die nicht meine Vorgaben annimmt ist keine…

CN8
Mit dem Parameter -i bzw --interactive kannst du die Installer im normalen Benutzermodus (mit durchklicken) laufen lassen. Und mit -l bzw. --location kannst du (falls vom Programm unterstützt und von dem Entwickler zugelassen) den Installationsort festlegen. Hier ist noch die offizielle winget Dokumentation mit den Kommandos und den dazugehörigen Parameter.

Winget Dokumentation
 
  • Gefällt mir
Reaktionen: Ranayna
Wenn ich einem Vollautomatik alles vorkauen muss weil sie selbst es nicht erkennt brauche ich sie nicht.
Das wären schon Skripte die dann WINGET ad absurdum führen weil sie auch gleich selbst das Update aus originalen Quellen würden anfordern können.
CN8
 
Woher soll die Vollautomatik ohne Parameter deine, von dem Programmierer abweichenden Einstellungen erraten?
Es macht schon Sinn, wenn die Packet Manager ohne angegebene Parameter die Standardeinstellungen des Programmentwicklers übernehmen.
Du stellst da Anforderungen, die von keinem Paketmanager standardmäßig erfüllt wird.
Wenn du eine Vollautomatik nach deinen Wünschen haben willst, schreibe dir einen Script mit den gewünschten Installationsparametern.
 
Also 100% glücklich bin ich mit winget nicht. Jetzt versucht es tatsächlich, hier eine 32-Bit-Version zu installieren auf meinem 64-Bit-System.

1695285201591.png

Aus dem Fehlerlog:
MSI (s) (E8:58) [10:30:33:553]: Product: RealVNC Viewer 7.6.0 -- Setup has detected that you are running a 64-bit version of Windows. Please download and install a 64-bit version of the software.

Setup has detected that you are running a 64-bit version of Windows. Please download and install a 64-bit version of the software.

Obwohl die zip beide enthält...
1695285295499.png
 
Zurück
Oben