Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Apps starten nicht, oder lassen sich nicht installieren? Dann stell deine Frage hier.
Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 26.02.2025, 14:32

mal wieder etwas verfeinert. 3 verschiedene Downloadmethoden: invoke webrequest (sehr langsam), bitsadmin und Start-BitsTransfer.
Für die aktuelle Version von Winget (aktueller Stand 25.02.2025: v1.10.320):
winget install_invoke webrequest.cmd

Code: Alles auswählen

@Echo off
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

:: Variablen für lokale Dateipfade
set "DEPENDENCIES_ZIP=%SCRIPT_DIR%DesktopAppInstaller_Dependencies.zip"
set "DEPENDENCIES_FOLDER=%SCRIPT_DIR%DesktopAppInstaller_Dependencies"
set "WINGET_INSTALLER=%SCRIPT_DIR%MicrosoftDesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

:: Variablen für URLs
set "DEPENDENCIES_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/DesktopAppInstaller_Dependencies.zip"
set "WINGET_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

echo Downloade und installiere Abhängigkeiten...

:: Download mit Invoke-WebRequest (PowerShell)
powershell -command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri '!DEPENDENCIES_URL!' -OutFile '!DEPENDENCIES_ZIP!'"
powershell -command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri '!WINGET_URL!' -OutFile '!WINGET_INSTALLER!'"

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in das Skriptverzeichnis
powershell -command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!SCRIPT_DIR!' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" (
    move "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies"
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.UI.Xaml.2.8_8.2501.31001.0_x64.appx'"
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64.appx'"

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause >nul
endlocal
exit /b
winget install_bitsadmin.cmd

Code: Alles auswählen

@Echo off
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

:: Variablen für lokale Dateipfade
set "DEPENDENCIES_ZIP=%SCRIPT_DIR%DesktopAppInstaller_Dependencies.zip"
set "DEPENDENCIES_FOLDER=%SCRIPT_DIR%DesktopAppInstaller_Dependencies"
set "WINGET_INSTALLER=%SCRIPT_DIR%MicrosoftDesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

:: Variablen für URLs
set "DEPENDENCIES_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/DesktopAppInstaller_Dependencies.zip"
set "WINGET_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

echo Downloade und installiere Abhängigkeiten...

