Oracle VirtualBox & Extension Pack latest install Script
Verfasst: 11.10.2025, 20:35
				
				in Anlehnung an diesen Beitrag hier:
viewtopic.php?p=448573
noch ein weiteres Script.
Dieses installiert Oracle VirtualBox und das dazugehörige Extension Pack automatisch.
Sollte das Microsoft Visual C++ 2015-2022 Redistributable (x64) Package (Voraussetzung für VB) noch nicht installiert sein, wird dieses per Winget gleich mitinstalliert.
Tricky ist die Installation des Extension Packs, welches eigentlich immer das Abnicken der Lizenzvereinbarung erfordert.
Hier im Script wird das (nach offizieller Oracle Methode) mit der Ermittlung des SHA-256 Hash Wertes aus dem Extension Pack per VBManage erledigt.
Oracle VirtualBox_latest_install.cmd
Viel Spaß!
Verbesserungsvorschläge und Anregungen immer gerne willkommen.
			viewtopic.php?p=448573
noch ein weiteres Script.
Dieses installiert Oracle VirtualBox und das dazugehörige Extension Pack automatisch.
Sollte das Microsoft Visual C++ 2015-2022 Redistributable (x64) Package (Voraussetzung für VB) noch nicht installiert sein, wird dieses per Winget gleich mitinstalliert.
Tricky ist die Installation des Extension Packs, welches eigentlich immer das Abnicken der Lizenzvereinbarung erfordert.
Hier im Script wird das (nach offizieller Oracle Methode) mit der Ermittlung des SHA-256 Hash Wertes aus dem Extension Pack per VBManage erledigt.
Oracle VirtualBox_latest_install.cmd
Code: Alles auswählen
@echo off
setlocal
set "VBOX_BASE_URL=https://download.virtualbox.org/virtualbox"
set "VBOX_LATEST_URL=%VBOX_BASE_URL%/LATEST.TXT"
echo.
echo === 1. Ermittle die aktuelle VirtualBox-Versionsnummer und den vollstaendigen Dateinamen ===
echo.
REM Lade die LATEST.TXT herunter, um die Hauptversionsnummer (z.B. 7.2.2) zu erhalten.
powershell -Command "(Invoke-WebRequest -Uri '%VBOX_LATEST_URL%').Content" > current_version.txt
set /p ver=<current_version.txt
del current_version.txt
if not defined ver (
    echo FEHLER: Konnte die aktuelle Hauptversionsnummer nicht ermitteln.
    pause
    exit /b 1
)
echo Hauptversion: %ver%
REM Finde den vollstaendigen Dateinamen (inkl. Build-Nummer) fuer den Windows Installer.
echo Suche vollstaendigen Dateinamen fuer %ver% im Download-Verzeichnis...
FOR /F "tokens=*" %%g IN ('powershell -Command "$url = '%VBOX_BASE_URL%/%ver%/'; (Invoke-WebRequest -Uri $url).Links | Where-Object {$_.href -like 'VirtualBox-%ver%-*-Win.exe'} | Select-Object -ExpandProperty href -First 1"') DO (SET "VBOX_INSTALLER_FULLNAME=%%g")
if not defined VBOX_INSTALLER_FULLNAME (
    echo FEHLER: Konnte den vollstaendigen Dateinamen fuer den Windows-Installer nicht finden.
    pause
    exit /b 1
)
echo Vollstaendiger Dateiname: %VBOX_INSTALLER_FULLNAME%
set "VBOX_DOWNLOAD_URL=%VBOX_BASE_URL%/%ver%/%VBOX_INSTALLER_FULLNAME%"
set "EXT_PACK_DOWNLOAD_URL=%VBOX_BASE_URL%/%ver%/Oracle_VirtualBox_Extension_Pack-%ver%.vbox-extpack"
set "EXT_PACK_FULLNAME=Oracle_VM_VirtualBox_Extension_Pack-%ver%.vbox-extpack"
CLS
echo.
echo === 2. Lade VirtualBox und das Extension Pack herunter ===
echo.
REM Pruefe und lade VirtualBox Installer
if not exist "%VBOX_INSTALLER_FULLNAME%" (
    echo Downloade VirtualBox von %VBOX_DOWNLOAD_URL%...
powershell -noprofile -command "Start-BitsTransfer -Source '%VBOX_DOWNLOAD_URL%' -Destination '%VBOX_INSTALLER_FULLNAME%'"
    if %errorlevel% neq 0 (
        echo FEHLER: Download von VirtualBox fehlgeschlagen.
        pause
        exit /b 1
    )
) else (
    echo VirtualBox Installer ist bereits vorhanden.
)
REM Pruefe und lade Extension Pack (Dateiname ist hier konstant)
if not exist "%EXT_PACK_FULLNAME%" (
    echo Downloade Extension Pack von %EXT_PACK_DOWNLOAD_URL%...
powershell -noprofile -command "Start-BitsTransfer -Source '%EXT_PACK_DOWNLOAD_URL%' -Destination '%EXT_PACK_FULLNAME%'"
    if %errorlevel% neq 0 (
        echo FEHLER: Download des Extension Packs fehlgeschlagen.
        pause
        exit /b 1
    )
) else (
    echo '%EXT_PACK_FULLNAME%' ist bereits vorhanden.
)
CLS
echo.
echo === 3. Installation: Microsoft Visual C++ 2015-2022 Redistributable (x64) ===
echo.
winget install --id Microsoft.VCRedist.2015+.x64 --accept-package-agreements --accept-source-agreements --silent
    
