Exercise Overview:

In the previous lab, you have seen how a Task Sequence is set up to refresh an operating system using Nomad to obtain content locally throughout the build process. In this lab, you will learn how PXE Everywhere enables 'bare metal' clients to boot to Windows PE served from a local peer, and then complete the task sequence prepared in the previous lab to lay down the new operating system and packages. PXE Lite can be used for any PXE booting needs, not just for bare metal deployments. Essentially any role that a PXE Service Point would play in any OSD scenario can be executed with PXE Lite.

Installing PXELite Central

In this exercise, you will install PXELite Central on the ConfigMgr site server. The PXELite Central installation establishes the PXELite web service and adds two stored procedures to the ConfigMgr database. It also includes a Nomad Tools feature that installs UpdateBootImage.exe, a tool used to prepare a boot image so it can be served by a PXELite Local computer and have access to the ConfigMgr Management Point.

Install PXELite Central

1ETRNCM

  1. Log on to 1ETRNCM as 1ETRN\SCCMAdmin
  2. From the SkyTap Shared Drive shortcut on the desktop browse to 1E Nomad - Course Content\Nomad 7.0 Course Content\ and download and copy PxeLite.v3.1.300.5.zip to C:\Temp right click and extract all
  3. From the Start menu, right-click Command Prompt, select Run as administrator and switch to the C:\Temp\PxeLite.v3.1.300.5 directory
  4. Run the following command
  5. msiexec /i PXELiteCentral.msi PATCH=c:\temp\PxeLite.v3.1.300.5\Q20477-pxelitecentral.v3.1.300.5.msp /l*v PXECentral-Install.log
  6. Click Next on all wizard pages to accept the default options. Click Install when the wizard screens are completed. Click Finish when the installation completes
  7. You will need to make sure to accept the License Agreement before you will be able to click next in that screen.

Review the installed components

1ETRNCM

  1. Browse to C:\Program Files (x86)\1E\PXE Lite and note the files installed
  2. From the Start menu, open MicrosoftSQL Server Management Studio and connect to the local server
  3. Navigate to Databases\CM_PS1\Programmability\Stored Procedures and note the 1E_GetPXEAction and 1E_ProcessNBSMessage Stored Procedures have been added to the ConfigMgr database by the PXELite Central Database feature
  4. 1E_GetPXEAction is responsible for returning the ConfigMgr OfferID (AdvertID, DeploymentID), BootImageID and whether the offer is mandatory or not. 1E_ProcessNBSMessage is used to set the PXE flag for required deployments.  This is so that if PXE is the first in the boot order, it will not go into a perpetual PXE reboot loop. 
  5. Close SQL Server Management Studio and from the Start menu, open Internet Information Services (IIS) Manager and expand the Default Web Site. Note the PXELite web site

  6. When a PXELite Local Host computer receives a PXE boot request from a peer, it will contact the PXELite web service, which in turn will execute the 1E_GetPXEAction stored procedure in the ConfigMgr database to determine if a Task Sequence has been advertised to the PXE-booting client, returning the results to the PXELite Local computer.
  7. Click on Application Pools and note the PXELite application pool running as NetworkService
  8. Close the IIS Manager snap-in
  9. To test the PXELite Central web service, open Internet Explorer and type the following URL:
    http://localhost/PXELite/PXELiteConfiguration.asmx

  1. This should result in the following page being displayed


  1. Close Internet Explorer and run regedit
  2. Navigate to HKLM\Software\Wow6432Node\1E\PXELiteCentral key. This simply includes values for the installed version
  3. Close the Registry Editor

Preparing a boot image for PXE Everywhere

The Windows PE boot image (.wim file) that PXE Everywhere serves to its local peers requires some preparation. In this exercise, you will prepare the boot image for deployment to the PXE Everywhere workstation. In the next exercise, you will install the PXE Everywhere agent and stage this boot image on the PXE Everywhere workstation.