:: Schneller Download mit BITSAdmin
bitsadmin /transfer "Download1" "%DEPENDENCIES_URL%" "%DEPENDENCIES_ZIP%"
bitsadmin /transfer "Download2" "%WINGET_URL%" "%WINGET_INSTALLER%"

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in das Skriptverzeichnis
powershell -command "Expand-Archive -Path '%DEPENDENCIES_ZIP%' -DestinationPath '%SCRIPT_DIR%' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" (
    move "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies"
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.UI.Xaml.2.8_8.2501.31001.0_x64.appx'"
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64.appx'"

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause >nul
endlocal
exit /b
winget install_Start-BitsTransfer.cmd

Code: Alles auswählen

@Echo off
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

:: Variablen für lokale Dateipfade
set "DEPENDENCIES_ZIP=%SCRIPT_DIR%DesktopAppInstaller_Dependencies.zip"
set "DEPENDENCIES_FOLDER=%SCRIPT_DIR%DesktopAppInstaller_Dependencies"
set "WINGET_INSTALLER=%SCRIPT_DIR%MicrosoftDesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

:: Variablen für URLs
set "DEPENDENCIES_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/DesktopAppInstaller_Dependencies.zip"
set "WINGET_URL=https://github.com/microsoft/winget-cli/releases/download/v1.10.320/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

echo Downloade und installiere Abhängigkeiten...

:: Schneller Download mit Start-BitsTransfer (PowerShell)
powershell -command "Start-BitsTransfer -Source '!DEPENDENCIES_URL!' -Destination '!DEPENDENCIES_ZIP!'"
powershell -command "Start-BitsTransfer -Source '!WINGET_URL!' -Destination '!WINGET_INSTALLER!'"

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in das Skriptverzeichnis
powershell -command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!SCRIPT_DIR!' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" (
    move "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%SCRIPT_DIR%DesktopAppInstaller_Dependencies\DesktopAppInstaller_Dependencies"
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.UI.Xaml.2.8_8.2501.31001.0_x64.appx'"
powershell -command "Add-AppXPackage -Path '%DEPENDENCIES_FOLDER%\x64\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64.appx'"

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause >nul
endlocal
exit /b
Die Zeilen in den Windows Editor kloppen und als ANSI speichern (wegen der Umlaute).
Nachteil: das Script muss von Zeit zu Zeit angepasst werden, da dort statische Versionsnummern drin stehen:
https://github.com/microsoft/winget-cli ... /download/ v1.10.320 /DesktopAppInstaller_Dependencies.zip
Die Dependencies ändern sich ebenfalls von Zeit zu Zeit.
Viel Spaß!
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Tante Google

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Tante Google » 26.02.2025, 14:32


Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 26.02.2025, 16:20

für eine dynamische Installation (also immer die letzte aktuelle), unter Verwendung von der GitHub API URL kann das Script so verwendet werden:

Winget Download Start-BitsTransfer Dynamic.cmd

Code: Alles auswählen

@Echo off
rem Dynamische Installation von Winget und Abhängigkeiten
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

:: GitHub API URL
set "GITHUB_API=https://api.github.com/repos/microsoft/winget-cli/releases/latest"

:: Rufe die neuesten Download-Links von GitHub ab und speichere sie in Variablen
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;" ^
    "$winget = $response.assets | Where-Object { $_.name -like '*Microsoft.DesktopAppInstaller_*.msixbundle' } | 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"

:: Lese die URLs aus den Dateien ein
set /p DEPENDENCIES_URL=<"%SCRIPT_DIR%dependencies_url.txt"
set /p WINGET_URL=<"%SCRIPT_DIR%winget_url.txt"

:: Überprüfe, ob URLs korrekt gefunden wurden
if "%DEPENDENCIES_URL%"=="" (
    echo Fehler: Konnte keine Download-URL für Abhängigkeiten finden!
    pause
    exit /b
)
if "%WINGET_URL%"=="" (
    echo Fehler: Konnte keine Download-URL für Winget finden!
    pause
    exit /b
)

:: Lokale Dateipfade setzen
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...

:: Lade die Dateien herunter
powershell -command "Start-BitsTransfer -Source '!DEPENDENCIES_URL!' -Destination '!DEPENDENCIES_ZIP!'"
powershell -command "Start-BitsTransfer -Source '!WINGET_URL!' -Destination '!WINGET_INSTALLER!'"

:: Überprüfe, ob die Dateien existieren
if not exist "%DEPENDENCIES_ZIP%" (
    echo Fehler: Der Download der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)
if not exist "%WINGET_INSTALLER%" (
    echo Fehler: Der Download von Winget ist fehlgeschlagen!
    pause
    exit /b
)

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in den gewünschten Ordner
echo Entpacke Abhängigkeiten in %DEPENDENCIES_FOLDER%...
powershell -command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!DEPENDENCIES_FOLDER!' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" (
    move "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies"
)

:: Sicherstellen, dass der x64-Ordner existiert
if not exist "%DEPENDENCIES_FOLDER%\x64" (
    echo Fehler: Der x64-Ordner mit den AppX-Paketen wurde nicht gefunden!
    pause
    exit /b
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...

powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "$files = Get-ChildItem -Path '%DEPENDENCIES_FOLDER%\x64' -Filter '*.appx' -Recurse;" ^
    "if ($files.Count -eq 0) { Write-Host 'Fehler: Keine AppX-Abhängigkeiten gefunden!'; exit 1 }" ^
    "else { foreach ($file in $files) { Add-AppXPackage -Path $file.FullName } }"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation von Winget ist fehlgeschlagen!
    pause
    exit /b
)

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause
endlocal
exit /b
Zuletzt geändert von Holgi am 26.03.2025, 11:05, insgesamt 1-mal geändert.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 01.03.2025, 20:15

hier noch mal eine andere Variante. Angenommen, ihr habt bei Deskmodder gelesen, dass es mal wieder eine neue Version gibt (jetzt hier als Beispiel 1.10.340) s. Kommentar von Tekkie am 01.03.2025, dann könnt ihr die Verson im folgenden Script 1X eintragen (set ver=v1.10.340) und dann winget mit dieser Version installieren lassen.
winget Preview install_Start-BitsTransfer.cmd

Code: Alles auswählen

@Echo off
chcp 1252 >nul 
echo  fest vorgegebene Version von Winget mit Abhängigkeiten installieren
echo  Version vor dem Ausführen entsprechend anpassen (set ver=v1.10.340)
pause >nul
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

:: Version manuell setzen
set ver=v1.10.340

:: Statische URLs für den Download
set "DEPENDENCIES_URL=https://github.com/microsoft/winget-cli/releases/download/%ver%/DesktopAppInstaller_Dependencies.zip"
set "WINGET_URL=https://github.com/microsoft/winget-cli/releases/download/%ver%/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

