Exercise Overview:

Preparing for OS Deployments

Preparing OSD objects for use with Nomad

In this exercise, you will prepare the existing boot image, create a new package for the ConfigMgr client, and make a copy of the task sequence template that will be used to leverage Nomad throughout the OS Deployment process.

Remove Nomad Workrate Restrictions

From this point forward, we no longer need to limit the workrate for Nomad downloads for Applications or Software Updates. In this task, we will remove the Nomad workrate limitation in the Client Settings Policy


  1. Select Client Settings from the Administration workspace in the ConfigMgr console
  2. Click the 1E Nomad button in the ribbon and select Nomad Properties
  3. On the Application Management page, remove 60 from the Work Rate (%) field, then clear the checkbox for Work Rate (%)
  4. Repeat on the Software Updates page and click OK
  5. The clients will pick up this settings change within the next 5 minutes, so no additional action is required. The default Work Rate of 80 will apply.

Prepare the boot image

The Nomad Tools (installed in Installing the Nomad Tools for OSD) installed a number of Nomad files that need to be added to the OSD boot image to enable Nomad functionality during the Windows PE stages of an OS deployment. As the files were defined in OSDINJECTION.XML by Nomad Tools installer, simply updating the boot image on the distribution point will ensure these files are added to the boot image.


  1. From the ConfigMgr Console, open the Software Library workspace, expand the Operating Systems node and select Boot Images
  2. Right click Boot image (x86) and select Update Distribution Points

  3. Click Next in the Wizard to start the update and click Close when completed (this will take a couple of minutes to complete)
  4. Confirm that the boot.PS10003F.wim file has been updated in \\1ETRNCM\SMS_PS1\osd\boot\i386
  5. Confirm that the boot image has been updated on the Distribution Point by checking the Content Status in the Monitoring workspace (The Last Update Date/Time should be the current date and time)

Create a new Package for the ConfigMgr client

The Configuration Manager Client Package is created when the Configuration Manager site is created. If you open the properties for this Package, you will notice that all options are greyed out – the package is locked down and cannot be modified. This also prevents us from enabling Nomad for the package, which we need to do to ensure Nomad downloads the content when we install the client in a Task Sequence. 

We therefore need to create a duplicate Configuration Manager Client package so that Nomad can be enabled and used in the Task Sequence, which you will now do.


  1. In the ConfigMgr console open the Software Library workspace and click on the Packages node
  2. Select the Configuration Manager Client Package and click the Properties button in the ribbon
  3. Click the Data Source tab in the Configuration Manager Client Package Properties dialog
  4. Copy the path under Source Folder (\\1ETRNCM.1ETRN.local\SMS_PS1\Client)

  5. Click Cancel to close the Configuration Manager Client Package Properties dialog
  6. Click the Create Package button to start the Create Package and Program Wizard
  7. On the Package page, enter ConfigMgr Client (Nomad) as the name. Check This package contains source files, click the Browse… button, and paste the path copied from the Configuration Manager Client Package into the Source Folder field. Click OK to close the Set Source Folder dialog. Click Next to continue
  8. On the Program Type page select Do not create a program and click Next
  9. This package is just a container for the source files required to install the Configuration Manager Client during a Task Sequence. As such, no Programs are required.
  10. On the Nomad Settings page, select Enable Nomad and click Next
  11. On the Summary page, review the settings then click Next
  12. When the wizard completes click Close
  13. Right-click the ConfigMgr Client (Nomad) package and select Distribute Content to start the Distribute Content Wizard
  14. Use the Distribute Content Wizard to add the content to the 1ETRNCM Distribution Point as seen in previous exercises

Create a copy of the current Task Sequence


  1. From ConfigMgr Console open the Software Library workspace, expand the Operating Systems node and select the Task Sequences node
  2. Right-click the Windows 10 Ent – Basic ConfigMgr task sequence and select Copy
  3. Right-click the duplicated task sequence and select Properties
  4. Rename the task sequence to Nomad Windows 10 Ent and clear the Description field
  5. On the Nomad tab, select Enable Nomad and click OK
  6. From the Packages node, double-click the VMWare Tools Package to view the Package Properties and select the Nomad tab
  7. Note that Enable Nomad has been checked automatically – this Package is included in the Task Sequence (i.e. it is a reference package), and as we enabled Nomad on the Task Sequence, all existing reference packages will automatically have Nomad enabled. Any new reference packages added afterwards will have to have Nomad enabled on them. This can be done by either selecting Nomad on the new package or by toggling the Enable Nomad checkbox in the task sequence's properties.