Create the PXE Everywhere Boot Image

In this task, you will prepare a new boot image for PXE Everywhere to use, starting from an existing boot image. The previous task will ensure that the wizard injects the additional required files into this image.


1ETRNDC

  1. On 1ETRNDC, create the following folder structure E:\ConfigMgrSource\BootImages\PXELite\i386
  2. Browse to \\1ETRNCM\SMS_PS1\OSD\boot\i386 and copy boot.PS10003F.wim to E:\ConfigMgrSource\BootImages\PXELite\i386
  3. Rename this new copy to boot.wim
  4. Although it would be possible to start with the 'vanilla' boot.wim from the OSD\Boot\i386 folder, an existing boot image package (in this case PS100004) is used just in case modifications may have already been made to that image (such as injecting drivers) outside of the Create Boot Image wizard process. In most cases you will be implementing Nomad into an environment where OSD is already in use – using the appropriate boot image package as the basis for the PXELite boot image ensures the resulting image will include all the work to date.

1ETRNCM

  1. From the ConfigMgr console, open the Software Library workspace expand the Operating Systems node
  2. Right-click Boot Images and select Add Boot Image from the context menu to launch the Add Boot Image Wizard
  3. On the Data Source page browse to the location of the boot.wim created earlier (\\1ETRNDC\ConfigMgrSource\BootImages\PXELite\i386\boot.wim). Click Next
  4. On the General screen, name the boot image PXE Everywhere Boot Image (x86), and click Next
  5. On the Nomad Settings page, check Enable Nomad and change the Cache priority to 5 (the cache priority is increased to ensure it is persisted in the cache on the PXE Everywhere workstation). Click Next
  6. On the Summary page, review your settings and click Next (it will take a minute or two for this complete)
  7. Once the Wizard completes, click Close
  8. Note that the PXE Everywhere Boot Image (x86) has now been added to the Boot Images node in the ConfigMgr console
  9. Note the Image ID (PS1000xx) as you will need this later.
  10. Right-click the PXE Everywhere Boot Image (x86) and select Properties
  11. Select the Drivers tab and click the star button to add drivers
  12. Uncheck the Hide drivers that are not in a storage or network class (for boot images) option

  1. Note that there are four drivers displayed – all are categorized as "Win10" and "x86" – select all four of them and click OK

  1. Select the Customization tab and check the Enable command prompt support (testing only) option and set the Windows PE Scratch Space (MB) to 256
  2. Click OK, On the Distribution Point Update Required dialog (presented after clicking OK); click No (we will do that in a moment)

Distribute the PXE Everywhere Boot Image Content

  1. Right-click the new PXE Everywhere Boot Image (x86) and select Distribute Content from the context menu to start the Distribute Content Wizard
  2. On the General page click Next
  3. On the Content Destination page click Add> Distribution Point and select 1ETRNCM.1ETRN.LOCAL and click OK. Click Next
  4. On the Summary page click Next
  5. Once the Wizard has completed, click Close

Update the PXE Everywhere Boot Image

Communication with the Management Point

When a client boots to Windows PE it must contact a Management Point to download the Task Sequence and start processing it. It therefore needs the details of the MP, including the certificate required for authentication. These details are stored in VARIABLES.DAT, which is an encrypted file containing simple "name=value" pairs. The file is located in the SMS\Data folder in Windows PE. 
A ConfigMgr PXE Service Point (PSP) generates the file dynamically in the RemoteInstall\SMSTemp folder and the client downloads it (to the SMS\Data folder) from here using TFTP along with the other boot files. The PSP will generate the file with details of the default MP of the SCCM site to which the PSP belongs – as the file is outside of the image, the same boot image can be used in any site.
PXE Everywhere is unable to use the same dynamic process and instead requires the VARIABLES.DAT file to be included in the Windows PE image. This is in fact exactly what the Task Sequence Media Wizard does when it is used to create bootable media (e.g. CD or USB stick) – the VARIABLES.DAT file is created by the Wizard (based on the current information retrieved from the database) and injected into the SMS\Data folder in the boot image. 
The following steps use a tool (UpdateBootImage.exe) installed with PXELite Central that automates the process of generating a temporary boot media, 'harvesting' the VARIABLES.DAT from that media then injecting it into the PXE Everywhere boot image created in the previous tasks.