:: Lokale Dateipfade setzen
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...

:: Lade die Dateien herunter
powershell -command "Start-BitsTransfer -Source '!DEPENDENCIES_URL!' -Destination '!DEPENDENCIES_ZIP!'"
powershell -command "Start-BitsTransfer -Source '!WINGET_URL!' -Destination '!WINGET_INSTALLER!'"

:: Überprüfe, ob die Dateien existieren
if not exist "%DEPENDENCIES_ZIP%" (
    echo Fehler: Der Download der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)
if not exist "%WINGET_INSTALLER%" (
    echo Fehler: Der Download von Winget ist fehlgeschlagen!
    pause
    exit /b
)

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in den gewünschten Ordner
echo Entpacke Abhängigkeiten in %DEPENDENCIES_FOLDER%...
powershell -command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!DEPENDENCIES_FOLDER!' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" (
    move "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies"
)

:: Sicherstellen, dass der x64-Ordner existiert
if not exist "%DEPENDENCIES_FOLDER%\x64" (
    echo Fehler: Der x64-Ordner mit den AppX-Paketen wurde nicht gefunden!
    pause
    exit /b
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...

powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "$files = Get-ChildItem -Path '%DEPENDENCIES_FOLDER%\x64' -Filter '*.appx' -Recurse;" ^
    "if ($files.Count -eq 0) { Write-Host 'Fehler: Keine AppX-Abhängigkeiten gefunden!'; exit 1 }" ^
    "else { foreach ($file in $files) { Add-AppXPackage -Path $file.FullName } }"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation von Winget ist fehlgeschlagen!
    pause
    exit /b
)

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause
endlocal
exit /b
Alles in den Editor kloppen und als ANSI abspeichern
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 19.03.2025, 18:20

da MS mal wieder etwas geändert hat, hier noch mal ein angepasstes Script.
Nach dem Aufruf kann man die Versionsnummer für Winget eingeben.
z.B. Stand 19.03.2025 die Preview Version 1.11.180 https://www.deskmodder.de/blog/2025/03/ ... rschienen/
Das Script versucht zunächst die Version als Preview herunterzuladen. Sollte es bereits eine Release Version geben, dann nimmt das Script die angegebene Versionsnummer als Release. Die Fehlermeldung im Script ist also "by Design".
winget Preview set ver install_Start-BitsTransfer.cmd

Code: Alles auswählen

@Echo off
rem 19.03.2025
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Bestimme das aktuelle Skriptverzeichnis
set "SCRIPT_DIR=%~dp0"

cls
@echo off
CLS
Echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Echo.
Echo 		             bitte jetzt die Versionsnummer eingeben z.B. 1.11.180
Echo.
Echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Echo Eingabe der Versionsnummer und mit Enter-Taste fortfahren:
set /p ver=
rem set ver=1.11.180

:: Statische URLs für den Download
set "DEPENDENCIES_URL=https://github.com/microsoft/winget-cli/releases/download/v%ver%-preview/DesktopAppInstaller_Dependencies.zip"
set "WINGET_URL=https://github.com/microsoft/winget-cli/releases/download/v%ver%-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
set "DEPENDENCIES2_URL=https://github.com/microsoft/winget-cli/releases/download/v%ver%/DesktopAppInstaller_Dependencies.zip"
set "WINGET2_URL=https://github.com/microsoft/winget-cli/releases/download/v%ver%/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"

:: Lokale Dateipfade setzen
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...

:: Lade die Dateien herunter
powershell -command "Start-BitsTransfer -Source '!DEPENDENCIES_URL!' -Destination '!DEPENDENCIES_ZIP!'"
powershell -command "Start-BitsTransfer -Source '!WINGET_URL!' -Destination '!WINGET_INSTALLER!'"
powershell -command "Start-BitsTransfer -Source '!DEPENDENCIES2_URL!' -Destination '!DEPENDENCIES_ZIP!'"
powershell -command "Start-BitsTransfer -Source '!WINGET2_URL!' -Destination '!WINGET_INSTALLER!'"

:: Überprüfe, ob die Dateien existieren
if not exist "%DEPENDENCIES_ZIP%" (
    echo Fehler: Der Download der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)
if not exist "%WINGET_INSTALLER%" (
    echo Fehler: Der Download von Winget ist fehlgeschlagen!
    pause
    exit /b
)

:: Stelle sicher, dass das Zielverzeichnis existiert
if not exist "%DEPENDENCIES_FOLDER%" mkdir "%DEPENDENCIES_FOLDER%"

