Contents
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:
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:
- Select the Boot Images node.
- Right-click the boot image and from its context menu, choose Properties.
- In the Boot Image Properties dialog, select the Data Source tab.
- You can find the path for the image in Image Path:
Copy the boot image. In our example, we copy the file to
\\LFSCCM\PackagePath\PXELite\x86
.PXE Everywhere requires that the boot image is calledboot.wim
so you should ensure that your copy has this name.- In the Configuration Manager console, right-click the Boot Images node and from its context menu, choose Add Boot Image.
- In the Boot Image wizard, enter the UNC path to the copied boot image.
- Click Next.
- Add the name for the image, version and any comments.
- 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.
- Click Next on the following screens to complete the wizard.
- Distribute the newly added PXE boot image to the distribution points.
Create the boot media by executing
UpdateBootImage.exe
(typically located atC:\Program Files (x86)\1E\PXE Lite\Bin\i386
) from an elevated command prompt to modify theboot.wim
to make it suitable for use with PXE Everywhere. It uses the following arguments:Argument
Optionality
Notes
BootImageID Required The package ID of the PXE Everywhere boot image, as created above. CertExpiry Optional 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.CertPassword Required (HTTPS only) The password to use for the .PFX file. Only required if using the HTTPS protocol. CertPath Required (HTTPS only) The path to the .PFX file to be imported. Only required if using the HTTPS protocol. DistributionPoints Required A 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. ManagementPoints Required 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
MediaPassword Optional The password applied to protect the media – recommended if deploying to Unknown Computers. ProviderName Required Usually the name of the Configuration Manager server that hosts the "SMS Provider" role. SiteCode Required Configuration Manager site code. WIMFileName Required The 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.- 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.
- In Configuration Manager, right-click Software Library/Operating Systems/Task Sequences and from its context menu, choose Create Task Sequence.
- On the first page of the Create Task Sequence wizard, select Create a new task sequence.
- On the Task Sequence Information page, enter a suitable name for the task sequence and choose the PXE Everywhere boot image you created earlier.
- Edit the task sequence and add the following:
- Add a Run Command Line action.
- Name the command Copy to PXE Everywhere.
- For 32-bit systems, the command-line is (including the quotes):
"C:\Program Files\1E\PXE Lite\Server\i386\CreateBCD.exe"
- 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 isCreateBCD.exe -tftpBlocksize=blocksize
whereblocksize
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.
Deploying the task sequence
To deploy the newly created custom task sequence:
- 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.
- On the Distribution Points page under Deployment options, ensure that Download all content locally before starting task sequence is selected.
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 theC:\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.