Wer öfter mal mit Windows Installationen herumspielt, um Dinge zu testen (z.B. Änderungen an einer autounattend.xml), wird die Vorzüge einer Virtuellen Maschine genießen.
Es ist zwar einfach genug, die virtuellen Maschine mit dem Hyper-V Manager zu erstellen; oder eben mit dem Oracle VirtualBox Manager:
man kan das Erstellen (und ggf. das Löschen) der VM aber auch automatisieren.
Wie das mit Hyper-V geht, habe ich hier
viewtopic.php?t=25114&hilit=l%C3%B6sungsansatz#p361369
vorgestellt.
Nun wollte ich wissen, ob das auch mit VirtualBox geht. Auf meine Frage habe ich hier
https://www.deskmodder.de/blog/2022/09/ ... /#comments bislang keine und im Netz nur unbefriedigende Antworten erhalten.
Im Internet gibt es viele Lösungsansätze für Linux, aber ich konnte keine Komplettlösung für VirtualBox mit Windows 11 als Script finden.
Da VirtualBox seit Version 6.1.28 nunmehr auch Windows 11 unterstützt, lag es nahe, die Erstellung der VM mit Windows 11 unter Windows zu automatisieren.
Der Minimalansatz sieht so aus:
Den Inhalt kopieren, in Editor speichern und z.B. als VBOX_Auto.cmd speichern
Code: Alles auswählen
SET VBOXMANAGE=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
SET OSTYPE=Windows11_64
SET ISOPATH=%homepath%\Downloads\
SET ISONAME=25201.1000.Copper-X64-DE-CLIENTPRO
"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype %OSTYPE% --default --register
"%VBOXMANAGE%" createmedium disk --filename "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --size 65536
"%VBOXMANAGE%" storagectl "%VMNAME%" --name "IDE Controller" --add ide --controller PIIX4
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%%ISONAME%.iso"
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi"
"%VBOXMANAGE%" startvm "%VMNAME%"
exit
Im obigen Beispiel liegt die Windows 11 ISO im Benutzer - Downloadverzeichnis und es handelt sich um die 25201.1000.Copper-X64-DE-CLIENTPRO.iso hier aus dem Blog (danke an Birkuli!).
VirtualBox ist als 64-bit Version im Standardverzeichnis gespeichert.
Die SET-Variablen können/müssen natürlich angepasst werden.
Wird das cmd-Script gestartet, richtet es die VM ein, schließt virtuelle Festplatte und DVD-Laufwerk an (für die Installations-DVD) und startet dann die VM. Sodann läuft die Windows-Installation an.
Achtung!: man hat nur einige Sekunden Zeit, "Any-Key" zu drücken, damit die Installation von der virtuellen DVD startet.
Wie man ""Press any key to continue" loswird, ist hier beschrieben:
viewtopic.php?p=361517&hilit=vm+press+a ... ue#p361517
Es geht aber auch mehr:
automatische Installation mit UserName, Passwort, Installationskey, Änderung von Speicher und CPU-Anzahl etc. etc.
Dann sieht das Script so aus:
Code: Alles auswählen
SET VBOXMANAGE=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
SET OSTYPE=Windows11_64
SET ISOPATH=%homepath%\Downloads\
SET ISONAME=25201.1000.Copper-X64-DE-CLIENTPRO
SET USER=Admin
SET FULLNAME=Deskmodder
SET PASSWORD=Test1234
SET INDEX=1
SET LOCALE=de_DE
SET FORMAT=VDI
SET KEY=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype %OSTYPE% --default --register
"%VBOXMANAGE%" createmedium disk --filename "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --size 65536 --format %FORMAT%
"%VBOXMANAGE%" storagectl "%VMNAME%" --name "IDE Controller" --add ide --controller PIIX4
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%%ISONAME%.iso"
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi"
"%VBOXMANAGE%" modifyvm "%VMNAME%" --boot1 dvd --boot2 disk --boot3 floppy --boot4 none
rem Speichereinstellungen
"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory 4096 --vram 128
rem Anzahl CPUs
"%VBOXMANAGE%" modifyvm "%VMNAME%" --cpus 2
"%VBOXMANAGE%" unattended install "%VMNAME%" --iso "%ISOPATH%%ISONAME%.iso" --user="%USER%" --full-user-name="%FULLNAME%" --image-index=%INDEX% --locale=%LOCALE% --password "%PASSWORD%" --key "%KEY%" --install-additions
"%VBOXMANAGE%" startvm "%VMNAME%"
exit
Viel Spaß!!
Anregungen, Verbesserungsvorschläge, Kritiken etc. sind herzlich willkommen.
BTW: das Ganze funktioniert natürlich auch mit Windows 10. Dann SET OSTYPE=Windows10_64 (für 64-bit) bzw. SET OSTYPE=Windows10 (für 32-bit) angeben!
Weiß jemand, ob so etwas in der Art auch mit VMWare Workstation/Player möglich ist?
Nachtrag:
wer die VM mal eben schnell löschen möchte, um den nächsten Test auszuführen, kann mit dem folgenden Script die Löschung automatisiert durchführen:
Code: Alles auswählen
@Echo off
SET VBoxManage=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
Echo Achtung! Im folgenden Verlauf wird die Virtuelle Maschine %VMNAME% unwiderruflich geloescht!!
pause
"%VBoxManage%" controlvm "%VMNAME%" poweroff >nul 2>nul
"%VBoxManage%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium none >nul 2>nul
"%VBoxManage%" closemedium disk "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --delete >nul 2>nul
timeout /t 10
"%VBoxManage%" unregistervm --delete "%VMNAME%" >nul 2>nul
timeout /t 10
rmdir "%homepath%\VirtualBox VMs\%VMNAME%" /s /q >nul 2>nul
exit
nur einmal den Namen bei "SET VMNAME=" ändern
Wer öfter mal mit Windows Installationen herumspielt, um Dinge zu testen (z.B. Änderungen an einer autounattend.xml), wird die Vorzüge einer Virtuellen Maschine genießen.
Es ist zwar einfach genug, die virtuellen Maschine mit dem Hyper-V Manager zu erstellen; oder eben mit dem Oracle VirtualBox Manager:
man kan das Erstellen (und ggf. das Löschen) der VM aber auch automatisieren.
Wie das mit Hyper-V geht, habe ich hier
[url]https://www.deskmodder.de/phpBB3/viewtopic.php?t=25114&hilit=l%C3%B6sungsansatz#p361369[/url]
vorgestellt.
Nun wollte ich wissen, ob das auch mit VirtualBox geht. Auf meine Frage habe ich hier
[url]https://www.deskmodder.de/blog/2022/09/13/virtualbox-7-beta-2-mit-neuen-funktionen-und-vielen-verbesserungen-erschienen/#comments[/url] bislang keine und im Netz nur unbefriedigende Antworten erhalten.
Im Internet gibt es viele Lösungsansätze für Linux, aber ich konnte keine Komplettlösung für VirtualBox mit Windows 11 als Script finden.
Da VirtualBox seit Version 6.1.28 nunmehr auch Windows 11 unterstützt, lag es nahe, die Erstellung der VM mit Windows 11 unter Windows zu automatisieren.
Der Minimalansatz sieht so aus:
Den Inhalt kopieren, in Editor speichern und z.B. als VBOX_Auto.cmd speichern
[code]SET VBOXMANAGE=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
SET OSTYPE=Windows11_64
SET ISOPATH=%homepath%\Downloads\
SET ISONAME=25201.1000.Copper-X64-DE-CLIENTPRO
"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype %OSTYPE% --default --register
"%VBOXMANAGE%" createmedium disk --filename "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --size 65536
"%VBOXMANAGE%" storagectl "%VMNAME%" --name "IDE Controller" --add ide --controller PIIX4
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%%ISONAME%.iso"
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi"
"%VBOXMANAGE%" startvm "%VMNAME%"
exit
[/code]
Im obigen Beispiel liegt die Windows 11 ISO im Benutzer - Downloadverzeichnis und es handelt sich um die 25201.1000.Copper-X64-DE-CLIENTPRO.iso hier aus dem Blog (danke an Birkuli!).
VirtualBox ist als 64-bit Version im Standardverzeichnis gespeichert.
Die SET-Variablen können/müssen natürlich angepasst werden.
Wird das cmd-Script gestartet, richtet es die VM ein, schließt virtuelle Festplatte und DVD-Laufwerk an (für die Installations-DVD) und startet dann die VM. Sodann läuft die Windows-Installation an.
Achtung!: man hat nur einige Sekunden Zeit, "Any-Key" zu drücken, damit die Installation von der virtuellen DVD startet.
Wie man ""Press any key to continue" loswird, ist hier beschrieben:
[url]https://www.deskmodder.de/phpBB3/viewtopic.php?p=361517&hilit=vm+press+any+key+to+continue#p361517[/url]
Es geht aber auch mehr:
automatische Installation mit UserName, Passwort, Installationskey, Änderung von Speicher und CPU-Anzahl etc. etc.
Dann sieht das Script so aus:
[code]SET VBOXMANAGE=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
SET OSTYPE=Windows11_64
SET ISOPATH=%homepath%\Downloads\
SET ISONAME=25201.1000.Copper-X64-DE-CLIENTPRO
SET USER=Admin
SET FULLNAME=Deskmodder
SET PASSWORD=Test1234
SET INDEX=1
SET LOCALE=de_DE
SET FORMAT=VDI
SET KEY=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype %OSTYPE% --default --register
"%VBOXMANAGE%" createmedium disk --filename "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --size 65536 --format %FORMAT%
"%VBOXMANAGE%" storagectl "%VMNAME%" --name "IDE Controller" --add ide --controller PIIX4
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%%ISONAME%.iso"
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi"
"%VBOXMANAGE%" modifyvm "%VMNAME%" --boot1 dvd --boot2 disk --boot3 floppy --boot4 none
rem Speichereinstellungen
"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory 4096 --vram 128
rem Anzahl CPUs
"%VBOXMANAGE%" modifyvm "%VMNAME%" --cpus 2
"%VBOXMANAGE%" unattended install "%VMNAME%" --iso "%ISOPATH%%ISONAME%.iso" --user="%USER%" --full-user-name="%FULLNAME%" --image-index=%INDEX% --locale=%LOCALE% --password "%PASSWORD%" --key "%KEY%" --install-additions
"%VBOXMANAGE%" startvm "%VMNAME%"
exit[/code]
Viel Spaß!!
Anregungen, Verbesserungsvorschläge, Kritiken etc. sind herzlich willkommen.
BTW: das Ganze funktioniert natürlich auch mit Windows 10. Dann SET OSTYPE=Windows10_64 (für 64-bit) bzw. SET OSTYPE=Windows10 (für 32-bit) angeben!
Weiß jemand, ob so etwas in der Art auch mit VMWare Workstation/Player möglich ist?
Nachtrag:
wer die VM mal eben schnell löschen möchte, um den nächsten Test auszuführen, kann mit dem folgenden Script die Löschung automatisiert durchführen:
[code]@Echo off
SET VBoxManage=C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
SET VMNAME=WIN11
Echo Achtung! Im folgenden Verlauf wird die Virtuelle Maschine %VMNAME% unwiderruflich geloescht!!
pause
"%VBoxManage%" controlvm "%VMNAME%" poweroff >nul 2>nul
"%VBoxManage%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium none >nul 2>nul
"%VBoxManage%" closemedium disk "%userprofile%\VirtualBox VMs\%VMNAME%\%VMNAME%.vdi" --delete >nul 2>nul
timeout /t 10
"%VBoxManage%" unregistervm --delete "%VMNAME%" >nul 2>nul
timeout /t 10
rmdir "%homepath%\VirtualBox VMs\%VMNAME%" /s /q >nul 2>nul
exit[/code]
nur einmal den Namen bei "SET VMNAME=" ändern