1ETRNCM

  1. From the SkyTap Shared Drive shortcut on the desktop browse to 1E Nomad - Course Content\Nomad 7.0 Course Content\ and download and copy UpdateBootImageGUI 1.0.0.2.zip to C:\Temp right click and extract all

  2. To avoid typos in the long UpdateBootImage.exe command line, the UpdateBootImageGUI tool will be used to construct the command line. This tool is available for download from the Free Tools page on http://www.1e.com/free-tools. The UpdateBootImageGUI does not execute the UpdateBootImage.exe; it will simply create the command line based on the input and copies the command line to clipboard.
  3. Open a command prompt (Run as Administrator), switch to the C:\Temp\UpdateBootImageGUI 1.0.0.2 folder, type 1E.PS.UpdateBootImageGUI.exe and hit Enter. Leave the command prompt window open as we'll use it shortly
  4. In the SMSProvider Server field, type 1ETRNCM.1ETRN.LOCAL and hit the Tab key. Note that the Site Code field will now be populated with PS1
  5. Select PS1000xx – PXE Everywhere Boot Image (x86) from the Boot Image ID dropdown
  6. In the Distribution Points list, select 1ETRNCM.1ETRN.LOCAL
  7. In the Management Points field select http://1ETRNCM.1ETRN.LOCAL
  8. Note that the Certificate Expiry date defaults to one year from today. This may be changed as required in a production environment, but the default setting will be used in the lab.

  1. Click the Execute button. The following dialog box will be displayed showing the UpdateBootImage.exe command line that was generated and copied to the clipboard. Click OK to close this dialog box



    Note that the UpdateBootImageGUI tool uses the default install location for PXE Everywhere Central Server. If an alternate install location is used, simply edit the ExePath value in the 1E.PS.UpdateBootImageGUI.exe.config file to reflect the actual install location.
  1. Paste the command line into the command prompt window and hit Enter. This will take a couple of minutes to complete and will finish with Successfully updated boot image '\\1etrndc\ConfigMgrSource\BootImages\PXELite\i386\boot.wim'
  2. Close the UpdateBootImageGUI program

  3. UpdateBootImage uses the TsMedia.CreateBootMedia method to generate temporary boot media from which it extracts the VARIABLES.DAT file. This method mounts the .wim file defined in the specified boot image package (-BootImageId) from the DP (-DistributionPoints) to a temporary folder (Users\<user>\AppData\Local\Temp\1) on the computer running the tool. Due to changes in the latest ConfigMgr console, UpdateBootImage is unable to delete the temporary image. However, this does not impact the boot image actually being updated. The VARIABLES.DAT file is then extracted from this, and injected into the target image (-WimFileName). You can monitor the process in C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\AdminUILog\CreateTsMedia.log.
  4. From the Boot Images node of the ConfigMgr console, right-click the PXE Everywhere Boot Image (x86) and select Update Distribution Points. This will cause boot.PS1000xx.wim to be 'regenerated' and copied to the Distribution Point
  5. Navigate to \\1ETRNDC\ConfigMgrSource\BootImages\PXELite\i386 and note that boot.PSxxx.wim has been updated
  6. Click Close when the Distribution Point update is complete
  7. The boot image is now ready for use with PXE Everywhere. In the next exercise, you will deploy the PXELite Local component

Deploy PXE Everywhere

