So arbeitet der Windows Package Manager im Hintergrund
Wer bereits mit Linux-Paketmanagern wie APT, DNF oder Pacman gearbeitet hat, erkennt schnell einige Gemeinsamkeiten. Auch Winget arbeitet mit Paketquellen und Metadaten, lädt Software automatisiert herunter und installiert sie.
Dennoch unterscheidet sich Winget in einem wichtigen Punkt: Es stellt die Programme in der Regel nicht selbst bereit, sondern nutzt die offiziellen Installationsdateien der jeweiligen Softwarehersteller. Dadurch bleibt die Verantwortung für die eigentliche Software beim Hersteller, während Winget die Verwaltung übernimmt.
Um zu verstehen, warum Winget zuverlässig und sicher arbeitet, lohnt sich ein Blick auf die einzelnen Komponenten.
Die Architektur im Überblick
Eine typische Installation durchläuft mehrere Stationen:
Benutzer
│
▼
Winget Client
│
▼
Paketquelle (Source)
│
▼
Manifest
│
▼
Download der Originaldatei
│
▼
Hash-Prüfung
│
▼
Installer starten
│
▼
Installation
Jede dieser Komponenten erfüllt eine klar definierte Aufgabe.
Der Winget Client
Der Winget Client ist das eigentliche Programm, das Sie über die Eingabeaufforderung, PowerShell oder das Windows Terminal verwenden.
Beispiele:
winget search firefox winget install Mozilla.Firefox winget upgrade --all
Der Client übernimmt unter anderem folgende Aufgaben:
- Befehle entgegennehmen
- Paketquellen abfragen
- Manifeste auswerten
- Downloads starten
- Prüfsummen kontrollieren
- Installer ausführen
- Fehler protokollieren
Der Client bildet damit die zentrale Steuerinstanz des gesamten Systems.
Sources – Die Paketquellen
Winget arbeitet mit sogenannten Sources.
Eine Source ist eine Paketquelle, aus der Informationen über verfügbare Software bezogen werden.
Standardmäßig ist bereits die offizielle Microsoft-Quelle eingerichtet.
Vorhandene Quellen anzeigen:
winget source list
Beispielausgabe:
Name Argument ------------------------- winget https://... msstore https://...
Je nach Konfiguration können weitere Quellen hinzugefügt werden.
Sources enthalten jedoch keine Programme selbst, sondern lediglich Informationen über die verfügbaren Pakete.
Repositories
Eine Source verweist auf ein Repository.
Ein Repository enthält tausende sogenannte Paketmanifeste.
Das offizielle Winget-Repository umfasst inzwischen mehrere tausend Anwendungen aus unterschiedlichsten Kategorien.
Dazu gehören beispielsweise:
- Browser
- Office-Anwendungen
- Multimedia
- Entwicklerwerkzeuge
- Virtualisierung
- Datenbanken
- Sicherheitssoftware
- Netzwerktools
Das Repository wird kontinuierlich erweitert und aktualisiert.
Manifeste
Das Herzstück von Winget sind die Manifeste.
Ein Manifest beschreibt ein Softwarepaket vollständig.
Typischerweise enthält es:
- Paketname
- Paket-ID
- Hersteller
- Version
- Beschreibung
- Lizenz
- Homepage
- Download-URL
- Prüfsumme (SHA-256)
- Installer-Typ
- Unterstützte Architekturen
- Silent-Parameter
- Mindestbetriebssystem
Ein stark vereinfachtes Beispiel:
PackageIdentifier: Mozilla.Firefox PackageVersion: 141.0 InstallerType: exe InstallerUrl: https://download.mozilla.org/... InstallerSha256: A34F...
Das Manifest dient als Bauplan für die gesamte Installation.
Installer
Winget installiert Programme nicht selbst.
Stattdessen nutzt es die Originalinstaller der Hersteller.
Unterstützt werden unter anderem:
- EXE
- MSI
- MSIX
- MSIXBundle
- APPX
- APPXBundle
- ZIP (je nach Paket)
Der Vorteil:
Die Installation entspricht exakt der offiziellen Installation des Herstellers.
Winget übernimmt lediglich die Steuerung.
Der Downloadprozess
Der eigentliche Installationsvorgang läuft in mehreren Schritten ab.
1. Paket suchen
Der Benutzer fordert eine Installation an.
winget install Mozilla.Firefox
2. Manifest laden
Winget lädt das passende Manifest aus der Paketquelle.
3. Download-Adresse auslesen
Aus dem Manifest wird die Download-URL ermittelt.
4. Installer herunterladen
Nun wird der Originalinstaller direkt vom Hersteller heruntergeladen.
Nicht von Microsoft.
5. Hash prüfen
Vor der Installation überprüft Winget die heruntergeladene Datei.
6. Installation starten
Erst danach wird der Installer ausgeführt.
7. Rückmeldung
Nach Abschluss informiert Winget über Erfolg oder Fehler.
Die Hash-Prüfung
Ein besonders wichtiger Sicherheitsmechanismus ist die Hash-Prüfung.
Jede Datei besitzt einen eindeutigen Fingerabdruck.
Meist wird hierfür ein SHA-256-Hash verwendet.
Vor der Installation berechnet Winget den Hash der heruntergeladenen Datei und vergleicht ihn mit dem im Manifest hinterlegten Wert.
Stimmen beide Werte überein:
- Datei unverändert
- Download erfolgreich
- Installation wird gestartet
Unterscheiden sich die Werte:
- Installation wird abgebrochen
- Sicherheitswarnung erscheint
- Keine Ausführung der Datei
Dadurch wird verhindert, dass manipulierte oder beschädigte Installationsdateien ausgeführt werden.
Die eigentliche Installation
Nachdem alle Prüfungen erfolgreich abgeschlossen wurden, startet Winget den Installer.
Je nach Paket erfolgt die Installation:
- interaktiv
- unbeaufsichtigt (Silent)
- mit benutzerdefinierten Parametern
- mit Administratorrechten
- für den aktuellen Benutzer
- systemweit
Die dafür benötigten Optionen stammen ebenfalls aus dem Manifest.
Rollback
Ein klassisches Rollback wie bei einigen Linux-Paketmanagern bietet Winget derzeit nicht.
Das bedeutet:
Wird eine Installation unterbrochen oder schlägt sie fehl, hängt das Verhalten vom verwendeten Installer ab.
Einige Installer:
- entfernen bereits kopierte Dateien
- setzen Änderungen zurück
- führen eigene Rollback-Routinen aus
Andere Installer besitzen diese Funktion hingegen nicht.
Winget selbst verwaltet keine Snapshots des Systems.
Wer umfangreiche Änderungen an produktiven Systemen plant, sollte daher vorab geeignete Sicherungsmaßnahmen treffen, etwa über Systemwiederherstellungspunkte oder Images.
Das Sicherheitsmodell
Microsoft hat Winget mit mehreren Sicherheitsmechanismen ausgestattet.
Offene Manifeste
Alle Manifeste sind öffentlich einsehbar und werden über das offizielle Repository verwaltet.
Code Reviews
Neue Pakete werden vor der Aufnahme überprüft.
Dadurch sinkt das Risiko fehlerhafter oder manipulierter Einträge.
Prüfsummen
Jeder Download wird anhand des hinterlegten SHA-256-Hashes überprüft.
Originalquellen
Die Installationsdateien stammen in der Regel direkt von den Herstellern.
HTTPS
Downloads erfolgen üblicherweise verschlüsselt über HTTPS.
Signierte Installer
Viele Hersteller signieren ihre Installationsprogramme digital.
Windows überprüft diese Signaturen zusätzlich.
Administratorrechte
Programme werden nur mit den erforderlichen Berechtigungen installiert.
Transparenz
Da Winget Open Source ist, kann der Quellcode von jedem eingesehen und überprüft werden.
Vorteile dieser Architektur
Die Architektur von Winget bietet zahlreiche Vorteile:
- Klare Trennung zwischen Verwaltung und Installation
- Originalsoftware der Hersteller
- Hohe Sicherheit durch Hash-Prüfung
- Automatische Aktualisierung der Paketinformationen
- Einheitliche Verwaltung
- Gute Erweiterbarkeit
- Unterstützung unterschiedlicher Installer
- Einfache Automatisierung
- Hohe Transparenz
Dadurch eignet sich Winget sowohl für einzelne PCs als auch für große Unternehmensumgebungen.
Architektur in der Praxis
Eine typische Installation von Visual Studio Code sieht intern beispielsweise so aus:
- Benutzer startet
winget install Microsoft.VisualStudioCode. - Winget durchsucht die Paketquellen.
- Das passende Manifest wird geladen.
- Die Download-Adresse des offiziellen Installers wird ermittelt.
- Die Installationsdatei wird direkt von Microsoft heruntergeladen.
- Winget überprüft den SHA-256-Hash.
- Der Installer wird mit den im Manifest definierten Parametern gestartet.
- Nach erfolgreicher Installation meldet Winget den Abschluss.
Für den Benutzer besteht der gesamte Vorgang aus nur einem einzigen Befehl.
Die Architektur von Winget verbindet eine einfache Bedienung mit einer durchdachten technischen Grundlage. Statt Programme selbst bereitzustellen, verwaltet Winget deren Metadaten, lädt die Originalinstaller der Hersteller herunter und überprüft diese vor der Ausführung auf ihre Integrität. Paketquellen, Repositories, Manifeste und Hash-Prüfungen greifen dabei nahtlos ineinander und sorgen für eine sichere sowie nachvollziehbare Softwareverwaltung.
Gerade diese Trennung zwischen Verwaltung und eigentlicher Installation macht Winget flexibel, transparent und leicht erweiterbar. Sie bildet die Grundlage für alle weiteren Funktionen – von automatisierten Installationen bis hin zur zentralen Softwareverwaltung in Unternehmen.