StefanScherer / packer-windows

Windows Templates for Packer: Windows 11, Windows 10, Windows Server 2022, 2019, 2016, also with Docker
MIT License
1.27k stars 429 forks source link

Build 'virtualbox-iso' errored: Script exited with non-zero exit status: 1. Allowed exit codes are: [0] #49

Closed basictheprogram closed 6 years ago

basictheprogram commented 6 years ago

$ packer --version 1.1.1

macOS 10.12.6

$ packer build -only=virtualbox-iso windows_10.json
virtualbox-iso output will be in this color.

==> virtualbox-iso: Downloading or copying ISO
    virtualbox-iso: Downloading or copying: http://care.dlservice.microsoft.com/dl/download/6/5/D/65D18931-F626-4A35-AD5B-F5DA41FE6B76/16299.15.170928-1534.rs3_release_CLIENTENTERPRISEEVAL_OEMRET_x64FRE_en-us.iso
==> virtualbox-iso: Creating floppy disk...
    virtualbox-iso: Copying files flatly from floppy_files
    virtualbox-iso: Copying file: ./answer_files/10/Autounattend.xml
    virtualbox-iso: Copying file: ./floppy/WindowsPowershell.lnk
    virtualbox-iso: Copying file: ./floppy/PinTo10.exe
    virtualbox-iso: Copying file: ./scripts/fixnetwork.ps1
    virtualbox-iso: Copying file: ./scripts/disable-screensaver.ps1
    virtualbox-iso: Copying file: ./scripts/disable-winrm.ps1
    virtualbox-iso: Copying file: ./scripts/enable-winrm.ps1
    virtualbox-iso: Copying file: ./scripts/microsoft-updates.bat
    virtualbox-iso: Copying file: ./scripts/win-updates.ps1
    virtualbox-iso: Done copying files from floppy_files
    virtualbox-iso: Collecting paths from floppy_dirs
    virtualbox-iso: Resulting paths from floppy_dirs : []
    virtualbox-iso: Done copying paths from floppy_dirs
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Attaching floppy disk...
==> virtualbox-iso: Creating forwarded port mapping for communicator (SSH, WinRM, etc) (host port 2236)
==> virtualbox-iso: Executing custom VBoxManage commands...
    virtualbox-iso: Executing: modifyvm windows_10 --memory 2048
    virtualbox-iso: Executing: modifyvm windows_10 --cpus 2
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Waiting 6m0s for boot...
==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Waiting for WinRM to become available...
    virtualbox-iso: WinRM connected.
    virtualbox-iso: #< CLIXML
    virtualbox-iso: <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
