Winget
Programme Updaten und Installieren auf Kommandozeile.
MICROSOFT:
WinGet ist ein Befehlszeilentool, mit dem Benutzer Anwendungen auf Computern unter Windows 10, Windows 11 und Windows Server 2025 ermitteln, installieren, aktualisieren, entfernen und konfigurieren können. Dieses Tool ist die Clientschnittstelle für den Windows-Paket-Manager-Dienst.
Damit hat man endlich auf Windows ein Tool, das in Teilen wie die Paket manager von Linux eine ganze Menge von Programmen installieren und aktualisieren von Programmen.
Vorteile sind hier klar auf der Hand:
- Ich muss nicht im Internet suchen und installiere eventuell das falsche Programm
- Ich kann meine installierten Programme zum grössten tei aktuell halten. Das verhindert Fehler und trägt u.A. auch zur Sicherheit bei.
Anleitungen zu Winget gibt es in Massen -auch sehr ausführlich.
Es ist viel Info unterwegs und es dauert seine Zeit, bis man das Ganze sauber zum Laufen bekommt.
Deshalb hier eine Schnellstart Anleitung aus der Praxis, die auf die Details verzichtet - diese könnt Ihr dann in den genauen Dokus nachlesen
1. Bevor man beginnt
TIPP:
Da die meisten Programme als Administrator installiert werden , empfehle ich, die Kommandozeile (cmd oder powershell) gleich als Administrator zu starten.
Ihr erspart Euch die UAC Abfrage bei jedem einzelnen Programm.
Wenn das Ganze für mehrere Programme in einer Batch laufen soll, kann man das in der Batch direkt erzwingen, indem man ma Anfang der Batch die hier am Anfanh die UAC Anforderung einbaut.
(siehe Batch Cheat-Sheet)
Repositorys aktualisieren: Bevor man irgendwas tut, sollte man die Kataloge aktualisieren:
winget update
Auflisten von installierten Programmen geht so:
winget list
2. Programme finden und Installieren
In der repository suchen (Beispiel vlc):
winget find vlc
Das Ergebnis ist bei mir dann:
Name ID Version Übereinstimmung Quelle
-------------------------------------------------------------------------
VLC XPDM1ZW6815MQM Unknown msstore
VLC UWP 9NBLGGH4VVNH Unknown msstore
VLC media player VideoLAN.VLC 3.0.21 Moniker: vlc winget
Screenbox Starpine.Screenbox 0.15.0 Tag: vlc winget
Streamlink Streamlink.Streamlink 7.1.3-1 Tag: vlc winget
wcap mmozeiko.wcap 2024.10.18 Tag: vlc winget
Hier sieht man, dass unter Umständen mehrere Ergebnisse herauskommen.
Hier muss man das richtige Paket heraussuchen - das ist in diesem Fall VideoLAN.VLC
Das kann man dann mit dem folgenden Befehl installieren:
winget install VideoLAN.VLC
Danach startet die Installation automatisch.
2.1. Zusätzliche nützliche Flags:
- scope:
--scope userinstalliert das Programm nur für den aktuellen User--scope machineinstalliert es auf dem Rechner für alle User
3. Updates
Updates gehen mit dem Befehl upgrade
Wenn man nur ein bestimmtes Programm aktualisieren möchte, kann man dahinter den Namen des Paketes angeben. Für Alles schreibt man --all
Komplett kann ich folgenden Befehl empfehlen:
winget.exe upgrade --all --include-unknown -h
--all: Alle zu aktualisierenden Programme updaten--include.unknown: Wenn die Versionsnummern nicht verglichen werden können, sicherheitshalber mit der neusten Version aktualisieren-hmöglichst ohne grosse Nachfragen
3.1. Ergänzungen und mögliche Probleme
Manche Programme sollen nicht aktualisiert werden. Beispielsweise, wenn ihr eine Linzenz für Version 2 habt, aber die Version 3 schon publik ist. In dem Fall würde winget eine unlizensierte Version einspielen.
Man kann es durch den Befehl PINverhindern.
winget pin add powertoysverhindert das Update von Powertoys.
winget pin rempve powertoyshebt die Blockade wieder auf.
Es gibt hier noch andere Möglichkeiten, wie die Einschränkung auf Versionen u.Ä. Weiteres im GitHub](https://github.com/MicrosoftDocs/windows-dev-docs/blob/docs/hub/package-manager/winget/pinning.md))
Wenn das Update nicht gelingt, weil Nachrichten bzgl. falscher Version o.Ä kommen, liegt das oft daran, dass das Programm manuell installiert wurde. Winget erkennt das Programm, kann aber die aktuelle Version nicht so ersetzen, wie sie installiert wurde.
Es hilft in diesem Fall, das Programm zu deinstallieren und mit Winget neu aufzuspielen.
Einige Programme haben die Möglichkeit, sich für den Benutzer oder die Maschine (alle Benutzer) zu installieren.
Da hilft eine Variation des Flags --scope user oder --scope machine.
Ich halte es so, dass ich alle Programme möglichst mit --scope machineinstalliere und als admin update.
Schliesslich sollen die Programme auch meinem Admin und Weiteren zur Verfügung stehen.
3.2. Auto-Update Batch
Hier meine batch zum auomatischen Upgrade aller Programme.
Sie verlangt UAC (Admin), damit wird nicht bei jeder Installation nach Admin-Rechnten gefragt
@echo off
:: BatchGotAdmin
::-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"="
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
::--------------------------------------
winget.exe upgrade --all -h
winget.exe upgrade --all --include-unknown -h
:: === Falls jemand die erstellten Links löschen will ======
:: Achtung - alle Links uaf dem public Desktop verschwinden dann
REM del C:\Users\Public\Desktop\*.lnk /q
4. ANHANG
4.1. Installation von Winget
4.1.1. Winget auf Windows 11
In Windows 11 ist Winget schon an Bord - da braucht man quasi nichts zu machen.
- In Windows Server bis 2019 habe ich es nicht zum Laufen bekommen
- . Dazu ein eigenes Kapitel:
4.1.2. WinGet auf Windows 10
Windows 10 hat Anfangs kein Winget. Es ist allerdings tricky das Ganze zu Installieren
Es gibt verschiedene Theorien und Anleitungen, die je nach Version mal gehen, mal nicht.
Man könnte es aus dem Playstore installieren, oder direkt vom Github. Oft klapp es aber nicht und ich habe da auch keine Geduld dazu.
Zum Glück gibt es da die Jungs von UniGetUI, die ein schönes Tool entwickelt haben, mit dem man Winget auch grafisch bedienen kann. Gerne mal anschauen.
Das ist nicht ganz für diesen Artikel - ABER:
SCHNELLSTART: Die Installation von UniGetUI hat alles eingebaut, was man braucht. Das heisst, Ihr installiert UniGet und WinGet und alle Abhängigkeiten sind da. Danke für die Arbeit und Aktualisierung der Routinen.
Wenn Ihr dann auf Kommandozeile arbeiten wollt - kann man das Tool auch wieder entfernen.
4.2. Meine Standard Programme auf neuen Rechnern
#APPS
@echo off
echo START
REM == Editoren und Text Tools ==
winget install Microsoft.VisualStudioCode
winget install Notepad++.Notepad++
winget install Obsidian.Obsidian --scope machine
winget install AstroComma.AstroGrep
REM == Browser ==
winget install Google.Chrome.EXE
winget install Mozilla.Firefox
REM == File Tools ==
winget install 7zip.7zip
winget install Synology.DriveClient
winget install TGRMNSoftware.BulkRenameUtility
winget install voidtools.Everything
REM == Media Tools ==
winget install Greenshot.Greenshot
winget install LibreCAD.LibreCAD
winget install FastStone.Viewer
winget install OBSProject.OBSStudio
REM == Office und Dokumente ==
winget install calibre.calibre
winget install AutoHotkey.AutoHotkey
winget install Balena.Etcher
winget install Citrix.Workspace
winget install RealVNC.VNCViewer
winget install SumatraPDF.SumatraPDF
winget install VideoLAN.VLC
winget install WinSCP.WinSCP
winget install WireGuard.WireGuard
winget install rufus.rufus
echo Fertig
pause