iPXE discussion forum
WinPE reboot when using script - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: WinPE reboot when using script (/showthread.php?tid=17332)



WinPE reboot when using script - geri005 - 2019-01-22 08:05

Hey guys!

Using iPXE I'm able to boot to WinPE, mount my network drive and install Windows just fine.

However, I wanted to automount my network share, and start setup.exe automatically.

This is how my boot.ipxe looks like:

Code:
#!ipxe

  kernel wimboot
  initrd install.bat install.bat
  initrd winpeshl.ini winpeshl.ini
  initrd bootmgr bootmgr
  initrd boot/BCD         BCD
  initrd boot/boot.sdi    boot.sdi
  initrd sources/boot.wim boot.wim
  boot

And this is the install.bat:
Code:
wpeinit
net use \\192.168.1.99\SZERVER /user:myuser mypwd
\\192.168.1.99\SZERVER\iso\setup.exe

And finally the winpeshl.ini:
Code:
[LaunchApps]
  "install.bat"

Using this, WinPE boots up, then right after wpeinit, it reboots the computer.

What am I doing wrong here? Any help is much appreciated.


RE: WinPE reboot when using script - NiKiZe - 2019-01-22 08:41

1. don't add bootmgr via initrd - let wimboot extract it from the .wim file
2. Have you modified boot.wim in any way, especially, have you added any drivers to it? - if yes my first suspect would be broken drivers, retry with a clean boot.wim
3. In valid format, have you tried without adding winpeshl.ini and see what happens?


RE: WinPE reboot when using script - geri005 - 2019-01-22 08:57

(2019-01-22 08:41)NiKiZe Wrote:  1. don't add bootmgr via initrd - let wimboot extract it from the .wim file
2. Have you modified boot.wim in any way, especially, have you added any drivers to it? - if yes my first suspect would be broken drivers, retry with a clean boot.wim
3. In valid format, have you tried without adding winpeshl.ini and see what happens?

1. If I don't add bootmgr, I get a bad CPIO magic error.
2. Nope, fresh download, no modifications.
3. Without winpeshl it doesn't reboot, but of course my commands are not being executed.


RE: WinPE reboot when using script - NiKiZe - 2019-01-22 10:59

So if you run your commands manually, does it work? what if you run the cmd file?
does your .cmd file have proper lineendings?

You should probably investigate your CPIO issue, but hopefully not related to this.


RE: WinPE reboot when using script - geri005 - 2019-01-22 11:12

(2019-01-22 10:59)NiKiZe Wrote:  So if you run your commands manually, does it work? what if you run the cmd file?
does your .cmd file have proper lineendings?

You should probably investigate your CPIO issue, but hopefully not related to this.

If I run it manually, it works perfectly fine.

I tried a Windows 10 installer boot.wim before, that booted up without bootmgr, but PE refuses...


RE: WinPE reboot when using script - ndog - 2019-02-10 23:26

Check your batch file, most likely the network stack hasn't loaded. Try this instead. Once scripts finish executing from winpeshl.ini, Windows PE automatically reboots. Overwrite startnet.cmd instead if you want to leave the command prompt open.


RE: WinPE reboot when using script - Opvolger - 2020-09-22 18:56

I had the same problem, my solution:

Add powershell cab to boot.wim:

https://docs.microsoft.com/nl-nl/windows-hardware/manufacture/desktop/winpe-adding-powershell-support-to-windows-pe

winpeshl.ini
Code:
[LaunchApps]
wpeinit
powershell, -NoLogo -NoExit -ExecutionPolicy Bypass -File .\startup.ps1

and

startup.ps1
Code:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ProgressPreference = 'SilentlyContinue'

Start-Sleep -s 15

CMD /C VER

net use s: \\192.168.2.13\boot password /user:boot

Write-Output (Get-Date)

Start-Sleep -s 15

Start-Process -FilePath "S:\iso\windows10\setup.exe" -Wait

boot.wim = new created with powershell!
boot.ipxe
Code:
:winpe_win10

  cpuid --ext 29 && set arch amd64 || set arch x86

  kernel http://${ipxe_server_ip}/ipxe/wimboot
  initrd http://${ipxe_server_ip}/boot/win10/winpeshl.ini                                        winpeshl.ini
  initrd http://${ipxe_server_ip}/boot/win10/startup.ps1                                         startup.ps1
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/BCD               BCD
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/boot.sdi          boot.sdi
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/sources/boot.wim       boot.wim