CLS
echo.
echo === 4. Starte die unbeaufsichtigte Installation von VirtualBox ===
echo.
REM Pruefen, ob die Installationsdatei existiert
if not exist "%VBOX_INSTALLER_FULLNAME%" (
    echo Fehler: Die VirtualBox-Installationsdatei "%VBOX_INSTALLER_FULLNAME%" wurde nicht gefunden.
    pause
    exit /b 1
)
REM Silent-Installation von VirtualBox
"%VBOX_INSTALLER_FULLNAME%" --silent --ignore-reboot
echo.
echo === VirtualBox wurde installiert. 
echo === 5. Starte die unbeaufsichtigte Installation des VirtualBox Extension Packs ===
echo.
Echo Pruefen, ob %EXT_PACK_FULLNAME% existiert
if not exist %EXT_PACK_FULLNAME% (
    echo Fehler: Die Extension Pack-Datei %EXT_PACK_FULLNAME% wurde nicht gefunden.
    pause
    exit /b 1
)
REM Ermittle den SHA-256-Hash der Extension Pack-Datei automatisch.
echo Ermittle den SHA-256 Hash fuer '%EXT_PACK_FULLNAME%'...
FOR /F "tokens=*" %%g IN ('powershell -Command "(Get-FileHash -Path '%EXT_PACK_FULLNAME%' -Algorithm SHA256).Hash"') DO (SET "EXT_PACK_HASH=%%g")
echo Hash: %EXT_PACK_HASH%
REM Silent-Installation des Extension Packs mit SHA-256-Hash
ren %EXT_PACK_FULLNAME% Oracle_VirtualBox_Extension_Pack
echo y | "%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" extpack install Oracle_VirtualBox_Extension_Pack --replace --accept-license=%EXT_PACK_HASH%
if %errorlevel% equ 0 (
CLS
    echo.
    echo === Installation erfolgreich abgeschlossen! ===
) else (
    echo.
    echo === Ein Fehler ist bei der Installation des Extension Packs aufgetreten. ===
)
echo.
ren Oracle_VirtualBox_Extension_Pack %EXT_PACK_FULLNAME% 
pause
endlocalVerbesserungsvorschläge und Anregungen immer gerne willkommen.