:: Entpacken direkt in den gewünschten Ordner
echo Entpacke Abhängigkeiten in %DEPENDENCIES_FOLDER%...
powershell -command "Expand-Archive -Path '!DEPENDENCIES_ZIP!' -DestinationPath '!DEPENDENCIES_FOLDER!' -Force"

:: Falls ein doppelter Unterordner entstanden ist, korrigieren
if exist "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" (
    move "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies\x64" "%DEPENDENCIES_FOLDER%"
    rmdir /s /q "%DEPENDENCIES_FOLDER%\DesktopAppInstaller_Dependencies"
)

:: Sicherstellen, dass der x64-Ordner existiert
if not exist "%DEPENDENCIES_FOLDER%\x64" (
    echo Fehler: Der x64-Ordner mit den AppX-Paketen wurde nicht gefunden!
    pause
    exit /b
)

:: Abhängigkeiten installieren
echo Installiere Abhängigkeiten...

powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "$files = Get-ChildItem -Path '%DEPENDENCIES_FOLDER%\x64' -Filter '*.appx' -Recurse;" ^
    "if ($files.Count -eq 0) { Write-Host 'Fehler: Keine AppX-Abhängigkeiten gefunden!'; exit 1 }" ^
    "else { foreach ($file in $files) { Add-AppXPackage -Path $file.FullName } }"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation der Abhängigkeiten ist fehlgeschlagen!
    pause
    exit /b
)

:: Winget installieren
echo Installiere Winget...
powershell -command "Add-AppXPackage -Path '%WINGET_INSTALLER%'"

:: Prüfe, ob die Installation erfolgreich war
if %ERRORLEVEL% NEQ 0 (
    echo Fehler: Die Installation von Winget ist fehlgeschlagen!
    pause
    exit /b
)

echo Installation abgeschlossen.

:: Winget testen
winget list --accept-source-agreements

pause
endlocal
exit /b
am besten mit dem Editor erstellen und mit Coding ANSI abspeichern (wegen der Umlaute)
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

nohype
Stammgast
Stammgast
Beiträge: 122
Registriert: 18.09.2019, 17:01
Danke erhalten: 5 Mal

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von nohype » 05.10.2026, 01:51

Ich habe ein größeres Vertrauen in einfache Lösungen - die entweder funktionieren oder nicht.
Die Lösung von Far-Guide7959 ist die einzige, die ich probiert habe und sie funktioniert auf Anhieb:

Code: Alles auswählen

To install winget, just run these commands one by one as admin in Powershell:

Install-PackageProvider -Name NuGet -Force | Out-Null

Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null

Repair-WinGetPackageManager -AllUsers
-> @Far-Guide7959
aus:
Windows 10 IOT LTSC does not install winget
https://www.reddit.com/r/WindowsLTSC/co ... sc_orig_r=

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 05.10.2026, 10:59

hi @nohype:
danke für den Hinweis.
Gerade in einer Sandbox getestet: funzt!
Ist sogar die von MS vorgeschlagene Methode:
https://learn.microsoft.com/en-us/windo ... leshooting?
Ich habe mir erlaubt, die Zeilen in ein Script zu bauen und leicht abzuwandeln welches dann alles auf einmal automatisch erledigt.

Code: Alles auswählen

Repair-WinGetPackageManager -Force -Latest
Erzwingt die Installation/Reparatur der aktuellsten stabilen WinGet-Version
Install_Repair_Winget.cmd

Code: Alles auswählen

@echo off
title WinGet installieren / reparieren

echo.
echo === NuGet Package Provider installieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Install-PackageProvider -Name NuGet -Force | Out-Null"

echo.
echo === Microsoft.WinGet.Client installieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null"

echo.
echo === WinGet installieren / reparieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Repair-WinGetPackageManager -Force -Latest"

echo.
echo === WinGet-Version pruefen ===
winget --version

echo.
pause
hier fertig als Anhang:
Install_Repair_Winget.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 4537
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 683 Mal
Danke erhalten: 1038 Mal
Gender:

Re: Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo) [gelöst]

Beitrag von Holgi » 07.10.2026, 01:13

