PXE Everywhere uses a modified standalone WinPE image for booting clients – this is the same as a generic boot image that is loaded from either a USB device or a CD. 

When a boot image is created, Configuration Manager injects site specific information into it and also stores this data in its database. Each time a boot media is created, an entry is also generated under Certificates\Boot Media in the Configuration Manager admin console and stored in the database.

When the boot media is loaded, the Configuration Manager executables in turn load the encrypted variables.dat file and attempts to connect to the site where the media was created.

There are three steps to configure a PXE Boot Image on Configuration Manager:

Microsoft introduced a new Reload Boot Image feature in Configuration Manager 1706 CB which enabled you to reload the latest version of Windows PE (from the Windows ADK installation directory) into the boot image when you run the Update Distribution Points wizard. If you reload the boot image while running the Update Distribution Points wizard, you must execute UpdateBootImage.exe to ensure the 1E components are installed in the reloaded boot image. The boot images must then be distributed to the PXE Everywhere agent, ensuring CreateBCD.exe is executed. The process to distribute and configure the boot image is described below.

Creating the PXE Boot image

A PXE boot image for use with PXE Everywhere is derived from existing Configuration Manager images but with some minor differences. Initially, you should have one or more boot images in Configuration Manager, as shown in this picture.

To locate the boot source image:

  1. Select the Boot Images node.
    Configuration Manager boot images  
  2. Right-click the boot image and from its context menu, choose Properties.
  3. In the Boot Image Properties dialog, select the Data Source tab.
  4. You can find the path for the image in Image Path:
  5. Copy the boot image. In our example, we copy the file to \\LFSCCM\PackagePath\PXELite\x86.

    PXE Everywhere requires that the boot image is called boot.wim so you should ensure that your copy has this name.
  6. In the Configuration Manager console, right-click the Boot Images node and from its context menu, choose Add Boot Image.
  7. In the Boot Image wizard, enter the UNC path to the copied boot image.

    Boot image UNC path

  8. Click Next.
  9. Add the name for the image, version and any comments.

    Boot image properties

  10. If you have Nomad installed, the wizard will include the settings for Nomad. You can optionally use Nomad to deliver the boot image to the PXE Everywhere local host.

    Boot image Nomad settings

  11. Click Next on the following screens to complete the wizard.
  12. Distribute the newly added PXE boot image to the distribution points.
  13. Create the boot media by executing UpdateBootImage.exe (typically located at C:\Program Files (x86)\1E\PXE Lite\Bin\i386) from an elevated command prompt to modify the boot.wim to make it suitable for use with PXE Everywhere. It uses the following arguments:

    Argument

    Optionality

    Notes

    BootImageIDRequiredThe package ID of the PXE Everywhere boot image, as created above.
    CertExpiryOptional
    Used to define the Certificate expiration in days, Default = 365 ( 1 Year ), minimum of 1 day is enforced.

     
    CertExpiry is only needed for self-signed certificates. It is not needed for PKI certificates.

    CertPasswordRequired (HTTPS only)The password to use for the .PFX file. Only required if using the HTTPS protocol.
    CertPathRequired (HTTPS only)The path to the .PFX file to be imported. Only required if using the HTTPS protocol.
    DistributionPointsRequiredA distribution point where the newly created PXE boot image has been distributed. The FQDN of the distribution point can be used and this must match the Server Name used to create the Site System Server.
    ManagementPointsRequired

    This parameter is used to create boot media that span multiple sites/management points. This should be set to a list of FQDN for all possible management points separated by the * character. This parameter is required for creating PXE Everywhere boot media in Configuration Manager.

    For single Primary Site environments, use the static based media option, SMSTSMP, for example:

    -ManagementPoints=SMSTSMP=http: //mp.contoso.com

    For multi-site hierarchies, use the dynamic media option, SMSTSLocationMPs and specify at least one MP from each site, for example:

    -ManagementPoints=SMSTSLocationMPs= 
         http: //site1MP.consoto.com* 
         http: //site2MP.contoso.com
    MediaPasswordOptionalThe password applied to protect the media – recommended if deploying to Unknown Computers.
    ProviderNameRequiredUsually the name of the Configuration Manager server that hosts the "SMS Provider" role.
    SiteCodeRequiredConfiguration Manager site code.
    WIMFileNameRequiredThe filename of the boot WIM that you created above.

    The following example command-line (again separated for clarity) shows how our example image might be modified for use with PXE Everywhere on a multi-site Configuration Manager system.

    C:\Program Files (x86)\1E\PXE Lite\bin\i386>UpdateBootImage 
    -ProviderName=LFSCCM.CONTOSO.local 
    -SiteCode=LXF 
    -DistributionPoints=LFSCCM.CONTOSO.local 
    -BootImageID=LXF00017 
    -ManagementPoints=SMSTSLocationMPs=http://LFSCCM.CONTOSO.local*http://LFMP2.CONTOSO.local 
    -WimFileName=\\LFSCCM\PackagePath\PXELite\x86\boot.wim
    When using remote distribution points, the user creating the media has to be an administrator on those remote DP machines.
  14. Redistribute the newly-added PXE boot image package using the Update Distribution Points menu item.

