# winget — Der Windows-Paketmanager

> Praxis-Guide zu winget — Microsofts Paketmanager für Windows 10/11: Apps suchen, installieren, aktualisieren und mit export/import reproduzieren.

Source: https://www.jpkc.com/db/cheatsheets/package-managers/winget/

<!-- PROSE:intro -->
winget ist der offizielle Paketmanager von Microsoft für Windows 10 und 11 – mit ihm suchst, installierst, aktualisierst und entfernst du Anwendungen direkt von der Kommandozeile, ohne dich durch Setup-Assistenten zu klicken. Die Pakete kommen aus dem öffentlichen winget-Repository (einer großen Community-Quelle) und dem Microsoft Store, sodass du Tausende gängiger Programme mit einem einzigen Befehl bekommst. Besonders praktisch sind `winget export` und `winget import`: Damit hältst du dein Software-Setup als JSON-Datei fest und richtest einen neuen oder frisch aufgesetzten Rechner reproduzierbar ein. Dieser Guide zeigt dir die wichtigsten Befehle für den Alltag – von der Suche über die stille Installation bis zum versionsgenauen Pinnen einzelner Pakete.
<!-- PROSE:intro:end -->

## Suche & Informationen

`winget search <query>` — Sucht Pakete nach Name oder Stichwort.

```bash
winget search firefox
```

`winget search --id <id>` — Sucht nach der exakten Paket-Kennung (ID).

```bash
winget search --id Mozilla.Firefox
```

`winget show <package>` — Zeigt detaillierte Informationen zu einem Paket.

```bash
winget show Mozilla.Firefox
```

`winget show <package> --versions` — Listet alle verfügbaren Versionen eines Pakets auf.

```bash
winget show Microsoft.VisualStudioCode --versions
```

## Installieren

`winget install <package>` — Installiert ein Paket.

```bash
winget install Mozilla.Firefox
```

`winget install <package> --version <ver>` — Installiert eine bestimmte Version.

```bash
winget install Python.Python.3.12 --version 3.12.2
```

`winget install <package> --silent` — Installiert ohne Rückfragen (keine Installer-Oberfläche).

```bash
winget install Microsoft.VisualStudioCode --silent
```

`winget install <package> --location <path>` — Installiert in ein eigenes Zielverzeichnis.

```bash
winget install Git.Git --location D:\Tools\Git
```

`winget install <package> --accept-source-agreements --accept-package-agreements` — Installiert und bestätigt dabei alle Lizenz- und Quellen-Vereinbarungen (nicht-interaktiv).

```bash
winget install Docker.DockerDesktop --accept-source-agreements --accept-package-agreements
```

`winget install <package> --scope machine` — Installiert für alle Benutzer (systemweit).

```bash
winget install Notepad++.Notepad++ --scope machine
```

## Aktualisieren & Upgrades

`winget upgrade` — Listet alle Pakete mit verfügbaren Updates auf.

```bash
winget upgrade
```

`winget upgrade <package>` — Aktualisiert ein bestimmtes Paket.

```bash
winget upgrade Mozilla.Firefox
```

`winget upgrade --all` — Aktualisiert alle Pakete, für die Updates verfügbar sind.

```bash
winget upgrade --all
```

`winget upgrade --all --silent` — Aktualisiert alle Pakete ohne Rückfragen.

```bash
winget upgrade --all --silent
```

`winget upgrade --include-unknown` — Bezieht Pakete mit unbekannter Version ins Upgrade ein.

```bash
winget upgrade --all --include-unknown
```

## Deinstallieren & Auflisten

`winget uninstall <package>` — Deinstalliert ein Paket.

```bash
winget uninstall Mozilla.Firefox
```

`winget uninstall <package> --purge` — Deinstalliert und entfernt alle Daten/Einstellungen.

```bash
winget uninstall Microsoft.Teams --purge
```

`winget list` — Listet alle installierten Pakete auf.

```bash
winget list
```

`winget list <query>` — Durchsucht die installierten Pakete.

```bash
winget list python
```