manchmal muss man über zwei Ecken denken.
In einem anderen Forumsbeitrag ging es um die (Un-)Möglichkeit, Ghostscript (z.B. als PDF Druckertreiber) silent zu installieren.
Der aktuelle Installer gs10071w64.exe hat keine Silentparameter (wie z.B. -S oder /S).
Dennoch gibt es eine Möglichkeit, auch solche Programme silent (also ohne weitere Interaktion) zu installieren.
Der Trick:
Winget (auf den meisten aktuellen Windows System bereits vorhanden; wenn nicht wird es per Script installiert) holt sich erst Chocolatey (ein anderer Paketmanager für Windows). Dieser kennt Ghostscript in seinen Quellen und installiert diesen mit Silent Parametern. Funktioniert auch in der Windows Sandbox.
WinGet_Chocolatey_Ghostscript.cmd

Code: Alles auswählen

@echo off
setlocal EnableExtensions
title WinGet + Chocolatey + Ghostscript installieren / reparieren

rem ============================================================
rem  WinGet, Chocolatey und Ghostscript installieren / reparieren
rem  - als Administrator ausfuehren
rem  - vorhandene Installationen werden erkannt
rem  - WinGet wird nur bei Bedarf installiert
rem ============================================================

rem --- Administratorrechte pruefen ---
fltmc >nul 2>&1
if errorlevel 1 (
    echo.
    echo [FEHLER] Dieses Skript muss als Administrator ausgefuehrt werden.
    echo         Rechtsklick auf die CMD-Datei ^> Als Administrator ausfuehren.
    echo.
    pause
    exit /b 1
)

rem ------------------------------------------------------------
rem 1. WinGet pruefen und bei Bedarf reparieren
rem ------------------------------------------------------------
echo.
echo === WinGet pruefen ===
where winget.exe >nul 2>&1
if not errorlevel 1 goto :winget_ok

echo [INFO] WinGet wurde nicht gefunden. Reparatur wird versucht ...
echo.
echo === NuGet Package Provider installieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^
  "try { Install-PackageProvider -Name NuGet -Force -ErrorAction Stop | Out-Null } catch { Write-Error $_; exit 1 }"
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

echo.
echo === Microsoft.WinGet.Client installieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^
  "try { Install-Module -Name Microsoft.WinGet.Client -Force -AllowClobber -Repository PSGallery -ErrorAction Stop | Out-Null } catch { Write-Error $_; exit 1 }"
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

echo.
echo === WinGet installieren / reparieren ===
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^
  "try { Import-Module Microsoft.WinGet.Client -Force -ErrorAction Stop; Repair-WinGetPackageManager -Force -Latest -ErrorAction Stop } catch { Write-Error $_; exit 1 }"
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

where winget.exe >nul 2>&1
if errorlevel 1 (
    echo [FEHLER] WinGet ist nach dem Reparaturversuch weiterhin nicht verfuegbar.
    set "RC=1"
    goto :error
)

:winget_ok
echo [OK] WinGet verfuegbar:
winget --version
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

rem ------------------------------------------------------------
rem 2. Chocolatey installieren, falls nicht vorhanden
rem ------------------------------------------------------------
echo.
echo === Chocolatey pruefen ===
set "CHOCO=%ProgramData%\chocolatey\bin\choco.exe"

if exist "%CHOCO%" goto :choco_ok

echo [INFO] Chocolatey wird ueber WinGet installiert ...
winget install -e --id Chocolatey.Chocolatey ^
  --accept-package-agreements ^
  --accept-source-agreements ^
  --disable-interactivity ^
  --source winget
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

if not exist "%CHOCO%" (
    echo [FEHLER] Chocolatey wurde nicht unter dem erwarteten Pfad gefunden:
    echo          "%CHOCO%"
    set "RC=1"
    goto :error
)

:choco_ok
echo [OK] Chocolatey verfuegbar:
"%CHOCO%" --version
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

rem ------------------------------------------------------------
rem 3. Ghostscript installieren bzw. aktualisieren
rem ------------------------------------------------------------
echo.
echo === Ghostscript installieren / aktualisieren ===
"%CHOCO%" upgrade ghostscript -y --no-progress
if errorlevel 1 (set "RC=%errorlevel%" & goto :error)

rem ------------------------------------------------------------
rem Abschluss
rem ------------------------------------------------------------
echo.
echo ============================================================
echo [OK] WinGet, Chocolatey und Ghostscript sind einsatzbereit.
echo ============================================================
echo.
pause
exit /b 0

:error
if not defined RC set "RC=%errorlevel%"
echo.
echo ============================================================
echo [FEHLER] Der Vorgang wurde mit einem Fehler abgebrochen.
echo          Fehlercode: %RC%
echo ============================================================
echo.
pause
exit /b %RC%
hier noch als gepackte Datei zum Download:
WinGet_Chocolatey_Ghostscript.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Antworten