Kaffeeundcode

Winget: Der Paketmanager, den jedes Windows-Admin braucht

17. Mai 2026 Mattia Cirillo 0 Kommentare
MODUL: Intune A-Z Mastercourse
THEMA: Winget: Der Paketmanager, den jedes Windows-Admin braucht
FOKUS: Industrial Precision Design

Software installieren auf Windows — früher hieß das: Setup.exe suchen, Next-Next-Finish klicken, hoffen dass keine Toolbar mitkommt. Mit winget hat Microsoft endlich einen echten Paketmanager für Windows gebracht. Und wer Intune nutzt, wird ihn lieben.

Was ist Winget?

winget (Windows Package Manager) ist Microsofts offizielles CLI-Tool zum Installieren, Updaten und Verwalten von Software unter Windows — quasi apt für Windows. Es kommt ab Windows 10 1709 vorinstalliert mit und greift auf ein riesiges Repository im Microsoft Store zurück.

Das Beste: Es funktioniert sowohl lokal auf dem Admin-Rechner als auch remote via Intune-Skripte.

Grundbefehle

Software suchen

winget search firefox

Sucht im Repository nach dem Begriff. Zeigt Package-ID, Version und Quelle.

Software installieren

winget install Mozilla.Firefox

Installiert Firefox ‚Äî ohne Klicks, ohne Wizard. Auch mit –silent f√ºr komplett unbeaufsichtigte Installation:

winget install Mozilla.Firefox --silent --accept-package-agreements --accept-source-agreements

Software updaten

winget upgrade --all

Updatet alle installierte Software auf die neueste Version. Oder gezielt:

winget upgrade Mozilla.Firefox

Software deinstallieren

winget uninstall Mozilla.Firefox

Installierte Software auflisten

winget list

Zeigt alle per winget verwaltbare Software mit aktueller und verfügbarer Version.

Export und Import

Gerne übersehen, aber extrem praktisch für Rechner-Setup:

# Aktuelle Software als JSON exportieren
winget export -o C:\Temp\my-packages.json

# Auf einem neuen Rechner alles reinstallieren
winget import -i C:\Temp\my-packages.json --accept-package-agreements

Winget in der Praxis: Use Cases

1. Neuer Rechner-Setup in 5 Minuten

Statt jede App einzeln herunterzuladen und durch den Wizard zu klicken:

winget install --id Microsoft.VisualStudioCode --silent
winget install --id Google.Chrome --silent
winget install --id Mozilla.Firefox --silent
winget install --id 7zip.7zip --silent
winget install --id Notepad++.Notepad++ --silent
winget install --id Microsoft.AzureCLI --silent
winget install --id Microsoft.PowerShell --silent

Oder noch eleganter mit einem Import-File.

2. Intune: Software-Deployment via PowerShell-Skript

Winget l√§sst sich perfekt in Intune-Remoteskripte einbinden:

# Intune PowerShell-Skript
$ErrorActionPreference = "Stop"

# Winget updaten
winget upgrade --id Microsoft.AppInstaller --silent --accept-package-agreements --accept-source-agreements

# Software installieren
$apps = @(
    "Mozilla.Firefox",
    "Google.Chrome",
    "7zip.7zip",
    "Adobe.Acrobat.Reader.64-bit"
)

foreach ($app in $apps) {
    winget install --id $app --silent --accept-package-agreements --accept-source-agreements
}

3. Regelmäßige Updates per Scheduled Task

# Scheduled Task erstellen
$action = New-ScheduledTaskAction -Execute "winget.exe" -Argument "upgrade --all --silent --accept-package-agreements --accept-source-agreements"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Wednesday -At 03:00
Register-ScheduledTask -TaskName "Winget Auto-Update" -Action $action -Trigger $trigger -RunLevel Highest

Winget vs. andere Paketmanager

Feature winget Chocolatey Ninite
Vorinstalliert Ja (ab Win10 1709) Nein Nein
Repository Microsoft Store Community + eigene Nur ca. 100 Apps
Business-Repository Ja (MS Store for Business) Ja (Pro-Lizenz) Nein
Intune-Integration Native PowerShell Community-Skripte Keine
Kosten Kostenlos Freemium Freemium
App-Anzahl ueber 2.500 ueber 4.000 ca. 100

Haeufige Probleme und Loesungen

App ist nicht im Repository

Nicht jede Software ist gelistet. Pruefen mit winget search. Alternative: –manifest fuer eigene YAML-Dateien oder Chocolatey als Fallback.

UAC-Prompts blockieren Silent Install

Fuer Intune-Deployment: Skripte im System-Kontext ausfuehren (nicht User-Kontext). Dann kein UAC-Popup. Auch: –accept-package-agreements und –accept-source-agreements nicht vergessen.

Winget-Pfad in PowerShell nicht gefunden

# Loesung: Pfad explizit setzen
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

# Oder winget direkt aufrufen
and "$env:LOCALAPPDATA\Microsoft\WindowsApps\winget.exe" install Mozilla.Firefox

Version-Pinning

Manchmal will man ein Update zurueckhalten:

# Bestimmte Version installieren
winget install --id Mozilla.Firefox --version 120.0.1

# Version pinnen (ab winget v1.6+)
winget pin add --id Mozilla.Firefox

Winget fuer Intune-Admins: Best Practices

Empfehlung Warum?
Immer –accept-package-agreements nutzen Verhindert interaktive Prompts im Silent-Modus
Skripte im System-Kontext laufen lassen Keine UAC-Prompts, volle Admin-Rechte
winget upgrade –id Microsoft.AppInstaller zuerst Stellt sicher, dass winget selbst aktuell ist
App-ID nutzen, nicht den Anzeigenamen Mozilla.Firefox statt Firefox — eindeutiger, keine Tippfehler
Export-JSON als Backup pflegen Schneller Rebuild bei Neu-Setup
–silent statt –interactive Keine Popups, kein User-Eingriff noetig
Logs pruefen bei Fehlern %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir\

PowerShell-Wrapper fuer Intune

Wer winget produktiv in Intune nutzen will, sollte einen robusten Wrapper bauen:

# winget-deploy.ps1 - Intune PowerShell Script
param(
    [string[]]$AppIds = @("Mozilla.Firefox", "7zip.7zip", "Notepad++.Notepad++"),
    [switch]$UpdateAll
)

# Pfad sicherstellen
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

if ($UpdateAll) {
    winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
    exit 0
}

foreach ($AppId in $AppIds) {
    Write-Host "Installing $AppId..."
    winget install --id $AppId --silent --accept-package-agreements --accept-source-agreements
    if ($LASTEXITCODE -ne 0) {
        Write-Warning "Failed to install $AppId (Exit: $LASTEXITCODE)"
    }
}

Fazit

Winget ist laengst kein Experiment mehr — es ist das Standard-Tool fuer Software-Management auf Windows. Kostenlos, vorinstalliert, riesiges Repository und nativer Intune-Support. Wer noch manuell Setup-Wizards durchklickt, verschwendet Zeit.

Empfehlung: Winget fuer alle Standard-Installationen nutzen, Export-JSON als Rebuild-Template pflegen, und im Intune-Deploy-System-Kontext ausfuehren. Fertig.

Academy

Weiterlernen in der Kaffeeundcode Academy

Wenn du diese Themen systematisch vertiefen willst, schau dir den ersten Academy-Kurs zur PSADT-Softwarepaketierung an. Im Fokus stehen .msi, .exe, Silent Switches, Detection, Logs und ein belastbarer Troubleshooting-Workflow.

Diskussion starten

Fragen, Ergänzungen und eigene Erfahrungen sind hier willkommen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.