Kaffeeundcode

Winget: Der Paketmanager, den jedes Windows-Admin braucht

17. Mai 2026 Mattia Cirillo 0 Kommentare

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

FeaturewingetChocolateyNinite
VorinstalliertJa (ab Win10 1709)NeinNein
RepositoryMicrosoft StoreCommunity + eigeneNur ca. 100 Apps
Business-RepositoryJa (MS Store for Business)Ja (Pro-Lizenz)Nein
Intune-IntegrationNative PowerShellCommunity-SkripteKeine
KostenKostenlosFreemiumFreemium
App-Anzahlueber 2.500ueber 4.000ca. 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

EmpfehlungWarum?
Immer –accept-package-agreements nutzenVerhindert interaktive Prompts im Silent-Modus
Skripte im System-Kontext laufen lassenKeine UAC-Prompts, volle Admin-Rechte
winget upgrade –id Microsoft.AppInstaller zuerstStellt sicher, dass winget selbst aktuell ist
App-ID nutzen, nicht den AnzeigenamenMozilla.Firefox statt Firefox — eindeutiger, keine Tippfehler
Export-JSON als Backup pflegenSchneller Rebuild bei Neu-Setup
–silent statt –interactiveKeine 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.