Redefine password to join the domain

As this is a copy of an existing Task Sequence, the password defined for joining the domain will not have been copied. In this task, you will redefine the password to ensure the computer can join the domain successfully.

  1. Right-click on the Nomad Windows 10 Ent task sequence and select Edit
  2. In the Nomad Windows 10 Ent Task Sequence Editor, select the Apply Network Settings task
  3. In the Properties tab, click Set…next to the account (1ETRN\administrator) used to join the domain
  4. Enter and confirm the password (Passw0rd) and click OK, then click Apply

Stage the Nomad Installation Files

When a machine boots into the new operating system, any requested content will attempt to launch SMSTSNomad.exe (alternate download program) to retrieve content. Because Nomad has not been installed yet, this file will not be present. We need to get the Nomad installation files to the hard drive prior to rebooting into the new operating system.

  1. In the Nomad Windows 10 Ent Task Sequence, in the Device Drivers group, select the Apply VMware Driver Package task
  2. Click Add > 1E Nomad and select Stage 1E Client Package
  3. Click Browse, select the 1E 1E Client x86 package and click OK
  4. Be sure to select the x86 package. We're working on a 32 bit platform, the x64 package will fail!
  5. Click the Move Down button to move this step out of the Device Drivers group
  6. Click Apply to save the task sequence

Replace the Configuration Manager Client Package

In this task, you will configure the Setup Windows and Configuration Manager task to use the new Nomad-enabled Configuration Manager Client package created earlier

  1. In the Nomad Windows 10 Ent Task Sequence Editor select the Setup Windows and Configuration Manager task
  2. In the Properties tab, click the Browse… button to the right of the Package field, select the ConfigMgr Client (Nomad) package and click OK
  3. Click Apply
  4. Click OK to close the Task Sequence Editor

Precache Content with Nomad

Pre-caching allows administrators to pre-load content onto specified machines directly from the Configuration Manager console. This enables downloads to be available on the branch prior to a deployment taking place, which can be very useful in large-scale deployment scenarios.

Nomad pre-caching is directly integrated with the Configuration Manager Console and is fully compliant and works with Role Based Access in Configuration Manager. The Nomad pre-caching Wizard is accessed in the Configuration Manager Console using a right-click menu option (called Pre-cache content using Nomad) on the following types of content:

  • Applications
  • Packages
  • Driver packages
  • Operating system images
  • Operating system upgrade packages
  • Boot images
  • Task sequences

In this exercise, you will learn to use the Pre-cache content using Nomad feature to precache the required OSD Task Sequence content to the remote site in preparation for deploying the OS Deployment task sequence. This ensures that content will be available on the local network for the machine executing a task sequence.

In this lab, we will focus on preparing the OSD objects required for Nomad integration and precaching the content that is specifically referenced in the Task Sequence.

Create Pre-cache Target Collection

In this task, we will create a ConfigMgr Device collection that contains the target systems to host the pre-cached OSD content.


  1. From the Assets and Compliance node of the ConfigMgr console, select Devices
  2. Select 1ETRNW101, right-click on it and select Add Selected Items > Add Selected Items to New Device Collection
  3. On the General page of the Create Device Collection Wizard, enter Nomad OSD Pre-cache for the name, select Lab Workstations as the limiting collection and click Next
  4. On the Membership Rules page, note that a direct membership rule has been created and click Next
  5. On the Summary page, click Next
  6. Click Close when the wizard completes
  7. Select Device Collections and refresh the view until the member count for the Nomad OSD Pre-cache collection changes to 1

Create a Pre-cache Job for a Task Sequence

