Was ist Windows Package Manager (winget)?
Der Windows Package Manager – kurz winget – ist Microsofts offizielles Kommandozeilen-Tool zur Verwaltung von Software unter Windows 10 und Windows 11. Seit der Einführung 2020 hat sich winget zum Standard für effiziente Softwareverwaltung entwickelt.
Was Linux-Nutzer seit Jahrzehnten mit apt oder yum kennen, gibt es nun endlich auch für Windows: Ein einziges Tool, um Programme zu suchen, installieren, aktualisieren und deinstallieren – alles über die Kommandozeile.
Suchen
Durchsuchen Sie tausende Pakete im offiziellen Repository mit einem Befehl.
Installieren
Software installieren ohne Browser, Download-Seiten oder Setup-Wizards.
Aktualisieren
Alle Programme gleichzeitig auf den neuesten Stand bringen.
Deinstallieren
Programme sauber entfernen – direkt aus der Kommandozeile.
💡 Voraussetzungen
Winget ist auf Windows 11 und Windows 10 (ab Version 1709) vorinstalliert als Teil des „App Installers". Falls nicht verfügbar: winget im Microsoft Store suchen oder von GitHub herunterladen.
Der Befehl im Detail erklärt
Schauen wir uns den Befehl winget upgrade --all --include-unknown Stück für Stück an:
| Teil | Bedeutung |
|---|---|
winget |
Ruft den Windows Package Manager auf |
upgrade |
Der Upgrade-Befehl – prüft auf Updates und installiert sie |
--all |
Aktualisiert alle Pakete, nicht nur ein bestimmtes |
--include-unknown |
Inkludiert auch Pakete ohne erkennbare Versionsnummer |
Warum --include-unknown?
Manche Programme wie Chrome, Firefox, Kindle oder Microsoft Teams melden ihre Versionsnummer nicht korrekt an winget. In der Ausgabe von winget upgrade erscheint dann „Unknown" statt einer Versionsnummer.
Ohne --include-unknown überspringt winget diese Programme – sie werden nicht aktualisiert. Mit dem Flag werden auch diese „versteckten" Updates erfasst.
❌ Ohne --include-unknown
winget upgrade --all
10 Pakete haben unbekannte Versionen.
Verwenden Sie --include-unknown.
✅ Mit --include-unknown
winget upgrade --all --include-unknown
Alle Pakete werden aktualisiert,
auch Chrome, Firefox, etc.
Die wichtigsten winget-Befehle
Neben dem Upgrade-Befehl gibt es weitere essenzielle Kommandos, die Sie kennen sollten:
winget upgrade
Zeigt eine Liste aller Programme mit verfügbaren Updates – ohne sie zu installieren.
winget upgrade --id Mozilla.Firefox
Aktualisiert nur ein spezifisches Programm anhand seiner ID.
winget search <suchbegriff>
winget install --id 7zip.7zip
winget uninstall --id <Package.ID>
winget list
Erweiterte Optionen & Flags
Für maximale Kontrolle und Automatisierung bietet winget zahlreiche zusätzliche Parameter:
| Flag | Beschreibung |
|---|---|
--silent |
Stille Installation ohne UI (soweit unterstützt) |
--accept-package-agreements |
Lizenzvereinbarungen automatisch akzeptieren |
--accept-source-agreements |
Quell-Agreements automatisch akzeptieren |
--include-pinned |
Auch gepinnte Pakete aktualisieren |
--disable-interactivity |
Alle Benutzereingaben deaktivieren |
--force |
Upgrade erzwingen, auch wenn bereits aktuell |
--uninstall-previous |
Alte Version vor Update deinstallieren |
Der ultimative Befehl für volle Automatisierung
winget upgrade --all --include-unknown --silent --accept-package-agreements --accept-source-agreements
Dieser Befehl aktualisiert alle Programme vollständig automatisch, ohne Benutzerinteraktion. Perfekt für Skripte und geplante Tasks.
⚠️ Wichtig: Als Administrator ausführen
Für vollständig stille Updates ohne UAC-Prompts muss PowerShell oder CMD als Administrator gestartet werden. Andernfalls erscheint für jedes Paket ein Bestätigungsdialog.
Automatische Updates einrichten
Der wahre Power-Move: winget-Updates vollautomatisch im Hintergrund laufen lassen. Mit der Windows-Aufgabenplanung ist das schnell eingerichtet.
Methode 1: Batch-Datei + Aufgabenplanung
-
Batch-Datei erstellen
Öffnen Sie Notepad und fügen Sie folgenden Inhalt ein:
@echo off
winget upgrade --all --include-unknown --silent --accept-package-agreements --accept-source-agreements
-
Datei speichern
Speichern Sie die Datei als
winget-update.batan einem festen Ort, z.B.C:\Scripts\winget-update.bat -
Aufgabenplanung öffnen
Windows-Taste drücken, „Aufgabenplanung" eingeben und öffnen.
-
Neue Aufgabe erstellen
Klicken Sie auf „Aufgabe erstellen" (nicht „Einfache Aufgabe").
-
Allgemein konfigurieren
Name vergeben und „Mit höchsten Privilegien ausführen" aktivieren – das ist entscheidend!
-
Trigger festlegen
Z.B. täglich um 12:00 Uhr oder bei jeder Anmeldung.
-
Aktion hinzufügen
„Programm starten" wählen und den Pfad zur Batch-Datei angeben.
Methode 2: PowerShell-Skript mit Logging
# Winget Auto-Update mit Logging
$LogPath = "C:\Logs\winget-update.log"
$Date = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
# Log-Verzeichnis erstellen falls nicht vorhanden
if (!(Test-Path "C:\Logs")) { New-Item -ItemType Directory -Path "C:\Logs" }
# Update starten und loggen
Add-Content -Path $LogPath -Value "=== Update gestartet: $Date ==="
winget upgrade --all --include-unknown --silent `
--accept-package-agreements `
--accept-source-agreements | Out-File -Append $LogPath
Add-Content -Path $LogPath -Value "=== Update beendet: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ==="
💡 Profi-Tipp: Bei Anmeldung ausführen
Richten Sie den Task so ein, dass er bei jeder Benutzeranmeldung startet. So sind Ihre Programme immer aktuell, ohne dass Sie daran denken müssen.
Troubleshooting & häufige Probleme
Problem: „Installer-Hash stimmt nicht überein"
Manchmal ändert ein Entwickler den Installer, ohne die Versionsnummer zu aktualisieren. Winget verweigert dann aus Sicherheitsgründen das Update.
# Programm deinstallieren und neu installieren
winget uninstall --id <Package.ID>
winget install --id <Package.ID>
Problem: Programm wird nicht gefunden
Nicht alle Programme sind im winget-Repository. Prüfen Sie mit winget search, ob das Programm verfügbar ist. Alternative: winstall.app durchsuchen.
Problem: Updates bleiben hängen
⚠️ Mögliche Ursachen
• Programm läuft noch im Hintergrund – schließen Sie es vor dem Update
• Netzwerkprobleme – Internetverbindung prüfen
• Berechtigungen fehlen – PowerShell als Admin starten
Problem: Bestimmtes Programm nicht updaten
Wenn Sie ein Programm von Updates ausschließen möchten, können Sie es „pinnen":
# Programm pinnen (von Updates ausschließen)
winget pin add --id <Package.ID>
# Pin entfernen
winget pin remove --id <Package.ID>
# Alle Pins anzeigen
winget pin list
Best Practices & Profi-Tipps
Vor dem Update: Liste prüfen
Führen Sie zuerst winget upgrade ohne --all aus, um zu sehen, was aktualisiert wird.
Konfiguration exportieren
Mit winget export -o apps.json können Sie Ihre installierte Software sichern.
GUI-Alternative: WingetUI
Für weniger Terminal-affine Nutzer gibt es WingetUI – eine grafische Oberfläche für winget.
Logs prüfen
Winget speichert Logs unter %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller...\LocalState\DiagOutputDir
Export & Import: Neuen PC einrichten
Mit winget können Sie Ihre komplette Software-Konfiguration exportieren und auf einem neuen PC importieren:
# Auf dem alten PC: Liste exportieren
winget export -o C:\Backup\meine-apps.json --include-versions
# Auf dem neuen PC: Alle Programme installieren
winget import -i C:\Backup\meine-apps.json --accept-package-agreements
💡 Geheimtipp: winget + Windows Sandbox
Testen Sie neue Software zuerst in der Windows Sandbox. Winget dort installieren: Repair-WinGetPackageManager in PowerShell ausführen.
Zusammenfassung: Die wichtigsten Befehle
| Aufgabe | Befehl |
|---|---|
| Updates anzeigen | winget upgrade |
| Alle updaten (empfohlen) | winget upgrade --all --include-unknown |
| Vollautomatisch updaten | winget upgrade --all --include-unknown --silent --accept-package-agreements --accept-source-agreements |
| Programm installieren | winget install --id <ID> |
| Programm suchen | winget search <name> |
| Programm deinstallieren | winget uninstall --id <ID> |
| Installierte Programme | winget list |
| Programme exportieren | winget export -o apps.json |
| Programm pinnen | winget pin add --id <ID> |
🎯 Fazit
winget upgrade --all --include-unknown ist der eine Befehl, den jeder Windows-Nutzer kennen sollte. Er hält alle Programme aktuell, schließt Sicherheitslücken und spart stundenlange manuelle Updates. Kombiniert mit der Aufgabenplanung haben Sie ein vollautomatisches Update-System – kostenlos, nativ und ohne Drittanbieter-Tools.