==> virtualbox-iso: Connected to WinRM!
==> virtualbox-iso: Uploading VirtualBox version info (5.1.30)
==> virtualbox-iso: Provisioning with windows-shell...
==> virtualbox-iso: Provisioning with shell script: ./scripts/vm-guest-tools.bat
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>if not exist "C:\Windows\Temp\7z920-x64.msi" (powershell -Command "(New-Object System.Net.WebClient).DownloadFile('http://www.7-zip.org/a/7z920-x64.msi', 'C:\Windows\Temp\7z920-x64.msi')"  0<NUL )
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>msiexec /qb /i C:\Windows\Temp\7z920-x64.msi
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>if "virtualbox-iso" EQU "vmware-iso" goto :vmware
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>if "virtualbox-iso" EQU "virtualbox-iso" goto :virtualbox
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>if exist "C:\Users\vagrant\VBoxGuestAdditions.iso" (move /Y C:\Users\vagrant\VBoxGuestAdditions.iso C:\Windows\Temp )
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>if not exist "C:\Windows\Temp\VBoxGuestAdditions.iso" (powershell -Command "(New-Object System.Net.WebClient).DownloadFile('http://download.virtualbox.org/virtualbox/5.1.30/VBoxGuestAdditions_5.1.30.iso', 'C:\Windows\Temp\VBoxGuestAdditions.iso')"  0<NUL )
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>cmd /c ""C:\Program Files\7-Zip\7z.exe" x C:\Windows\Temp\VBoxGuestAdditions.iso -oC:\Windows\Temp\virtualbox"
    virtualbox-iso:
    virtualbox-iso: 7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
    virtualbox-iso:
    virtualbox-iso: Processing archive: C:\Windows\Temp\VBoxGuestAdditions.iso
    virtualbox-iso:
    virtualbox-iso: Extracting  32Bit
    virtualbox-iso: Extracting  32Bit\Readme.txt
    virtualbox-iso: Extracting  64Bit
    virtualbox-iso: Extracting  64Bit\Readme.txt
    virtualbox-iso: Extracting  AUTORUN.INF
    virtualbox-iso: Extracting  OS2
    virtualbox-iso: Extracting  OS2\VBoxControl.exe
    virtualbox-iso: Extracting  OS2\VBoxGuest.sys
    virtualbox-iso: Extracting  OS2\VBoxReplaceDll.exe
    virtualbox-iso: Extracting  OS2\VBoxService.exe
    virtualbox-iso: Extracting  OS2\gengradd.dll
    virtualbox-iso: Extracting  OS2\libc06.dll
    virtualbox-iso: Extracting  OS2\libc061.dll
    virtualbox-iso: Extracting  OS2\libc062.dll
    virtualbox-iso: Extracting  OS2\libc063.dll
    virtualbox-iso: Extracting  OS2\libc064.dll
    virtualbox-iso: Extracting  OS2\libc065.dll
    virtualbox-iso: Extracting  OS2\libc066.dll
    virtualbox-iso: Extracting  OS2\readme.txt
    virtualbox-iso: Extracting  OS2\vboxmouse.sys
    virtualbox-iso: Extracting  VBoxLinuxAdditions.run
    virtualbox-iso: Extracting  VBoxSolarisAdditions.pkg
    virtualbox-iso: Extracting  VBoxWindowsAdditions-amd64.exe
    virtualbox-iso: Extracting  VBoxWindowsAdditions-x86.exe
    virtualbox-iso: Extracting  VBoxWindowsAdditions.exe
    virtualbox-iso: Extracting  autorun.sh
    virtualbox-iso: Extracting  cert
    virtualbox-iso: Extracting  cert\VBoxCertUtil.exe
    virtualbox-iso: Extracting  cert\vbox-sha1.cer
    virtualbox-iso: Extracting  cert\vbox-sha256-r3.cer
    virtualbox-iso: Extracting  cert\vbox-sha256.cer
    virtualbox-iso: Extracting  runasroot.sh
    virtualbox-iso:
    virtualbox-iso: Everything is Ok
    virtualbox-iso:
    virtualbox-iso: Folders: 4
    virtualbox-iso: Files: 28
    virtualbox-iso: Size:       59079687
    virtualbox-iso: Compressed: 59494400
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>certutil -addstore -f "TrustedPublisher" C:\Windows\Temp\virtualbox\cert\vbox-sha256-r3.cer
    virtualbox-iso: TrustedPublisher "Trusted Publishers"
    virtualbox-iso: Certificate "Oracle Corporation" added to store.
    virtualbox-iso: CertUtil: -addstore command completed successfully.
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>certutil -addstore -f "TrustedPublisher" C:\Windows\Temp\virtualbox\cert\vbox-sha256.cer
    virtualbox-iso: TrustedPublisher "Trusted Publishers"
    virtualbox-iso: Certificate "Oracle America, Inc." added to store.
    virtualbox-iso: CertUtil: -addstore command completed successfully.
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>certutil -addstore -f "TrustedPublisher" C:\Windows\Temp\virtualbox\cert\vbox-sha1.cer
    virtualbox-iso: TrustedPublisher "Trusted Publishers"
    virtualbox-iso: Certificate "Oracle Corporation" added to store.
    virtualbox-iso: CertUtil: -addstore command completed successfully.
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>cmd /c C:\Windows\Temp\virtualbox\VBoxWindowsAdditions.exe /S
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>rd /S /Q "C:\Windows\Temp\virtualbox"
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>goto :done
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>msiexec /qb /x C:\Windows\Temp\7z920-x64.msi
==> virtualbox-iso: Provisioning with shell script: ./scripts/enable-rdp.bat
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>netsh advfirewall firewall add rule name="Open Port 3389" dir=in action=allow protocol=TCP localport=3389
    virtualbox-iso: Ok.
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso: C:\Users\vagrant>reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
    virtualbox-iso: The operation completed successfully.