In this task, a Nomad pre-cache job will be created using the context menu tool installed with the Nomad Admin UI Extensions. This pre-cache job will be based on the Nomad Windows 10 Ent task sequence and will contain all the content referenced in the task sequence.


  1. In the Software Library node of the ConfigMgr console, expand Operating Systems, select Task Sequences

  1. Select the Nomad Windows 10 Ent task sequence and click on the References tab at the bottom of the console. The referenced objects below will be included in this pre-cache job

  1. Right-click on the Nomad Windows 10 Ent task sequence and select Pre-cache content using Nomad to launch the Nomad Pre-caching wizard
  2. On the Targeting page, select the Nomad OSD Pre-cache collection and click Next
  3. It is important to note that although we are using a collection as a target, the collection membership will be parsed for machines and the pre-cache job will be targeted to the machines themselves.

    On the References tab, note the two pre-cache options available. The default option, Pre-cache all references and automatically pre-cache references added in the future, supports the Dynamic Pre-caching feature added in Nomad 6.2. The second option, Pre-cache only the references I select below and ignore those added in the future, was the default behavior prior to Dynamic Pre-caching

  4. Select the second option and observe how each reference object may be individually selected, or you may choose the Select All option. Select the first (default) option again and click Next
  5. Click Apply on the Summary page
  6. Observe the message displayed on the Progress page and when the job completes, click Finish on the Completion page

Observe the Results of the Pre-cache Job Creation

Once the Pre-cache jobs are initiated from the ConfigMgr console, a number of actions take place on the ActiveEfficiency server. We will look at the results by running a few SQL queries against the ActiveEfficiency database. The queries and commands are all in the SkyTap Shared Drive shortcut on the desktop and browsing to 1E Nomad - Course Content\Nomad 7.0 Course Content\CommandLinesAndQueries.txt file. SDownload and copy the file to C:\Temp and use it from that location.


  1. On 1ETRNAP, open SQL Server Management Studio, select the ActiveEfficiency database and click New Query

  2. All of the queries used in this task are in the CommandLinesAndQueries.txt file via the SkyTap Shared Drive shortcut on the desktop and browsing to 1E Nomad - Course Content\Nomad 7.0 Course Content\.
  3. To display the Nomad Pre-cache jobs created in the ConfigMgr console:

  4. select * from ContentDistributionJobs
  5. This is the pre-cache job we just created in the ConfigMgr console. You can see that the query result contains DeviceGroupID and a ContentGroupID column. DeviceGroups map to the collections in ConfigMgr that are used to provide a list of systems for which the pre-cache job will be targeted. ContentGroups refer to the items that will be pre-cached
  6. To see the DeviceGroups, execute the following query:

  7. select * from DeviceGroups

    Note the Name (Collection Name) and externalid (Collection ID) fields. It's possible that the Name and UserData columns may return as NULL. If that is the case, we just need to sync the ConfigMgr data into the ActiveEfficiency database. This will happen automatically every 30 minutes, but it can be forced to sync manually.
  8. Open a command prompt (Run as administrator), navigate to C:\Program Files (x86)\1E\ActiveEfficiency\Service and enter the following command
  9. ServiceHost.exe -NomadSyncAll
  10. Execute the previous query again. Note the Name is now populated with name of the collection
  11. To see the machine in the DeviceGroup, run:
  12. select * from DeviceGroupMembership
  13. While this information is good, DeviceIDs are not the easiest for us to read, so to make this more clear, run this query:
  14. select DGM.DeviceGroupId, DEV.HostName 
    from DeviceGroupMembership DGM
    join Devices DEV on DGM.DeviceId = DEV.Id
    Remember, we only added one machine, 1ETRNW101, to the collection when we created it.
  15. To get a better look at the content associated with the pre-cache job, run:
  16. Select * from ContentGroups
    Note the Name and ExternalId columns. These contain the Package/Application/Task Sequence, etc. Name and the Package/Application/Task Sequence, etc. ConfigMgr ID. Note the Id associated with the Nomad Windows 10 Ent task sequence and the number of results returned by this query.
  17. To see how the content is associated as being referenced items in the task sequence, execute:
  18. select * from ContentGroupReferences
    Note that Id associated with the task sequence is the ContentGroupId and there is a row for each referenced item. There will be one less row returned that the previous query because the task sequence is not counted as a reference.

Managing Pre-cache Jobs in ConfigMgr

The only role that ConfigMgr plays in the Nomad Pre-caching feature is to allow for the creation of Pre-cache jobs and to have collections that are used to populate a list of machines in ActiveEfficiency uses to target the Pre-cache jobs. To allow an administrator to easily view and delete Pre-cache jobs, the Nomad Pre-caching Jobs node was added to the Monitoring workspace of the ConfigMgr Console. In this task, we will observe the Pre-cache jobs created in earlier.


  1. Click on the 1E Nomad > Pre-caching Jobs node in the Monitoring workspace (left pane) of the ConfigMgr Console(all the way at the bottom)
  2. Observe the pre-cache job in the list for the Task Sequence
  3. Right-click on the job and note that the only option is Delete
  4. Do not delete the pre-cache job.
    Deleting the job removes the pre-cache job from ActiveEfficiency as well as from the ConfigMgr console, however content is not deleted from the source machines if the job has already been executed