In this exercise, you will create the PXE Everywhere deployment application and then deploy it to the lab workstations using a Task Sequence. The task sequence includes the steps to stage the PXE Everywhere boot image onto the PXE Everywhere TFTP server.

Create PXE Everywhere deployment

1ETRNDC

  1. Browse to the E:\ConfigMgrSource\Software\1E\PXE Everywhere\3.2.0.56 folder
  2. Note that an x86 and an x64 folder have been created. Open the x86 folder and note the contents – the installer file, a CAB file and a transform (MST) file
  3. From the SkyTap Shared Drive shortcut on the desktop browse to 1E Nomad - Course Content\Nomad 7.0 Course Content\ and download copy PXELite.v3.1.300.5.zip to C:\temp right click and extract all then copy the PXELiteLocal-3.2.0.56.mst file into the E:\ConfigMgrSource\Software\1E\PXE Everywhere\3.2.0.56\x86 folder and choose the Replace the file in the destination option
  4. Just to reaffirm, this is not something that is required in a production environment. Since our VMware environment won't work with the block size that PXE Lite defaults to, we are swapping out an mst file that has the smaller block size defined so PXE Lite will work in the lab network.

1ETRNCM

  1. In the Software Library node of the ConfigMgr console, expand Application Management and select Applications
  2. Select the 1E PXE Everywhere 3.2.0.56 application and click on the Deployment Types tab at the bottom and note the Content ID of the PXE Everywhere x86 deployment type
  3. This Content ID is associated with the original transform file and we need to update this so the proper transform file is sent to the distribution point.
  4. Right-click on the PXE Everywhere x86 deployment type and select Update Content
  5. Click Yes in the dialog box that asks you if you are sure that you want to refresh the content
  6. In a moment, the Deployment Types tab will refresh and note that the Content ID has changed
  7. Navigate to Administration/Distribution Points right click 1ETRNCM.1ETRN.LOCAL and open properties, select the Content tab and select the 1E PXE Everywhere 3.2.0.56 Content and click Redistribute

Create the PXE Everywhere Deployment Task Sequence

At this point, we have created an application that can be used to deploy PXE Everywhere…well, EVERYWHERE! However, along with PXE Everywhere, we also need to distribute the boot image, so the PXE service has something to serve up. We achieve this by creating a simple Task Sequence that installs the PXE Everywhere application but also references the PXE Everywhere Boot Image. That way, we can deploy the Task Sequence with the option to Download all content before executing the task sequence and the boot image will be downloaded, using Nomad, to each of the PXE Everywhere workstations.

1ETRNCM

  1. From the Software Library node of the ConfigMgr console, open the Operating Systems node, right-click on Task Sequences and click on Create Task Sequence to launch the Create Task Sequence Wizard
  2. On the Create a New Task Sequence page, select Create a new custom task sequence and click Next
  3. On the Task Sequence Information page enter PXE Everywhere (x86 Boot Image) as the Task sequence name
  4. Click Browse to select the Boot image, choose PXE Everywhere Boot Image (x86) en-US, click OK and click Next on the Task Sequence Information Page
  5. On the Nomad Settings page, enable Nomad and set the Cache Priority to 5. Click Next
  6. On the Summary page click Next and close the wizard when it completes
  7. Right-click on the PXE Everywhere (x86 Boot Image) task sequence and select Edit
  8. Click Add > Software and select Install Application
  9. Change the Name of the task to Install PXE Everywhere
  10. In the Install the following applications section, click the New button, select the 1E PXE Everywhere3.2.0.56 application and click OK
  11. Click OK to close the PXE Everywhere (x86 Boot Image) task sequence

Deploy PXE Everywhere to all workstations


In this task, you will deploy the PXE Everywhere installation task sequence to all workstations in the lab environment.

