The Nomad PBA Task Sequence steps are not designed for use with offline USMT or WinPE.
The -NMDS_POLL command-line option for the NomadPackageLocator.exe tool cannot be used in WinPE.
The -NMDS_<command> command-line options for NomadBranch.exe have not been tested in WinPE so their behavior might be unpredictable in that environment.
NomadBranch.exeservice command-line. When run, it places a request for a network share and size associated with it. It must only be used within a task sequence.
If configuring PBA command lines manually and using NomadPackageLocator.exe (NOT NomadBranch.exe) to run within a task sequence environment, if the task sequence variable 1EWSA_USMTSizeInMB is set, then the value assigned to this variable is used in the poll. This variable is as part of WSA deployments if user folder backup has been enabled. If using NomadBranch.exe in the command line, the variable is ignored.
It takes the following format:
- <name> is used to identify the shared cache and must be used in the rest of the PBA NMDS commands. This may be up to 40 characters, consisting of 0-9 and A-Z characters, and is case insensitive. Subsequent calls to NMDS_POLL with the same name will return the same share details as the first call.
- <size> is the number of Megabytes required for the shared cache.
- <ignore_offer> is used to specify the name of a PBA host that already has the user data cached. Thus when NMDS_POLL is run a second time with the same <name> and <size> values as on the first call, it effectively allows a second PBA host to offer its services as a cache. In this way user state can be saved to two caches, for increased resilience. On restore, the first cache that responds to the NMDS_FIND request will be the one used.
Requesting a cache
When NMDS_POLL is run, the Nomad machines on the local subnet responds to the request under the following conditions:
- PBA is enabled on the machine
- The machine has sufficient PBA allocation to cope with the requested share size
The machine has sufficient disk space to cope with the requested share size, A machine with less than 5% available disk space cannot respond to PBA requests.
- The machine has spare available connections for the share
Domain controllers cannot be used for PBA data sharing. All the machines that satisfy these conditions will respond and the requesting machine picks the host that has the largest percentage of available disk space.
Creating the cache
The winning machine creates a share and user to service the request. The share and user is maintained until:
- Prior to running NMDS_COMPLETE, the timeout set in the Nomad PreCompleteTimeoutHours registry value has been reached. This defaults to 3 hours.
- After running NMDS_COMPLETE, the timeout set in the Nomad PostCompleteTimeoutHours registry value has been reached. This defaults to 7 days.
- The NMDS_DELETE command is issued for the <name> set in the NMDS_POLL command.
When these conditions are met, the share, contents and associated user is deleted.
When Nomad is configured to use Peer copy over HTTP or HTTPS a file share is not created. In this scenario the storage is exposed to peers through the HTTP server implemented in Nomad for sharing its cache. A local user account is created to secure access to the migration data store through Windows authentication.
When Nomad is configured to use Certificate-based Client Authentication, a local user account is not created. Access to the user state store is authenticated using a client certificate.
Storing the result
This is not necessary if
NomadPackageLocator.exe is used.
NomadBranch.exe is used, the details for the winning share can be set into a variable %NMDS_REMOTE% using the
TSEnv2.exe function. When integrating with an OSD task sequence, the
%NMDS_REMOTE% must be used to transfer the details to the
OSDStateStorePath task sequence variable, otherwise the user data will not be stored on the NMDS host.
For example, the following command creates a shared cache called acme1234 with 10 Mb of disk space and sets the
%NMDS_REMOTE% with the details of the created share.
NomadPackageLocator.exe sets up task sequence environment variables automatically. The equivalent of the above command is simply:
Fixing the contents and disconnecting
Once created, the share will only be kept for 3 hours. When you have finished copying items to the share, issue the NMDS_COMPLETE command to disconnect from it and fix the contents for 7 days. The defaults for the pre- and post- complete timeouts are configured using the Nomad PreCompleteTimeoutHours and PostCompleteTimeoutHours registry values on the machine where the share is being hosted.
Task sequence environment variables
NMDS_POLL uses the following task sequence environment variables:
|Set to the value of the |
|Set to the path to the share that USMT should use for storing migrated data.|
|Set to the same value as |