==> virtualbox-iso: Provisioning with Powershell...
==> virtualbox-iso: Provisioning with powershell script: ./scripts/debloat-windows.ps1
    virtualbox-iso: Downloading debloat zip
    virtualbox-iso: Disable Windows Defender
    virtualbox-iso: Optimize Windows Update
    virtualbox-iso: Disable automatic download and installation of Windows updates
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso:     Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso: Name                           Property
    virtualbox-iso: ----                           --------
    virtualbox-iso: AU
    virtualbox-iso: Disable seeding of updates to other computers via Group Policies
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso:     Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
    virtualbox-iso:
    virtualbox-iso:
    virtualbox-iso: Name                           Property
    virtualbox-iso: ----                           --------
    virtualbox-iso: DeliveryOptimization
    virtualbox-iso: Disable 'Updates are available' message
    virtualbox-iso:
    virtualbox-iso: SUCCESS: The file (or folder): "C:\Windows\System32\MusNotification.exe" now owned by user "VAGRANT-10\vagrant".
    virtualbox-iso: processed file: C:\Windows\System32\MusNotification.exe
    virtualbox-iso: Successfully processed 1 files; Failed processing 0 files
    virtualbox-iso:
    virtualbox-iso: SUCCESS: The file (or folder): "C:\Windows\System32\MusNotificationUx.exe" now owned by user "VAGRANT-10\vagrant".
    virtualbox-iso: processed file: C:\Windows\System32\MusNotificationUx.exe
    virtualbox-iso: Successfully processed 1 files; Failed processing 0 files
    virtualbox-iso: Uninstall-WindowsFeature : The term 'Uninstall-WindowsFeature' is not recognized as the name of a cmdlet, function,
    virtualbox-iso: script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
    virtualbox-iso: correct and try again.
    virtualbox-iso: At C:\Windows\Temp\script-5a093eee-8d5b-cc00-e371-055023d184ba.ps1:17 char:3
    virtualbox-iso: +   Uninstall-WindowsFeature Windows-Defender-Features
    virtualbox-iso: +   ~~~~~~~~~~~~~~~~~~~~~~~~
    virtualbox-iso:     + CategoryInfo          : ObjectNotFound: (Uninstall-WindowsFeature:String) [], CommandNotFoundException
    virtualbox-iso:     + FullyQualifiedErrorId : CommandNotFoundException
    virtualbox-iso:
==> virtualbox-iso: Restarting Machine
==> virtualbox-iso: Waiting for machine to restart...
    virtualbox-iso: A system shutdown is in progress.(1115)
    virtualbox-iso: VAGRANT-10 restarted.
    virtualbox-iso: #< CLIXML
    virtualbox-iso: <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>
==> virtualbox-iso: Machine successfully restarted, moving on
==> virtualbox-iso: Provisioning with Powershell...
==> virtualbox-iso: Provisioning with powershell script: ./scripts/set-powerplan.ps1
    virtualbox-iso: Invalid Parameters -- try "/?" for help
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]

==> Builds finished but no artifacts were created.
basictheprogram commented 6 years ago

Added some debug

Try {
  Write-Output "Set power plan to high performance"

  $HighPerf = powercfg -l | %{if($_.contains("High performance")) {$_.split()[3]}}
  Write-Output "HighPerf $HighPerf"

  $CurrPlan = $(powercfg -getactivescheme).split()[3]
  Write-Output "CurrPlan $CurrPlan"

  if ($CurrPlan -ne $HighPerf) {powercfg -setactive $HighPerf}
  Write-Output "Check and set"

} Catch {
  Write-Warning -Message "Unable to set power plan to high performance"
}

And the output

==> virtualbox-iso: Provisioning with powershell script: ./scripts/set-powerplan.ps1
    virtualbox-iso: Set power plan to high performance
    virtualbox-iso: HighPerf
    virtualbox-iso: CurrPlan 381b4222-f694-41f0-9685-ff5bb260df2e
    virtualbox-iso: Check and set
    virtualbox-iso: Invalid Parameters -- try "/?" for help
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]

Looks like $HighPerf is not getting set?

Testing interactively

PS C:\Users\Administrator> $HighPerf = powercfg -l | %{if($_.contains("High performance")) {$_.split()[3]}}
PS C:\Users\Administrator> $HighPerf
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Command fails when executed over WinRM?

StefanScherer commented 6 years ago

Thanks for debugging. Maybe we should skip this script for now.

StefanScherer commented 6 years ago

My latest windows_10 build went through this script without an error.

basictheprogram commented 6 years ago

Merged in #51 and #58 and now this re-surfaces. I have a PR that fixes the problem for me.

StefanScherer commented 6 years ago

I‘ve merged #50. Thanks.