Creating a Task Sequence to install PXE Everywhere and Pre-cache the PXE Boot Image

To distribute the boot image to the correct location on PXE Everywhere client computers, create a custom task sequence that will be deployed to the computers.

  1. In Configuration Manager, right-click Software Library/Operating Systems/Task Sequences and from its context menu, choose Create Task Sequence.
  2. On the first page of the Create Task Sequence wizard, select Create a new task sequence.

    Create custom task sequence

  3. On the Task Sequence Information page, enter a suitable name for the task sequence and choose the PXE Everywhere boot image you created earlier.

    Task sequence information

  4. Edit the task sequence and add the following:
    1. Add a Run Command Line action.
    2. Name the command Copy to PXE Everywhere.
    3. For 32-bit systems, the command-line is (including the quotes): "C:\Program Files\1E\PXE Lite\Server\i386\CreateBCD.exe"
    4. For 64-bit systems, the command-line is (including the quotes): "C:\Program Files (x86)\1E\PXE Lite\Server\x64\CreateBCD.exe"

    This executable is used to copy an advertised PXE Boot Image to the PXE Everywhere local cache, creating a boot configuration database. 

    CreateBCD.exe does not validate the boot image - it will not detect a corrupt .wim file.

    There is only one command-line switch for CreateBCD.exe which is used to set the RAMDisk tftp block size. The notation for this is CreateBCD.exe -tftpBlocksize=blocksize where blocksize is measured in bytes.


    Some hardware may not support block size values higher than 16384 bytes and hence may fail to PXE boot. We recommend you use a TFTP block size of 8192 bytes for best results.

    The actual block size used for the tftp protocol is the lesser value of the tftpBlockSize and the MaxBlockSize registry value. Effectively, MaxBlockSize limits the tftpBlockSize specified in the CreateBCD utility.


    You could extend this specific task sequence to include the actual installation of the PXE Everywhere component, copy the neccessary ADK redistributable files, and then run the CreateBCD utility.

    Extended task sequence

Deploying the task sequence

To deploy the newly created custom task sequence:

  1. Follow the standard procedure for deploying a task sequence. In our example, the deployment is targeted at a collection that will include all the client computers we want PXE Everywhere install onto.

    Task sequence collection

  2. On the Distribution Points page under Deployment options, ensure that Download all content locally before starting task sequence is selected.

    Task sequence distribution point

    When Configuration Manager processes the task sequence, the associated boot image will be downloaded to the Nomad and CCM Client caches. The CreateBCD.exe utility copies the cached boot image file to the C:\ProgramData\1E\PXELite\TFTPROOT\images directory on the computer, as illustrated below. This computer is now ready to serve the boot image using PXE services.

    On PXE booting a UEFI device in a non-mandatory deployment scenario, you may be presented with an option to Press Enter to continue and Press F8 for Advanced boot menu. However, the advanced boot menu options will not work for WinPE.