1ETRNCM

  1. Right-click the PXE Everywhere (x86 Boot Image) task sequence and select Deploy to launch the Deploy Software Wizard
  2. On the General page click Browse… next to the Collection field and select the Lab Workstations Collection. Click OK on the Select Collection dialog box and then click Next
  3. On the Deployment Settings page change the Purpose to Required and click Next
  4. On the Scheduling page create a new Assignment Schedule with the current time (default). Change the rerun behavior to Always rerun program and click Next
  5. On the User Experience page, select Allow users to run the program independently of assignments and click Next
  6. On the Alerts page click Next
  7. VERY IMPORTANT STEP BELOW!
  8. On the Distribution Points page, select the following option
  9. Download all content locally before starting task sequence

  10. Click Next

  11. This option ensures that Nomad (installed on the target client) will be used to download the PXE Everywhere content. As the task sequence is configured to use the PXE Everywhere Boot Image (x86), the boot image is included in the content that will be downloaded – or pre-cached – using Nomad.
  12. On the Summary page click Next
  13. Close the Wizard when finished
  14. Right click on the Lab Workstations collection and execute the Download Computer Policy task to speed up the deployment

Review the PXE Everywhere installation on 1ETRNW71

1ETRNW71

  1. Log on to 1ETRNW71 as 1ETRN\User. Launch Software Center, and rerun the PXE Task sequence
  2. Trace the download of the PXE Everywhere 3.2.0.56 application and the PXE Everywhere Boot Image (x86) in the NomadBranch.log
  3. Open C:\Program Files\1E\PXE Lite\Server and observe the PXE Everywhere binary files
  4. Open C:\ProgramData\1E\PXELite\TftpRoot. In this folder, the Boot folder includes the Microsoft boot files and the Images folder includes the boot image that was distributed with the PXE Everywhere Task Sequence
  5. Open the C:\ProgramData\1E\PXELite\TftpRoot\images\PS1000xx folder and verify that boot.PS1000xx.bcd and boot.PS1000xx.wim exist
  6. If the two files are not there, stop and let the instructor know immediately!
  7. Note the registry key HKLM\Software\1E\PXELiteServer includes a handful of configuration parameters, including the URL for the PXELite Central web service, the location of the local TFTP root folder and the debug logging settings
  8. By default, the PXELiteServer log file would be located in C:\ProgramData\1E\PXELite. The transform applied to this installation changed the log file path to C:\Windows\CCM\Logs. This keeps all the ConfigMgr, Nomad and PXELite log files together for ease of troubleshooting
  9. Ensure the 1E PXE Lite Server service is running (repeat the above on 1ETRNW101

Provision a 'New Computer' using PXELite

In this exercise, you will rebuild 1ETRNW73 by PXE booting and applying the Nomad Windows 10 Ent OS Deployment Task Sequence to it.

Change Boot Image for Nomad Windows 10 Ent Task Sequence

1ETRNCM

  1. The existing task sequence needs to be modified to use the new PXELite Boot Image
  2. In the ConfigMgr console open the Software Library workspace, expand the Operating Systems node, then select Task Sequences
  3. Right-click the Nomad Windows 10 Ent Task Sequence and select Properties
  4. On the Advanced tab, change the boot image to PXE Everywhere Boot Image (x86) 10.0.14393.0 en-US
  5. Click OK to close the Task Sequence Properties dialog box

Create a New Computer Collection and Deployment

1ETRNCM

  1. From the Assets and Compliance workspace create a new Device Collection named New Computer Deployment with Lab Workstations as the Limiting Collection and add 1ETRNW73 to this Collection
  2. Open the Software Library workspace, expand the Operating Systems node and select the Task Sequences node. Right-click the Nomad Windows 10 Ent task sequence and select Deploy to start the Deploy Software Wizard
  3. The Task Sequence field is pre-populated with Nomad Windows 10 Ent. Browse to select New ComputerDeployment as the target Collection then click Next
  4. When you click the Browse button to select a collection, you will be presented with the high risk deployment dialog box – Click OK
  5. On the Deployment Settings page ensure the Purpose is set to Available and from the Make available to the following drop down list, select Only media and PXE. Click Next
  6. On the Scheduling click Next
  7. On the User Experience page click Next
  8. On the Alerts page click Next
  9. On the Distribution Points page, select the following options and click Next
  10. Download content locally when needed by running task sequence (default)


  11. On the Summary page review the details and click Next
  12. Close the wizard when it completes

Open the PXELite Local log file

As PXELite dynamically elects a PXELite Local computer to respond to a PXE request, we will not know which of the workstations will respond in a production environment. In this task, you will open the PXELiteLocal log file on 1ETRNW71 because 1ETRNW73 and 1ETRNW101 are the only two other systems on their subnet. You can observe the log on 1ETRNW101 as 1ETRNW73 starts up and requests a PXE boot image.

1ETRNW101
  1. Log on to 1ETRNW101 and open C:\Windows\CCM\Logs\PXELiteServer.log

Boot 1ETRNW73 to begin the build

1ETRNW73

  1. Logged into 1ETRNW73 as 1ETRN\User, restart 1ETRNW73 and repeatedly tap the F12 key to request network boot as soon as it begins the reboot process. Stop when you see the machine begin to PXE boot and request a DHCP address
  2. Watch for prompt to press F12 a second time and press F12 when prompted. If you miss it, you'll have to hit the Ctrl-Alt-Del button in the SkyTap tool bar to try again
  3. The second F12 prompt is because we configured the deployment as Available rather than Required. This configuration eliminates the need for having to clear required PXE deployments in the cause of a failed or aborted PXE boot.
1ETRNW101

  1. On 1ETRNW101, monitor the PXELiteServer.log (opened in the previous task) and observe that PXELite Local performs an election first to determine which workstation will query PXELite Central to determine if there is any boot image to serve to the PXE client (1ETRNW73). Once a positive response is returned, a second election is initiated to determine which PXELite Local server will serve the boot image to the PXE client



  1. On the machine which wins the election, review the log to see the boot image being downloaded from the peer (1ETRNW101)

1ETRNCM

  1. On 1ETRNCM, open C:\ProgramData\1E\PXELite\WebService.log. This is the log file for the PXELite Central web service running on 1ETRNCM
  2. Observe how the elected PXELite local computer requests PXELite Central to query the ConfigMgr database (using the 1E_GetPXEAction stored procedure) to determine if there are any PXE-enabled advertised task sequences for the 1ETRNW73 (identified by its MAC address). PXELite Central will return the results from this query to the elected PXELite Local computer, which will then determine whether to respond to the PXE client (1ETRNW73) with a boot image or an abortpxe.com.

1ETRNW73

  1. Once Windows PE has started on 1ETRNW73, a Task Sequence Wizard will open. Click Next to continue
  2. The Nomad Windows 10 Ent task sequence will be displayed in the list of available task sequences (it should be the only task sequence in the list). Click Next to start the task sequence
  3. You may hit the F8 key to open command prompt and use CMTrace to watch the log files or you can view the share connectivity and log activity on 1ETRNW101
  4. The purpose of this lab was to learn about PXE Lite, so at this stage, you can let the task sequence run, there's nothing else to see. The same exact task sequence which you deployed earlier will now run its course

Lab Summary

In this lab, you have learned how to implement PXELite to enable any workstation in a given subnet to serve a Windows PE image to a PXE client. This has included preparing the boot image for PXELite, creating a task sequence to install PXELite and establish the necessary files, including the boot image, in the TFTP folder on the PXELite Local computer. This task sequence is then advertised with the option to download all content before starting, which ensures that the boot image is downloaded to be made available when needed.

Finally, you observed the end-to-end process, as the PXE client boots, the PXELite Local computers elect a PXE server to respond, which then requests confirmation from the PXELite Central web service that there is a task sequence advertised to the client and finally serves the boot image if required.