Dynamic Pre-caching

We have a pre-cache job currently targeted at a collection that contains one system, 1ETRNW101. With Dynamic Pre-caching, when there is a change in the membership of the target collection, the ActiveEfficiency DeviceGroup will be updated and the new computer will pick up the pre-cache job the next time it polls ActiveEfficiency for pre-cache jobs after the data is synced from ConfigMgr to ActiveEfficiency.

In this task, we will add 1ETRNW102 to the Nomad OSD Pre-cache collection and observe the results.


  1. From the Devices node of the Assets and Compliance workspace, right-click on 1ETRNW102 and select Add Selected Items > Add Selected Item to Existing Device Collection
  2. Select the Nomad OSD Pre-cache collection and click OK
  3. Select the Device Collections node and refresh the view on the Nomad OSD Pre-cache collection until the Member Count increases to 2


  1. Open a command prompt and change to the C:\Program Files (x86)\1E\ActiveEfficiency\Service directory
  2. Run the following command to force ActiveEfficiency to sync from ConfigMgr:

  3. ServiceHost.exe -NomadSyncAll
  4. Switch to SQL Server Management Studio and execute the following query:
  5. select DGM.DeviceGroupId, DEV.HostName 
    from DeviceGroupMembership DGM
    join Devices DEV on DGM.DeviceId = DEV.Id
  6. Note that 1ETRNW102 was added to the membership of the DeviceGroup

Initiate and Monitor the Pre-cache Job

At this point, we have a Nomad Pre-cache job (ContentDistributionJob) targeted at 1ETRNW101 and 1ETRNW102 stored in ActiveEfficiency. By default, Nomad agents are configured to poll ActiveEfficiency for ContentDistributionJobs every 24 hours. In a production environment, this works fine as the precaching of OSD content is a task that is done well ahead of rolling out the operating system deployments. In our lab environment, we do not really want to wait that long, so we will force the Nomad agent to poll for ContentDistributionJobs using a NomadBranch.exe command line.

The polling interval is configurable via the Nomad settings which reside in the registry of Nomad agents. The registry value is HKLM\Software\1E\NomadBranch\PrecachePollMinutes. It defaults to 1440 minutes, which is 24 hours.

1ETNW101 and 1ETRNW102

  1. Log on to 1ETRNW101 as 1ETRN\User
  2. Open the NomadBranch.log in C:\Windows\CCM\Logs
  3. Open a command prompt (run as administrator) and switch to the C:\Program Files\1E\Client\Extensibility\NomadBranch directory
  4. Run the following command:
  5. NomadBranch.exe –precache
  6. Switch to the open log file and observe the activity
  7. You may have to pause the log file after it starts so you can stop the scrolling

  1. Do a search for GetDownloadNotifications and you will see where the Nomad agent gets the notification that there are downloads available as shown in the figure below:

  1. For each ContentID in the list, you will see activity like the following:

  1. From this point forward, the download will behave like any other Nomad download – it will trigger an election, elect a master and download the content

  2. Because this is a Nomad download not triggered by the ConfigMgr client, it will not notify the ConfigMgr client of any progress or link the content to the CCM Cache.
  3. Repeat steps 76-84 on 1ETRNW102

  4. If the Nomad Event Viewer is still open on 1ETRNW71, you can observe the downloads and see 1ETRNW102 pulling content from 1ETRNW101 because Single Site Download is enabled. You can also validate this in the nomadbranch log file. Simply do a search for 1ETRNW101.
    The pre-cache process will take a while to complete as we are pulling down about 3 GB of content. You can go ahead and proceed with the next Lab, we will verify that the pre-cache job has finished downloading before deploying the new operating system in the next lab

Lab Summary

In this lab, you have learned how to prepare the objects required for integrating Nomad into and OSD Task Sequence. We updated the boot image to make sure the Nomad files were inserted. We created a new ConfigMgr client package so we could enable Nomad and added a step to the task sequence to stage the Nomad agent installation files.

We then moved on to using the Nomad Pre-cache feature to populate our remote subnets with the content required to support the OS Deployment.

Next Page
Ex 6 - Nomad 7.0 - Using Nomad for an OSD Refresh