RE: WinPE reboot when using script - Opvolger - 2020-09-22 18:57

I had the same problem, my solution:

Add powershell cab to boot.wim:

https://docs.microsoft.com/nl-nl/windows-hardware/manufacture/desktop/winpe-adding-powershell-support-to-windows-pe

winpeshl.ini
Code:
[LaunchApps]
wpeinit
powershell, -NoLogo -NoExit -ExecutionPolicy Bypass -File .\startup.ps1

and

startup.ps1
Code:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ProgressPreference = 'SilentlyContinue'

Start-Sleep -s 15

CMD /C VER

net use s: \\192.168.2.13\boot password /user:boot

Write-Output (Get-Date)

Start-Sleep -s 15

Start-Process -FilePath "S:\iso\windows10\setup.exe" -Wait

boot.wim = new created with powershell!
boot.ipxe
Code:
:winpe_win10

  cpuid --ext 29 && set arch amd64 || set arch x86

  kernel http://${ipxe_server_ip}/ipxe/wimboot
  initrd http://${ipxe_server_ip}/boot/win10/winpeshl.ini                                        winpeshl.ini
  initrd http://${ipxe_server_ip}/boot/win10/startup.ps1                                         startup.ps1
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/BCD               BCD
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/boot.sdi          boot.sdi
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/sources/boot.wim       boot.wim



RE: WinPE reboot when using script - Opvolger - 2020-09-22 18:57

I had the same problem, my solution:

Add powershell cab to boot.wim:

https://docs.microsoft.com/nl-nl/windows-hardware/manufacture/desktop/winpe-adding-powershell-support-to-windows-pe

winpeshl.ini
Code:
[LaunchApps]
wpeinit
powershell, -NoLogo -NoExit -ExecutionPolicy Bypass -File .\startup.ps1

and

startup.ps1
Code:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ProgressPreference = 'SilentlyContinue'

Start-Sleep -s 15

CMD /C VER

net use s: \\192.168.2.13\boot password /user:boot

Write-Output (Get-Date)

Start-Sleep -s 15

Start-Process -FilePath "S:\iso\windows10\setup.exe" -Wait

boot.wim = new created with powershell!
boot.ipxe
Code:
:winpe_win10

  cpuid --ext 29 && set arch amd64 || set arch x86

  kernel http://${ipxe_server_ip}/ipxe/wimboot
  initrd http://${ipxe_server_ip}/boot/win10/winpeshl.ini                                        winpeshl.ini
  initrd http://${ipxe_server_ip}/boot/win10/startup.ps1                                         startup.ps1
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/BCD               BCD
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/boot.sdi          boot.sdi
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/sources/boot.wim       boot.wim



RE: WinPE reboot when using script - Opvolger - 2020-09-22 18:57

I had the same problem, my solution:

Add powershell cab to boot.wim:

https://docs.microsoft.com/nl-nl/windows-hardware/manufacture/desktop/winpe-adding-powershell-support-to-windows-pe

winpeshl.ini
Code:
[LaunchApps]
wpeinit
powershell, -NoLogo -NoExit -ExecutionPolicy Bypass -File .\startup.ps1

and

startup.ps1
Code:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ProgressPreference = 'SilentlyContinue'

Start-Sleep -s 15

CMD /C VER

net use s: \\192.168.2.13\boot password /user:boot

Write-Output (Get-Date)

Start-Sleep -s 15

Start-Process -FilePath "S:\iso\windows10\setup.exe" -Wait

boot.wim = new created with powershell!
boot.ipxe
Code:
:winpe_win10

  cpuid --ext 29 && set arch amd64 || set arch x86

  kernel http://${ipxe_server_ip}/ipxe/wimboot
  initrd http://${ipxe_server_ip}/boot/win10/winpeshl.ini                                        winpeshl.ini
  initrd http://${ipxe_server_ip}/boot/win10/startup.ps1                                         startup.ps1
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/BCD               BCD
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/Boot/boot.sdi          boot.sdi
  initrd http://${ipxe_server_ip}/iso/extracted/clean/winpe/${arch}/media/sources/boot.wim       boot.wim