Win7 in VirtualBox - Hilfe bei Script

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smileys
:) ;) :smile: :lol: :hihi: :D :rofl: :muahah: :( :pff: :kopfstreichel: :ohno: :betruebt: :heulen: :kopfkratz: :duckundweg: :o :? :oops: :psst: :sauer: :-P :daumenrunter: :daumen: :dankeschoen: :thx: :dafür: :gähn:
Mehr Smileys anzeigen

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: Win7 in VirtualBox - Hilfe bei Script

Re: Win7 in VirtualBox - Hilfe bei Script

von BusterFriendly » 31.01.2023, 12:52

Die "VirtualBox" zickt sehr oft rum, ich bin dann freiwillig auf HyperV umgestiegen und dort ist Vieles einfacher.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 21.11.2022, 19:29

Ich fasse mal neue Erkenntnisse zusammen:
VB macht (sofern im Script aktiviert) aus der "autounattend.xml" und der "win-postinstall.xml" eine kleine "xxxx-floppy.img", die automatisch ins Diskettenlaufwerk der VM eingelegt wird. Inhalt ist dann eine "autounattend.xml" und die besagte "VBOXPOST.cmd".
Ob die "VBOXPOST.cmd" nun wirklich verarbeitet wird, kann ich noch nicht genau sagen - jedenfalls wird bei mir nicht automatisch die "GuestAdditions.iso" eingelegt und ausgeführt. Führe ich "VBOXPOST.cmd" manuell aus, wird zumindest die GA.iso eingelegt, aber nicht ausgeführt. Es fehlt vermutlich nocht etwas im Script.
Sorry @Holgi, daß ich das Problem erst falsch verstanden habe - nun weiß ich aber, was Du meinst.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 21.11.2022, 13:25

Nachtrag:
Ich habe das mal durchlaufen lassen. Man muß wissen, daß man (sobald der "unattended-Bereich genutzt wird) einige Dinge angeben muß. Andere Parameter werden (falls kein anderer Eintrag vorhanden) mit Default-Settings gesetzt. So wird sowohl der Pfad zur GuestAdditions.iso als auch der Pfad zur "win-postinstall.cmd" automatisch übernommen.

Ich setzte im Script immer an vorletzte Stelle (bevor die VM gestartet wird) ein PAUSE, damit ich die Verarbeitung des Scripts genau sehen kann. Ist alles okay, kann ich dort auch die Pfade sehen, die gewählt wurden.

Bisher wird bei mir allerdings die "GA.iso" nicht automatisch eingelegt und ausgeführt, ich teste später weiter.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 21.11.2022, 10:25

Dann kopiere mal die "vboxpost.cmd" mit in deinen Arbeitsordner (wo dein Script liegt) und trage den Pfad im Script ein:

SET POSTINST=Pfad\vboxpost.cmd

Re: Win7 in VirtualBox - Hilfe bei Script

von Holgi » 21.11.2022, 09:51

Das Extension Pack (hier:Oracle_VM_VirtualBox_Extension_Pack-7.0.4.vbox-extpack) ist schon im Programm VirtualBox integriert.
Darum geht es nicht. Es geht um die Gasterweiterungen, die man nachträglich in das virtualisierte Betriebssystem integriert (für z.B. besserer Grafikauflösung).
Wenn ich den Mechanismus richtig verstehe, dann wird die VBoxGuestAdditions-ISO aus dem Programmverzeichnis von VB, in die virtualisierte Umgebung als CD/DVD zur Verfügung gestellt. So weit so gut. Das macht es bei mir auch. Deshalb schrieb ich:
"Die VB-Additions ISO ist nach der Installation auch eingelegt."
Was nicht funktioniert ist der Automatismus, die Erweiterungen (Additions) auch zu installieren.
Dafür nimmt VB wohl die win_postinstall.cmd aus dem Verzeichnis C:\Program Files\Oracle\VirtualBox\UnattendedTemplates bennent sie um in vboxpost.cmd und spult sie ab (CDROM suchen, Zertifikate installieren (um nix bestätigen zu müssen) und dann VBoxWindowsAdditions.exe /S).
Und das Letztere, also vboxpost.cmd funktioniert eben nicht.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 21.11.2022, 09:15

Aus der Anleitung (gehört in der Teil "unattended"):

Code: Alles auswählen

--install-additions, --no-install-additions

    Whether to install the VirtualBox guest additions. (default: --no-install-addations)
--additions-iso=add-iso

    Path to the VirtualBox guest additions ISO. (default: installed/downloaded GAs)
Es muß also wohl der Pfad zu den GA mit angegeben werden.
C:\Program Files\Oracle\VirtualBox\ExtensionPacks\Oracle_VM_VirtualBox_Extension_Pack ?

EDIT: siehe weiter im Thread

Re: Win7 in VirtualBox - Hilfe bei Script

von Holgi » 20.11.2022, 22:35

die Version VB 7.04 funktioniert jetzt bei mir wieder.
aufbauend auf @g-force´s script sieht das bei mir so aus:

Code: Alles auswählen

@Echo off
SET VMNAME=WIN11
SET OSTYPE=Windows11
SET IMAGEARCH=X64
SET ISOPATH=%homepath%\Downloads\
SET ISONAME=22621.898.Nickel-X64-DE-CLIENTPRO
SET USER=XXXX
SET FULLNAME=XXXX
SET PASSWORD=XXXX
SET INDEX=1
SET LOCALE=de_DE
SET FORMAT=VHD
SET KEY=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
SET RAM32=2048
SET RAM64=4096
SET VRAM=128
SET SIZE=50000
SET VMDIR=C:
SET VMPATH=VIRTUALBOX\%VMNAME%
SET UATT=autounattend
SET POSTINST=


REM Set host architecture
if exist "%WinDir%\SysWOW64" (
	set ARCH=x64
) else (
	set ARCH=x86
)

if exist "%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" set "VBOXMANAGE=%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe"
if exist "%ProgramFiles(x86)%\Oracle\VirtualBox\VBoxManage.exe" set "VBOXMANAGE=%ProgramFiles(x86)%\Oracle\VirtualBox\VBoxManager.exe"

if not exist "%VBOXMANAGE%" (

	echo.
	echo  VirtualBox is not installed, please download and install it
	start https://www.virtualbox.org/wiki/Downloads
	echo.
	pause
	goto :EOF

)

rem alte VM löschen
"%VBOXMANAGE%" controlvm "%VMNAME%" poweroff >nul 2>nul
"%VBOXMANAGE%" unregistervm --delete "%VMNAME%" >nul 2>nul
rmdir "%VMDIR%\%VMPATH%"\ /s /q >nul 2>nul

del /q /s "%VMDIR%\$Recycle.bin\*"
for /d %%x in ("%VMDIR%\$Recycle.bin\*") do @rd /s /q "%%x"

rem neue VM erstellen

if /i "%ImageArch%" == "X86" (

            "%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype "%OSTYPE%" --default --register >nul 2>nul
) else (

	"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype "%OSTYPE%_64" --default --register >nul 2>nul
)

REM Use different minimal amount for x64 systems. Best to keep it really on minimum requirements for capturing images
if /i "%ImageArch%" == "x86" (

	"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory "%RAM32%" --vram "%VRAM%" >nul 2>nul
	
) else (

	"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory "%RAM64%" --vram "%VRAM%" >nul 2>nul
	
)

"%VBOXMANAGE%" createmedium disk --filename "%VMDIR%\%VMPATH%\%VMNAME%" --size %SIZE% --format %FORMAT%
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%VMDIR%\%VMPATH%\%VMNAME%.%FORMAT%"
"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%\%ISONAME%.iso"
"%VBOXMANAGE%" modifyvm "%VMNAME%" --boot1 dvd --boot2 disk --boot3 floppy --boot4 none
"%VBOXMANAGE%" modifyvm "%VMNAME%" --cpus 2
"%VBOXMANAGE%" unattended install "%VMNAME%" --iso "%ISOPATH%%ISONAME%.iso" --script-template="%UATT%".xml --install-additions
"%VBOXMANAGE%" startvm "%VMNAME%" 

exit
Da ist jetzt eine --install-additions Anweisung mit drin (bei Sysprep sicherlich unnötig).
Die VB-Additions ISO ist nach der Installation auch eingelegt. Leider aber werden die VB Extensions nicht automatisch installiert.
Hat jemand eine Idee?

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 17.11.2022, 15:31

Hier nochmal das komplette Script, rot markierte Einträge müssen entsprechend angepasst werden:
Versteckter Text:
@Echo off
SET VMNAME=WIN7_UATT
SET OSTYPE=Windows7
SET IMAGEARCH=X64
SET ISOPATH=D:\ISO-ARCHIV\Windows7
SET ISONAME=Win7_DE_AIO_x64_WIM_2022-11-11
SET USER=XXXX
SET FULLNAME=XXXX
SET PASSWORD=XXXX
SET INDEX=3
SET LOCALE=de_DE
SET FORMAT=VHD
SET KEY=XXXXX-XXXXX-XXXXX-XXXXX
SET RAM32=2048
SET RAM64=4096
SET VRAM=128
SET SIZE=30000
SET VMDIR=V:
SET VMPATH=VIRTUALBOX\%VMNAME%
SET UATT=ultimate-uatt
SET POSTINST=

REM Set host architecture
if exist "%WinDir%\SysWOW64" (
set ARCH=x64
) else (
set ARCH=x86
)

if exist "%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" set "VBOXMANAGE=%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe"
if exist "%ProgramFiles(x86)%\Oracle\VirtualBox\VBoxManage.exe" set "VBOXMANAGE=%ProgramFiles(x86)%\Oracle\VirtualBox\VBoxManager.exe"

if not exist "%VBOXMANAGE%" (

echo.
echo VirtualBox is not installed, please download and install it
start https://www.virtualbox.org/wiki/Downloads
echo.
pause
goto :EOF

)

rem alte VM löschen

"%VBOXMANAGE%" controlvm "%VMNAME%" poweroff >nul 2>nul
"%VBOXMANAGE%" unregistervm --delete "%VMNAME%" >nul 2>nul
rmdir "%VMDIR%\%VMPATH%"\ /s /q >nul 2>nul
del /q /s "%VMDIR%\$Recycle.bin\*"
for /d %%x in ("%VMDIR%\$Recycle.bin\*") do @rd /s /q "%%x"

rem neue VM erstellen

if /i "%ImageArch%" == "X86" (

"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype "%OSTYPE%" --default --register >nul 2>nul
) else (

"%VBOXMANAGE%" createvm --name "%VMNAME%" --ostype "%OSTYPE%_64" --default --register >nul 2>nul
)


REM Use different minimal amount for x64 systems. Best to keep it really on minimum requirements for capturing images
if /i "%ImageArch%" == "x86" (

"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory "%RAM32%" --vram "%VRAM%" >nul 2>nul

) else (

"%VBOXMANAGE%" modifyvm "%VMNAME%" --memory "%RAM64%" --vram "%VRAM%" >nul 2>nul

)

"%VBOXMANAGE%" unattended detect --iso="%ISOPATH%\%ISONAME%".iso

"%VBOXMANAGE%" unattended install "%VMNAME%" --iso="%ISOPATH%\%ISONAME%".iso --image-index="%INDEX%" --script-template="%UATT%".xml --locale="%LOCALE%"

"%VBOXMANAGE%" createmedium disk --filename "%VMDIR%\%VMPATH%\%VMNAME%" --size %SIZE% --format %FORMAT%

"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "%VMDIR%\%VMPATH%\%VMNAME%.vhd"

"%VBOXMANAGE%" storageattach "%VMNAME%" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium "%ISOPATH%\%ISONAME%.iso"

"%VBOXMANAGE%" modifyvm "%VMNAME%" --cpus 2 --vram=%VRAM%

"%VBOXMANAGE%" startvm "%VMNAME%"

exit

Re: Win7 in VirtualBox - Hilfe bei Script

von DK2000 » 17.11.2022, 15:16

Ach so, ja, das macht dann sogar sinn. Verwende da VBox nicht, da mir das von der Performance auf meiner alten Hardware nicht zusagt. Aber wenn es da Probleme mit "Verschieben in den Papierkorb" gibt, dann ist es sinnvoll, den Papierkorb für V: zu leeren oder zu löschen.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 17.11.2022, 15:12

DK2000 hat geschrieben: 17.11.2022, 13:42 Aber so richtig klar ist mir das im Moment nicht, was Du da an der Stelle machst. würde den Ordner einfach löschen und gut. Der wird so oder so neu erstellt, wenn er wieder benötigt wird.
Grund dafür ist die komplett automatisierte Erstellung einer Test-VM. Bei z.B. meinen Tests für die aktuelle Win7-ISO muß ich das ziemlich häufig machen, manuell ist das Löschen und Erstellen (bzw. Bearbeiten und Einrichten) ziemlich zeitaufwändig - mit dem Script ist das nun extrem simpel.
Es gab manchmal Fehler beim Erstellen, weil die alte VHD noch da war. Selbst manuelles Löschen (was ja nichts anderes ist als "Verschieben in den Papierkorb") beseitigte den Fehler nicht - erst Leeren des Papierkorbs gab die Neuerstellung wieder frei.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 17.11.2022, 14:44

DK2000 hat geschrieben: 17.11.2022, 13:42 Und bei Deinem Script fehlt am Ende von Zeile 49 ein " am Ende und das in der Mitte ist zu viel:
Das war der Fehler, nun wird der "Recycle.bin" in V gelöscht. Vielen Dank @DK2000 :dankeschoen:

Re: Win7 in VirtualBox - Hilfe bei Script

von DK2000 » 17.11.2022, 13:42

Sann musst du halt "%systemdrive%\$Recycle.bin\" durch "%VMDIR%\$Recycle.bin\" ersetzen.

Die Variable %systemdrive% enthält ja immer automatisch den Buchstaben vom Startlaufwerk, also i.d.R. C: oder, wenn WinPE gebootet, X:.

Und bei Deinem Script fehlt am Ende von Zeile 49 ein " am Ende und das in der Mitte ist zu viel:

Code: Alles auswählen

del /q /s "%VMDIR%\$Recycle.bin\*"
Aber so richtig klar ist mir das im Moment nicht, was Du da an der Stelle machst. würde den Ordner einfach löschen und gut. Der wird so oder so neu erstellt, wenn er wieder benötigt wird.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 17.11.2022, 13:38

Genau das soll mein Script auch so machen, es werden eigene Variablen verwendet (z.B. "SET VMDIR=V:" ). Das funktioniert auch im Rest vom Script, nur nicht beim "Recycle.bin".

Re: Win7 in VirtualBox - Hilfe bei Script

von DK2000 » 17.11.2022, 13:21

"%systemdrive%\$Recycle.bin\" ist normalerweise "C:\$Recycle.bin\", aber auch nur im laufenden Windows.

Ansonsten hat jedes Laufwerk seinen eigenen Ordner "$Recycle.bin". Wenn Du den auf V: löschen oder leeren willst, musst Du den Pfad "V:\$Recycle.bin" verwenden.

Re: Win7 in VirtualBox - Hilfe bei Script

von g-force » 17.11.2022, 13:16

Hm, ich glaube, ich habe da einen Denkfehler.
Ich habe definitiv einen Ordner "$Recycle.bin" auf meinem Laufwerk "V:\" - der wird aber vom Script nicht gefunden. Kann es sein, daß dies nur ein Verweis auf den eigentlichen Papierkorb auf "C:\" ist? Ich dachte immer, jedes Laufwerk hat einen eigenen Papierkorb.

Nach oben