Skip to content

A Powershell PXEServer [DHCP/ProxyDHCP/DNS/TFTP/HTTP]

License

Notifications You must be signed in to change notification settings

illsk1lls/PXEServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Powershell PXEServer [DHCP/ProxyDHCP/DNS/TFTP/HTTP]

BIOS/UEFI PXEBoot supported.

Download a ZIP of the repository, and extract the contents to C:\PXE

File structure should look like:

C:\PXE\NBP\ipxe2.efi <== This file is NOT included! (or needed!) SecureBoot instructions at end of ReadMe
C:\PXE\NBP\ipxe.efi
C:\PXE\NBP\undionly.kpxe
C:\PXE\NBP\undionly2.kpxe
C:\PXE\NBP\wimboot
C:\PXE\PXEServer.ps1
C:\PXE\README.md
C:\PXE\LICENSE

The following components are included within the script:

  • DHCP/ProxyDHCP listeners, that only respond to PXEClients
  • DNS server
  • TFTP server
  • HTTP file server

All are required for the full PXE boot process. (Except DNS during SecureBoot sessions)

MOUNT YOUR WINPE ISO AND COPY ALL FILES TO C:\PXE\
(THIS HAS BEEN TESTED USING WIN10PESE AND WIN10XPE BOOTABLE ISO's)

Win10XPE can be found here: https://github.com/ChrisRfr/Win10XPE
(To make a successful vanilla build with this version, without having to make edits, disable: Apps>HD Tasks>AOMEI Partition Assistant, and, Apps>Network>Google Chrome)

------------------------------------

  • Run PXEServer.ps1 and network boot!

  • Press Esc to Exit, this will remove PXEServer settings, and RE-ENABLE Windows Firewall on the host machine

------------------------------------

This is a work in progress and proof of concept.. please don't take it too seriously ;P
NOTE: If the script is not closed properly (e.g. by pressing the Esc key), the background HTTP job will remain open
Relaunching the script will close any stale HTTP background jobs

Stability updates and fixes coming soon. And any help is appreciated/welcomed.

Powered by iPXE (https://github.com/ipxe/ipxe)

------------------------------------

SECUREBOOT INSTRUCTIONS:
SecureBoot compatibility can be enabled, but provides less NIC support(drivers). During testing, if network boot would fail due to limited drivers, the client would create an error along the lines of x/xxx/xxRtk.xxxx.cp (in this case indicating an issue with some Realtek drivers) somewhere on the screen immediately after attempting DHCP. In cases where boot is not completing disable SecureBoot on the clients and turn SecureBoot Compatibility support off on the server.

TO ENABLE SECUREBOOT SUPPORT navigate to the following page: https://knowledge.broadcom.com/external/article/280113/updated-64bit-ipxeefi-ipxe-v1211+-binari.html
Scroll to the bottom of the page, and click the 64bit_ipxe_efi.zip download button to get a signed copy of ipxe.efi (Thank you Broadcom)

Extract ipxe.efi from 64bit_ipxe_efi.zip AND RENAME IT TO ==> ipxe2.efi
Assuming your PXEServer is located at C:\PXE, place the new ipxe2.efi in C:\PXE\NBP\

If C:\PXE\NBP\ipxe2.efi exists SecureBoot compatibility mode will be enabled during launch

About

A Powershell PXEServer [DHCP/ProxyDHCP/DNS/TFTP/HTTP]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published