es kommt schon man darauf an, welche Windows Version du einsetzt.
In den neuesten Windows Versionen ist es eigentlich schon vorinstalliert. Nach einem ersten Update sollte es von sich aus funktionieren.
Bei älteren Windows Versionen kannst du es ganz leicht nachinstallieren:
hier mein Script dazu:
Code: Alles auswählen
@Echo off
chcp 1252 > nul
setlocal EnableExtensions EnableDelayedExpansion
:: =========================================================
:: Winget prüfen + ggf. installieren (ohne Script-Abbruch)
:: =========================================================
set "WINGET_OK=0"
echo Prüfe Winget...
call :CheckWinget
if "!WINGET_OK!"=="0" (
echo Winget ist nicht verfügbar. Versuche Installation...
call :InstallWinget
if "!WINGET_OK!"=="1" (
echo.
) else (
echo Winget-Installation fehlgeschlagen. Winget-Schritte werden übersprungen.
)
) else (
echo Winget ist verfügbar
echo Version:
winget -v 2>nul
)
goto :afterWingetBootstrap
:CheckWinget
set "WINGET_OK=0"
:: Existiert winget?
where winget >nul 2>nul || goto :eof
:: Funktioniert winget wirklich?
winget list --accept-source-agreements >nul 2>nul || goto :eof
set "WINGET_OK=1"
goto :eof
:InstallWinget
rem Dynamische Installation von Winget und Abhängigkeiten
@echo off
chcp 1252 >nul
setlocal enabledelayedexpansion
mkdir "%LocalAppData%\Temp" >nul 2>&1
:: Temporäre Dateien löschen falls vorhanden
set "SCRIPT_DIR=%~dp0"
del "%SCRIPT_DIR%*.url.txt" 2>nul
set "GITHUB_API=https://api.github.com/repos/microsoft/winget-cli/releases/latest"
echo Rufe neueste Winget-Version von GitHub ab...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$response = Invoke-RestMethod '%GITHUB_API%';" ^
"$deps = $response.assets | Where-Object { $_.name -like '*DesktopAppInstaller_Dependencies.zip' } | Select-Object -ExpandProperty browser_download_url;" ^
"Write-Output $deps" > "%SCRIPT_DIR%dependencies_url.txt"
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$response = Invoke-RestMethod '%GITHUB_API%';" ^
"$winget = $response.assets | Where-Object { $_.name -like '*Microsoft.DesktopAppInstaller_*.msixbundle' } | Select-Object -ExpandProperty browser_download_url;" ^
"Write-Output $winget" > "%SCRIPT_DIR%winget_url.txt"
set /p DEPENDENCIES_URL=<"%SCRIPT_DIR%dependencies_url.txt"
set /p WINGET_URL=<"%SCRIPT_DIR%winget_url.txt"
if "%DEPENDENCIES_URL%"=="" (
echo Fehler: Konnte keine Download-URL für Abhängigkeiten finden!
timeout /t 5 >nul
goto :InstallFailed
)
if "%WINGET_URL%"=="" (
echo Fehler: Konnte keine Download-URL für Winget finden!
timeout /t 5 >nul
goto :InstallFailed
)
set "DEPENDENCIES_ZIP=%SCRIPT_DIR%DesktopAppInstaller_Dependencies.zip"
set "DEPENDENCIES_FOLDER=%SCRIPT_DIR%DesktopAppInstaller_Dependencies"
set "WINGET_INSTALLER=%SCRIPT_DIR%MicrosoftDesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
echo Lade Abhängigkeiten herunter...
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-BitsTransfer -Source '!DEPENDENCIES_URL!' -Destination '!DEPENDENCIES_ZIP!'" >nul 2>nul
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-BitsTransfer -Source '!WINGET_URL!' -Destination '!WINGET_INSTALLER!'" >nul 2>nul
if not exist "%DEPENDENCIES_ZIP%" (
echo Fehler: Download der Abhängigkeiten fehlgeschlagen!
timeout /t 5 >nul
goto :InstallFailed
)
if not exist "%WINGET_INSTALLER%" (
echo Fehler: Download von Winget fehlgeschlagen!
timeout /t 5 >nul
goto :InstallFailed
)
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%" >nul 2>&1
echo Entpacke Abhängigkeiten...
powershell -NoProfile -ExecutionPolicy Bypass -Command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!DEPENDENCIES_FOLDER!' -Force" >nul 2>nul
if exist "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" (
move "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%" >nul 2>nul
rmdir /s /q "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies" >nul 2>nul
)
if not exist "%DEPENDENCIES_FOLDER%\x64" (
echo Fehler: x64-Ordner mit AppX-Paketen nicht gefunden!
timeout /t 5 >nul
goto :InstallFailed
)
echo Installiere Abhängigkeiten...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$files = Get-ChildItem -Path '%DEPENDENCIES_FOLDER%\x64' -Filter '*.appx' -Recurse;" ^
"if ($files.Count -eq 0) { exit 1 } else { foreach ($file in $files) { Add-AppXPackage -Path $file.FullName } }" >nul 2>nul
if errorlevel 1 (
echo Fehler beim Installieren der Abhängigkeiten!
timeout /t 5 >nul
goto :InstallFailed
)
cls
echo Installiere Winget...
powershell -NoProfile -ExecutionPolicy Bypass -Command "Add-AppXPackage -Path '%WINGET_INSTALLER%'" >nul 2>nul
if errorlevel 1 (
echo Fehler beim Installieren von Winget!
timeout /t 5 >nul
goto :InstallFailed
)
:: Aufräumen
del "%SCRIPT_DIR%dependencies_url.txt" "%SCRIPT_DIR%MicrosoftDesktopAppInstaller_8wekyb3d8bbwe.msixbundle" "%SCRIPT_DIR%winget_url.txt" "%SCRIPT_DIR%*.zip" 2>nul
rmdir /s /q "%SCRIPT_DIR%DesktopAppInstaller_Dependencies" 2>nul
:: Prüfe nach Installation.
:: Die Registrierung des App-Ausführungsalias kann einige Sekunden dauern.
set "WINGET_READY=0"
for /L %%I in (1,1,10) do (
where winget >nul 2>nul
if not errorlevel 1 (
winget --version >nul 2>nul
if not errorlevel 1 (
set "WINGET_READY=1"
goto :WingetReady
)
)
timeout /t 1 /nobreak >nul
)
:WingetReady
if "!WINGET_READY!"=="0" (
echo Winget wurde installiert, ist im aktuellen Prozess aber noch nicht aufrufbar.
timeout /t 5 >nul
goto :InstallFailed
)
:: Erfolg!
endlocal & set "WINGET_OK=1"
echo Winget erfolgreich installiert und funktionsfähig.
goto :eof
:InstallFailed
endlocal & set "WINGET_OK=0"
echo Winget-Installation fehlgeschlagen.
timeout /t 5 >nul
goto :eof
:afterWingetBootstrap
:eof
pause
und direkt als Download:
Winget prüfen und ggf. installieren.bat
Winget prüfen und ggf. installieren.zip
herunterladen, entpacken und dann die .bat mit Doppelklick starten.
Wenn fertig, dann eine Konsole öffnen und dort mal "winget" eingeben.
Es sollte dann so aussehen:
Screenshot 2026-07-26 115507.jpg
hier:
viewtopic.php?t=26214&start=45
steht noch etwas mehr dazu.
Die ersten Kommandos in der Konsole sind dann z.B:
winget list
winget upgrade --all
winget search ...
zum installieren dann:
winget install ...
löschen:
winget uninstall ...
Viel Spaß!!