`winget list --source winget` — Listet nur Pakete aus der winget-Quelle auf.

```bash
winget list --source winget
```

## Exportieren & Importieren

`winget export -o <file>` — Exportiert die installierten Pakete in eine JSON-Datei.

```bash
winget export -o packages.json
```

`winget import -i <file>` — Installiert Pakete aus einer exportierten JSON-Datei.

```bash
winget import -i packages.json
```

`winget import -i <file> --accept-source-agreements --accept-package-agreements` — Importiert Pakete nicht-interaktiv (bestätigt alle Vereinbarungen).

```bash
winget import -i packages.json --accept-source-agreements --accept-package-agreements
```

## Quellen & Einstellungen

`winget source list` — Listet die konfigurierten Paketquellen auf.

```bash
winget source list
```

`winget source update` — Aktualisiert die Indizes aller Paketquellen.

```bash
winget source update
```

`winget source add --name <name> <url>` — Fügt eine eigene Paketquelle hinzu.

```bash
winget source add --name myrepo https://repo.example.com
```

`winget source remove --name <name>` — Entfernt eine Paketquelle.

```bash
winget source remove --name myrepo
```

`winget settings` — Öffnet die winget-Einstellungsdatei im Standardeditor.

```bash
winget settings
```

`winget --info` — Zeigt winget-Version, Log-Pfade und Links an.

```bash
winget --info
```

## Pinnen (Version festhalten)

`winget pin add <package>` — Pinnt ein Paket, um automatische Updates zu verhindern.

```bash
winget pin add Python.Python.3.12
```

`winget pin add <package> --version <ver>` — Pinnt ein Paket auf eine bestimmte Version.

```bash
winget pin add Node.js --version 20.11.0
```

`winget pin list` — Listet alle gepinnten Pakete auf.

```bash
winget pin list
```

`winget pin remove <package>` — Entfernt den Pin von einem Paket.

```bash
winget pin remove Python.Python.3.12
```

<!-- PROSE:outro -->
## Fazit

winget macht Windows endlich zu einem System, das sich wie ein modernes Entwickler-Setup verwalten lässt: ein Befehl statt Download, Doppelklick und „Weiter, Weiter, Fertig". Sein größtes Potenzial entfaltet es im Zusammenspiel von `winget export` und `winget import` – damit dokumentierst du deinen kompletten Software-Stand und stellst ihn auf einem neuen Rechner reproduzierbar wieder her. Achte beim ersten Lauf auf die Lizenz- und Quellen-Zustimmung: `--accept-source-agreements` und `--accept-package-agreements` machen Installationen skriptfähig, du bestätigst damit aber zugleich die Lizenzbedingungen jedes Pakets – setze sie also bewusst. Installiere bevorzugt aus den vertrauenswürdigen Standardquellen `winget` (Community-Repository) und `msstore` (Microsoft Store) und sei bei selbst hinzugefügten Quellen vorsichtig. Mit `winget upgrade --all` hältst du dein System in einem Rutsch aktuell, und gepinnte Pakete bleiben dabei auf ihrer festgelegten Version.

## Weiterführende Links

- [Windows Package Manager – Microsoft Learn](https://learn.microsoft.com/de-de/windows/package-manager/) – offizielle Dokumentation zu winget (deutschsprachig)
- [winget-Befehlsreferenz – Microsoft Learn](https://learn.microsoft.com/de-de/windows/package-manager/winget/) – alle Unterbefehle und Optionen im Detail (deutschsprachig)
- [winget-cli auf GitHub](https://github.com/microsoft/winget-cli) – Quellcode, Releases und Issue-Tracker (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [apk](https://www.jpkc.com/db/cheatsheets/package-managers/apk/) – Paketmanager von Alpine Linux
- [apt](https://www.jpkc.com/db/cheatsheets/package-managers/apt/) – komfortables Paket-Frontend für Debian/Ubuntu
- [apt-get](https://www.jpkc.com/db/cheatsheets/package-managers/apt-get/) – das klassische, skriptstabile APT-Werkzeug

