vSMP
Introduction
Adaptiva OneSite includes a feature called Virtual State Migration Points or Virtual SMP. The Virtual SMP offers an efficient alternative to the ConfigMgr State Migration Point role. Much like OneSite enables the elimination of secondary sites and distribution points, Virtual SMPs make use of the revolutionary OneSite Virtual SAN, the Caching File System, and Peer-to-Peer technologies to enable the elimination of State Migration Points from ConfigMgr environments.
Virtual SMP tasks are integrated directly into the ConfigMgr Task Sequence UI for seamless administration and operation. Deep integration is also provided with ConfigMgr Computer Associations, enabling the use of OneSite's Virtual SMP as a simple replacement for potentially hundreds of physical SMP servers.
Features
Peer state storage - State data is saved in the OneSite Virtual SAN and the Adaptiva Caching File System. By default, state stores are "pinned" to the cache, so that they are not automatically deleted in the event of low disk-space conditions.
State store redundancy - Multiple copies of state data can be stored, so that if one copy disappears or goes offline, another is available. Additionally, if no state stores are online during the restore process, OneSite will wake up a client that has hosted the store.
Storage lifetime control - Allows space allocated for state stores to be freed after a specified lifetime.
Integration with Config Manager Computer Association functionality - Publication of a state store can be linked to a Config Manager Computer Association object.
Zero peer impact - Peer machines which provide hosting for the Virtual SMP state store will not see any disk space utilization or increased CPU utilization because of the caching file system, extensive load leveling, and advanced host selection algorithms performed by Adaptiva.
Concepts
State store
A state store is a combination of free space that exists on participating peer hosts, and all the metadata and settings that were specified during its creation and subsequent maintenance (e.g., expiration and disuse expiration, required host count, desired host count, etc).
Among other metadata, each state store contains a list of participating hosts, a share name, and a UNC path that may be used to store and retrieve files to and from the state store.
Redundancy and Replication
State stores are fundamentally designed to exist on multiple participating hosts and are geared towards redundancy amongst the participating hosts. Data may be written to one of the participating hosts, usually using the UNC path that is present in the state store's metadata, and then the Virtual SMP may be requested to perform replication, which places copies of data on all the remaining hosts.
User State is stored in its entirety on each participating host. The data is never divided between hosts.
Trimming
At the time state stores are created it is not clear exactly how much space will be required to store the USMT data for a particular user, but an initial size must be specified. Once the USMT capture step has completed and the store has been populated with data, if the data is less than the allocation then the store can be "trimmed," so that the store only uses the actual required space.
Pinning
Pinning a state store prevents the Adaptiva client from deleting that content to free up space. The Adaptiva File Caching system is an intelligent system involving clients that are in constant communication with each other. The clients keep track of how many copies of each piece of content exist on their subnet or at their location, and a client will use this information in making decisions about what pieces of content can be deleted from its own cache if the user needs more disk space.
Publication and Discovery
State stores are designed to survive for the entire duration of the expiration interval which was specified during their creation. The machine that creates the state store may reboot multiple times, and may be formatted, renamed, or completely retired, without affecting the longevity of the state store itself.
To allow a state store to be used in scenarios where the store is created on one machine during USMT capture and needs to be accessed from a different machine during USMT restore, an elaborate publication and discovery system has been built into OneSite's Virtual SMP.
This process has also been integrated with ConfigMgr Computer Associations, allowing Virtual SMPs to be used as replacements for physical SMPs.
Publication
Publication is the process by which Adaptiva clients are made aware of OneSite objects in the Adaptiva Peer-to-Peer system. The following data fields are published at the time of creating a state store:
Source machine's MAC address
Source machine's SMBIOS ID
Target machine's MAC address
Target machine's SMBIOS ID
Allocation ID
For ease of use, the "OneSite -- Create State Store" task sequence step automatically determines and populates the values of all these data fields.
If the "Publish state store for source computer in the computer association" option is selected:
Selecting this option makes the state store discoverable using the ConfigMgr computer association for this source machine. Usually used in a "Replace" scenario moving from one machine to another.
Source machine's MAC address - the MAC address of the machine where the "Create" custom task sequence step is running is stored in this field.
Source machine's SMBIOS ID - the SMBIOS ID of the machine where the "Create" custom task sequence step is running is stored in this field.
Target machine's MAC address -- the target machine's MAC address is automatically obtained from the computer association whose source MAC address and source SMBIOS ID match the values for the machine where the "Create" custom task sequence step is running. If no such computer association exists, this value is left blank.
Target machine's SMBIOS ID - target machine's SMBIOS ID is obtained automatically from the computer association whose source MAC address and source SMBIOS ID match the values for the machine where the "Create" custom task sequence step is running. If no such computer association exists, this value is left blank.
Allocation ID - an automatically generated GUID is used during creation, and a blank value is used for matching during find.
If the "Publish state store for target computer in the computer association" option is selected
Selecting this option makes the state store discoverable using the ConfigMgr computer association for this target machine. Usually used when performing a "Wipe & Load" on the same machine.
Source machine's MAC address - source machine's MAC address is obtained automatically from a matching computer association, if one exists, else left blank.
Source machine's SMBIOS ID - source machine's SMBIOS ID is obtained automatically from a matching computer association, if one exists, else left blank.
Target machine's MAC address - local machine's MAC address is used.
Target machine's SMBIOS ID - local machine's SMBIOS ID is used.
Allocation ID - an automatically generated GUID is used during creation, and a blank value is used for matching during find.
If the "Publish state store ID specified in the following task sequence variable" option is selected:
Selecting this option makes the state store discoverable via the Allocation ID field, which will be populated with the value stored in the specified task sequence variable. With this option, the Allocation ID field is the only field whose value will be populated during publication.
Source machine's MAC address - left blank.
Source machine's SMBIOS ID - left blank.
Target machine's MAC address - left blank.
Target machine's SMBIOS ID - left blank.
Allocation ID - the value stored in the specified task sequence variable is used for publication. This method must be used during the find operation.
Discovery
At the point in the task sequence when user state data will be restored, the state store containing that data must be discovered.
At the time it was created, the state store was published in the Adaptiva Peer-to-Peer system using the publication fields described above. It is possible that some of the publication fields were left blank,
depending on which publication option was specified in the "Create" custom task sequence step and whether an ConfigMgr computer association was found.
For this reason, the Search Parameter option that is specified in the "Find" custom task sequence step should correspond with the Publication option that was specified in the "Create" custom task sequence step.
For example, if the if the "Publish state store for source computer in the computer association" option was used during the "Create" custom task sequence step, then the "Find state store for source computer in the computer association" option should be specified during the "Find" custom task sequence step.
Deletion
Once user state data has been restored, the state stores containing that data can be safely deleted. Deletion can take place in one of two ways:
Explicitly, by use of the "OneSite -- Delete State Store" custom task sequence step.
Automatically, by means of the Storage Expiration parameter specified in the "Create" custom task sequence step. For automatic deletion the "Delete" custom task sequence step would not be used, and the state store would be allowed to expire.
Installing and Enabling OneSite Virtual SMP
Minimum Requirements
Adaptiva OneSite Virtual SMP works with all currently supported versions of Configuration Manager.
Installation
Installation of Virtual SMP is part of the OneSite installation process. By installing OneSite Server, you have automatically expanded the options that are available to you in the Config Manager Task Sequence Editor. If the ConfigMgr console is open during the installation of OneSite, the tasks may not be available until the console is relaunched.
To use the OneSite Virtual SMP custom task sequence extensions in a ConfigMgr console running on a machine other than the site server, simply install the Adaptiva Workbench on that machine.
Enablement
To enable the Virtual SMP feature:
In the Adaptiva Admin Portal, open OneSite Anywhere.
Expand Settings > Virtual SMP Settings and toggle ON Enable Virtual SMP.
Toggle ON Use All Devices or click Browse to select a collection of devices.
Using Adaptiva OneSite Virtual State Migration Point
Using Microsoft's USMT tool in a ConfigMgr Task Sequence usually involves four task sequence steps for capturing and restoring user files and settings:
Request State Store
Capture User State
Restore User State
Release State Store
Of these, Request State Store and Release State Store can utilize a physical State Migration Point server and are the steps that will be replaced with the custom task sequence steps supported by OneSite Virtual SMP.
Sample Config Manager Task Sequence for use with physical State Migration Points
A task sequence that includes USMT state migration steps may look something like the image below. The steps that will be replaced in this task sequence by OneSite Virtual SMP custom task sequence steps are highlighted:

Using Virtual SMP Custom Task Sequence Steps in a Task Sequence
OneSite extends the ConfigMgr Task Sequence editor by making eight new custom task sequence steps available. All of the OneSite Virtual SMP Custom Task Sequence steps can be run in either a standard Windows operating system environment or in the Windows Pre-installation (WinPE) Environment.
The new OneSite Virtual SMP steps are:
Create State Store
Pin State Store
Replicate State Store
Trim State Store
Find State Store
Delete State Store
Is Machine a Host
Wait Until Not a Host
Sample Config Manager Task Sequence for Use with OneSite Virtual SMP
The sample task sequence shown earlier, modified to use OneSiteDownloader and OneSite's Virtual SMP, might look something like the example below. The OneSite Virtual SMP steps are highlighted.

It is recommended using the "Connect to Network Folder" task sequence step before the "Capture User State" and "Restore User State" steps. In the "Connect to Network Folder" task sequence step, set the 'Path' property to %OSDStateStorePath% and set the 'Account' to the Network Access Account.
In this example, the first task is the "OneSite - Wait Until Not A Host" task so that the machine does not get imaged while it is serving as a host of state data for a different migration. This enables use cases which involve imaging a large number of machines concurrently.
Before creating the state store, this task sequence uses the "OneSite - Find State Store" task to locate previous state stores which should be deleted before capturing another state store.
You must set this step to Continue on Error, as if it fails to find a State Store, this is a good thing and means we can continue.
Also, In the Properties for the "OneSite - Find State Store" the Result field can include a value of STOREFOUND. This is optional and only needed when there is the possibility that a capture was done without a completed restore.

A conditional "OneSite - Delete State Store" task can be added right after, with the Condition defined, Task Sequence Variable: STOREFOUND equals OK. If a state store is found, this task will remove any existing state stores for this machine. This would only be used with the previous setting.

Next the task, "OneSite -- Create State Store" will be added to create the target for storing the user's data and settings.
After the state store is created and the user files and settings are captured, USMT data is replicated to all the hosts using the "OneSite - Replicate State Store" task.
The "OneSite - Trim State Store" task then reduces the size of the store from the estimated size to the actual size that is in use, if the initial size was larger than the actual data.
Once the operating system has been installed and configured, the "OneSite - Find State Store" task uses the Configuration Manager Computer Association to find the correct state store. The settings and data are restored to the newly imaged machine.
In this example, we have added the step "OneSite -- Delete State Store" to immediately remove this store from any and all machines that housed a replica of this data. This could be for security purposes.
Otherwise, we would likely skip this step and allow the data to be deleted once it expires, allowing us the safety net of being able to restore this again should something happen to our newly imaged machine.
Various combinations of OneSite's Virtual SMP custom task sequence tasks can be incorporated into task sequences. The next section provides details about the use of each task.
Virtual SMP Task Sequence Steps
OneSiteDownloader in a Virtual SMP Task Sequence
All of the OneSite Virtual SMP steps make use of the Adaptiva OneSiteDownloader utility to carry out their tasks. Each of the steps includes an input parameter that points to the location of OneSiteDownloader.exe.
To use OneSite Virtual SMP on 64-bit systems, OneSiteDownloader64.exe needs to be renamed OneSiteDownloader.exe and reference it in the task sequence by providing the folder location in the input parameter for each OneSite Virtual SMP step.
OneSite - Create State Store
The OneSite - Create State Store task allocates space for USMT data to be stored on the Adaptiva Virtual SAN. This step is a replacement for the "Request State Store" step in ConfigMgr.
Input parameters are provided via the Config Manager Task Sequence editor when the step is created.
Properties
Properties Tab One

Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed. For steps that occur within the Windows PE section of the task sequence, this property specifies the OneSiteDownloader.exe file location in the boot image, e.g.
%systemdrive%\OneSite\%processor_architecture%Space required - specifies the estimated amount of storage space required, in megabytes, for the user state stores. This amount of space will be allocated on each machine that is determined to be a qualified host for this state store. If the user's data is larger than this allocated space, then it will dynamically expand to capture all of the user's data. However, this does add some delay to the process so tuning this to match the average store size is an important part of the design. A separate step can be included in the task sequence to trim the store after the user state data is copied, to preserve space.
Range: 10 - 1024000; Default: 1000MB.
Minimum required hosts - specifies the required number of peers that must be available to store redundant copies of the user state associated with the task sequence. The task sequence will not continue unless at least this number of peer hosts has the required available free space. If you want to ensure that there is a host available to restore from, you will likely want to increase this value.
Range: 1 - 100; Default: 2.
Maximum desired hosts - specifies the greatest number of peers that will store copies of the user state. If available, this is the number of hosts that will store the user state data associated with the task sequence. The task sequence will continue if this number of qualified peers is not available, as long as the "Minimum required hosts" parameter is satisfied.
Range: 1 - 100; Default: 5.
Pin the State Store on Peer Machines - specifies whether the state store should be pinned by default during this step. If the Adaptiva cache driver needs to make room on the host's caching file system for other content, pinned state stores will not be considered for deletion. State stores which have not been pinned are subject to automatic deletion in the event of low disk space conditions on the host.
Default: checked.
USMT should use this state store for backup and restoration of user state - this checkbox must be checked to direct USMT to use the store that is being created by this task sequence step.
This is provided as an option so that a single task sequence may be used in multiple scenarios, some of which may not use the Adaptiva OneSite Virtual SMP.
Storage Expiration - specifies the amount of time, in minutes, that the state store will remain in the cache on each host. The state stores will be automatically removed from the caches within one hour of this limit being reached, and all content in that state store will be irretrievably lost.
Range: 60 - 100800; Default: 10080 minutes (7 days).
Disuse Expiration - is the amount of time, in minutes, that the Adaptiva cache system will wait for content to be copied to a store that has been allocated, before deleting the store. If the state store is found to be completely empty after this amount of time, the state stores will be automatically removed from the caches within one hour of this limit being reached, and future operations on the state store will fail.
Range: 5 - 100800; Default: 60 minutes.
Timeout after - If the box is unchecked the task sequence will wait indefinitely for the storage to be allocated. If the box is checked, the task sequence will time out and fail after the specified number of minutes, if the state store has not been created on the required number of hosts.
Range: 5 - 14400; Default: checked, 60 minutes.
Publication Parameters for Future Searches - There are three options for this setting, only one of which can be selected. These parameters control how the share for the state store will be published in the Adaptiva P2P system for future discovery. This information may be used later, when a Find step is executed for the state store:
Publish state store for source computer in the computer association - allows the source computer information from the ConfigMgr computer association to be used in the state store to be published. This is the default publication parameter option.
Publish State Store for target computer in the computer association - allows the target computer information from the ConfigMgr computer association to be used in the share to be published.
Publish State Store ID specified in the following task sequence variable - allows a state store GUID to be used and stored the specified task sequence variable. The state store GUID is automatically generated by OneSite when the store is created. If the specified task sequence variable does not exist, it will be created automatically.
Properties Tab Two

Create hidden shares - when this box is checked, the SMB shares that are created for the state store will be hidden shares.
Default: checked.
Always use prefix for share names - this option allows a consistent prefix to be used in the names of the SMB shares that are created. If this option is checked, a prefix name is required. SMB shares will be created with this naming syntax:
<MyPrefix>**sa***StoreID* <\$>
Where is the string provided in this parameter. The acronym sa is inserted to identify this as a "Store Allocation" share. The StoreID is the GUID that is automatically generated when the task sequence executes, and the trailing "$" is included if the option to create hidden shares is enabled.
The entire share name with a prefix of VirtSMP, an allocation ID of deeb05f7-e86c-4d1a-813d-30ebffee7b20, and the "Hidden Shares" option selected will be: VirtSMPsadeeb05f7-e86c-4d1a-813d-30ebffee7b20$ Default is unchecked, no prefix.
Grant read-write permissions to the network access account(s) -- specifies whether read-write permissions to the state store SMB shares should be granted to the Config Manager Network Access Account.
Default: checked.
Share permissions, comma-separated lists (optional) - read and write permissions to the state stores can be granted to accounts and/or SIDs in these fields.
Read permissions to accounts -- optionally enter a comma-separated list containing names of domain accounts that will be granted read permissions to the state store SMB share.
Names must be entered in "domain\user" format.
Read permissions to SIDs -- optionally enter a comma-separated list containing SIDs of domain accounts that will be granted read permissions to the state store SMB share.
Write permissions to accounts -- optionally enter a comma-separated list containing names of domain accounts that will be granted write permissions to the state store SMB share.
Names must be entered in "domain\user" format.
Write permissions to SIDs -- optionally enter a comma-separated list containing SIDs of domain accounts that will be granted write permissions to the state store SMB share.
Output - The "OneSite - Create State Store" task sequence step returns information which can optionally be stored in task sequence variables. The following parameters are the names of the variables where the output will be stored. In all cases, if the variable provided does not exist it will be automatically created for you:
Result -- contains the result of the OneSite - Create State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
ID -- if the step is successful, this variable will optionally contain the allocation ID of the state store. This value will be a GUID, e.g. deeb05f7-e86c-4d1a-813d-30ebffee7b20.
Share name -- if the step is successful, this variable will optionally contain the name of one of the SMB shares that is created by the OneSite - Create State Store task sequence step. The value stored in this variable will be the name of the share that is most desirable at the time, based on factors such as chassis type (desktop is more desirable than laptop), operating system (servers are more desirable than workstations), etc.
UNC path -- if the step is successful, this variable will optionally contain the full UNC path to one of the peers that will host the state store copies associated with this task sequence. This string can be used to access the state store.
Hosts -- if the step is successful, this variable will optionally contain a comma-separated list of the short names of machines hosting state store copies for this task sequence.
OneSite - Delete State Store
Once the user state data has been successfully restored, the state store can be deleted using the OneSite
Delete State Store step. Successful execution of this step results in the most recently discovered or allocated virtual SAN allocation being deleted, in which case all data stored in the allocation will be removed and all resources used by the allocation will be released.
Stores that are not explicitly deleted using the OneSite - Delete State Store step can be automatically deleted by means of the Storage Expiration parameter in the OneSite - Create State Store step described earlier in this document.
Properties

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed. For steps that occur within the Windows PE section of the task sequence, this property specifies the OneSiteDownloader.exe file location in the image, e.g. %systemdrive%\OneSite%processor_architecture%.
Output - the "OneSite - Delete State Store" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you
Result - contains the result of the OneSite - Delete State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
If a result was defined for the "Find State Store" task, this could be referenced as a condition to this task so that the delete operation would only occur if a state store was found. An example would be to set the condition if the Task Sequence Variable: StoreFound equals OK.
OneSite - Find State Store
Once the migration has taken place, and the target machine is ready to accept the user state data that was saved in the previous task sequence steps, the OneSite - Find State Store step is used to locate the stores containing that data. To help ensure that there will be a host available from which to restore state data, this step will attempt WakeOnLAN.
Properties

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Find only those hosts which have completed replication - with this option enabled, the OneSite - Find State Store step will not finish until a state store is located that contains a complete copy of the user state replica.
Default: checked.
Search Parameters -- There are three options for this setting, only one of which can be selected:
Find state store for source computer in the computer association - allows the Config Manager computer association for the source computer to be used in discovery of the state store for this task sequence. This is the default Search Parameter option.
Find State Store for target computer in the computer association - allows the Config Manager computer association for the target computer to be used in discovery of the state store for this task sequence.
Find State Store ID specified in task sequence variable - allows a task sequence variable containing the state store GUID to be used for the discovery of the state store for this task sequence.
USMT should use this state store for backup and restoration of user state - this checkbox must be checked to direct USMT to use the Adaptiva store that was created for this task sequence. This is provided as an option so that a single task sequence may be used in multiple scenarios, some of which may not use the Adaptiva OneSite Virtual SMP.
Default: checked.
Output - the "OneSite - Find State Store" task sequence step returns information which can optionally be stored in task sequence variables. In all cases, if the variable provided does not exist it will be automatically created for you:
Result - contains the result of the OneSite - Find State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure. An example would be to set the Result to StoreFound. This variable can be referenced in another task.
ID - if the step is successful, this variable will optionally contain the allocation ID of the state store. This value will be a GUID, e.g. deeb05f7-e86c-4d1a-813d-30ebffee7b20.
Share name - if the step is successful, this variable will optionally contain the SMB share name that was used by the OneSite - Find State Store task sequence step.
UNC path - if the step is successful, this variable will optionally contain the full UNC path to the share from which the state store associated with this task sequence was restored.
Hosts - if the step is successful, this variable will optionally contain a comma-separated list of the short names of machines hosting state store copies for this task sequence.
OneSite - Is Machine a Host
Machines serving as hosts of OneSite State Stores should be treated with care, so that the stored data will be protected. The purpose of the "OneSite - Is Machine a Host" step is to provide a method of checking a machine before executing a task sequence which would put a state store at risk.
Properties

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Output - the "OneSite - Is Machine a Host" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you:
Result - contains the result of the "OneSite - Is Machine a Host" task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
OneSite - Pin State Store
The "OneSite - Pin State Store" task sequence step allows a state store to be pinned or unpinned. Pinned state stores are treated differently from other content by the Adaptiva Cache system, in that they do not get deleted if the host requires more free space. State stores which have not been pinned are subject to automatic deletion by the Adaptiva Cache.
If you selected "Pin the state store on peer machines" in the OneSite -- Create State Store task, you do not need to run this step unless you wish to change the setting.
Scope: This task sequence step affects the most recently created or most recently discovered state store.
Caution: Execution of this step with the "Pin the state store on peer machines" option unchecked results in the store becoming unpinned. By default, State Stores are created as "pinned" during the OneSite - Create State Store task sequence step.

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Pin the state store on peer machines - specifies whether the state store should be pinned or unpinned. Checking this box will pin the state store, unchecking it will unpin the state store.
Default: checked.
Output - the "OneSite - Pin State Store" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you:
Result - contains the result of the OneSite - Pin State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
OneSite - Replicate State Store
For the purposes of data protection and availability, it is vitally important that multiple copies of state data be created and stored. If only one copy of a store is created, and then somehow lost prior to completion of migration, there may be no fallback. Additionally, if a store is offline or off the network, a replicated copy can be used for restoring user state.
The number of redundant copies of the state data will be determined by the settings provided in the "OneSite - Create State Store" task described earlier in this document. The "OneSite - Replicate State Store" step is when the redundant copies are created.

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Wait for replication to be completed - specifies whether the task sequence should continue while the state store is being replicated. Checking this box will cause the OneSite - Replicate State Store task to wait until replication succeeds or fails, or timeout occurs, whichever happens first.
Default: unchecked.
Use infinite timeout - if this box is checked the OneSite - Replicate State Store task sequence step will wait infinitely for a success or failure result. Unchecking the box enables a timeout value, in minutes, to be entered.
Range: 5 - 14400; Default: unchecked, 60 minutes.
Output - the "OneSite - Replicate State Store" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you:
Result -- contains the result of the OneSite - Replicate State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
OneSite - Trim State Store
When the "OneSite - Create State Store" task sequence step is added to a task sequence, a value is provided specifying the amount of space required. Once the state data has been copied in to the allocated space, the store can be trimmed to either a specified size, or to the amount of space that is being used by the data.
Properties

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Automatically trim down to size actually in use - specifies that the OneSite - Trim State Store task sequence step should trim the size of the stores to the size that is being used by the user's data and settings.
Default: checked
Trim down state store size to - if the "Automatically trim down to size actually in use" box is unchecked a value can be entered, in megabytes, for the size to which the store should be trimmed.
Range: 10 - 102400 MB.
Output - the "OneSite - Trim State Store" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you:
Result - contains the result of the OneSite - Trim State Store task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
OneSite - Wait Until Not a Host
The "OneSite - Wait Until Not A Host" step provides a method of suspending a task sequence until the machine is no longer hosting a OneSite State Store. Similar to the, "OneSite - Is Machine a Host" task sequence step, the purpose of this step is to protect user state data from unintended deletion.
Once the machine has stopped hosting state stores for peers on the network, a random delay can be specified to "stagger" the start of the next OS migration on the network.
Properties

OneSiteDownloader Folder Path - specifies the folder where the OneSiteDownloader.exe file is located. This can be a UNC path, or a local path, and must be available to the environment in which the custom task sequence step is executed.
Initial Random Delay - this option allows a random delay to be specified, along with the maximum length of the delay, in minutes.
Range: 1 - 1440; Default: enabled with a maximum 15-minute delay.
Timeout - this option allows a maximum time to be specified, in minutes, for the step to complete. If the option is enabled and the timeout value is reached before completion of the step, the step will fail.
Range: 1 - 1440: Default: enabled with a 60-minute timeout.
Output - the "OneSite - Wait Until Machine Not A Host" task sequence step returns information which can optionally be stored in task sequence variables. If the variable provided does not exist it will be automatically created for you:
Result - contains the result of the "OneSite - Wait Until Machine Not A Host" task sequence execution. If the step is successful, the value of this variable will be set to "OK." If the step fails, the value will contain an error message related to the failure.
OneSiteDownloader and vSMP
One or more Adaptiva OneSite clients must be present on the subnet where OneSiteDownloader is used, to respond to requests from the tool.
Arguments are provided as values only (no argument name is required). If an argument value will not be provided, then a semicolon placeholder must still be included for that argument.
Internal Task Sequence Variables
Three task sequence variables are used by OneSiteDownloader in a Virtual SMP environment. If OneSiteDownloader is executed from a command line outside of a task sequence, environment variables with the same names are used and must be pre-populated.
AdaptivaSiteCodes
(Optional) If present, this variable contains a comma-separated list of one or more site codes which is included with all messages sent by OneSiteDownloader. A receiving client receiving a OneSiteDownloader message containing this attribute will only reply if it is running a Config Manager client assigned to one of the specified site codes.
AdaptivaVsID
(Required) Contains the allocation id of the most recently allocated or discovered virtual SAN allocation. The value is automatically set by the - vsmpCreate and -vsmpFind operations. It is automatically read by all the other operations whenever needed.
AdaptivaVsHosts
(Required) Contains marshaled host information for all the hosts that will participate in the most recently allocated or discovered virtual SAN allocation. The value is automatically set by the -vsmpCreate and - vsmpFind operations. It is automatically read by all the other operations whenever needed. The value is formatted as three semicolon-separated strings: · Host client ids - string; comma-separated list of client ids of all hosts which are participating in this allocation. · Host machine names - string; comma-separated list of FQDN machine names of all hosts which are participating in this allocation. · Host MAC addresses – String; comma-separated list of MAC addresses of all hosts which are participating in this allocation, formatted as: E0-06-E6-25-3A-2F.
Command Line Options
The following table describes command line options for OneSiteDownloader which are applicable to Virtual SMP functions.
-vsmpCreate
The vsmpCreate operation broadcasts a message to the local subnet requesting space allocation that meets the requirements of the options provided. If at least the minimum number of peers responds, an allocation ID is stored in the AdaptivaVsID variable.
Syntax:
OneSiteDownloader.exe -vsmpCreate <parameters>
Arguments:
The -vsmpCreate option accepts a single parameter, which is a semicolon-delimited string of 21 values. Some values are required, some are optional. A placeholder for each value (including optional values) must be present. If a value is not provided, the default is used.
Parameters:
- SpaceRequired (required): Integer between 10 and 1,024,000; Default: 1000 MB
- MinHosts (required): Integer between 1 and 100; Default: 2
- MaxHosts (required): Integer between 1 and 100; Default: 2
- Pin (required): true or false; Default: true
- USMTUse (required): true or false; Default: true
- StorageExpire (required): Integer between 60 and 100,800; Default: 10,080 minutes
- DisuseExpire (required): Integer between 60 and 100,800; Default: 10,080 minutes
- Timeout (required): Integer between 5 and 14,400; Default: 60 minutes
- Publish (required): source, target, or task sequence variable containing a GUID
- Hidden (required): true or false; Default: true
- Prefix (required): String value
- NetwkAccess (required): true or false; Default: true
- ReadAccts (optional): Comma-separated list of accounts in domain\user format
- ReadSIDs (optional): Comma-separated list of SIDs
- WriteAccts (optional): Comma-separated list of accounts in domain\user format
- WriteSID (optional): Comma-separated list of SIDs
- CreateResult (optional): Task sequence variable name for step result
- CreateID (optional): Task sequence variable name for store ID
- CreateShare (optional): Task sequence variable name for store share name
- CreateUNC (optional): Task sequence variable name for store share UNC path
- CreateHosts (optional): Task sequence variable name for host machines
Example:
OneSiteDownloader.exe -vsmpCreate 1000;2;5;true;true;10080;60;60;source;true;;true;MyDomain\MyUser;;MyDomain\MyUser;;CreateResult;CreateID;CreateShare;CreateUNC;CreateHosts
-vsmpPin
The vsmpPin operation sets the Pinned property on the state store. When set, the Adaptiva cache driver will not delete the store when space is needed.
Syntax:
OneSiteDownloader.exe -vsmpPin <parameters>
Arguments:
Accepts a semicolon-delimited string of 2 values. Placeholders must be present for optional values.
Example:
OneSiteDownloader.exe -vsmpPin true;PinResult
-vsmpReplicate
The vsmpReplicate operation replicates the state store to retain multiple copies.
Syntax:
OneSiteDownloader.exe -vsmpReplicate <parameters>
Example:
OneSiteDownloader.exe -vsmpReplicate true;60;ReplicateResult
-vsmpTrim
The vsmpTrim operation trims the state store to a specified value or to the actual size of the store.
Syntax:
OneSiteDownloader.exe -vsmpTrim <parameters>
Examples:
OneSiteDownloader.exe -vsmpTrim 1000;TrimResult
OneSiteDownloader.exe -vsmpTrim 0;TrimResult
-vsmpFind
The vsmpFind operation locates state stores for the system.
Syntax:
OneSiteDownloader.exe -vsmpFind <parameters>
Example:
OneSiteDownloader.exe -vsmpFind true;source;true;FindResult;FindID;FindShare;FindUNC;FindHosts
-vsmpDelete
The vsmpDelete operation deletes state stores for the system.
Syntax:
OneSiteDownloader.exe -vsmpDelete <parameters>
Example:
OneSiteDownloader.exe -vsmpDelete DeleteResult
-vsmpIsMachineAHost
The vsmpIsMachineAHost operation checks whether the machine is currently hosting state stores.
Syntax:
OneSiteDownloader.exe -vsmpIsMachineAHost <parameters>
Example:
OneSiteDownloader.exe -vsmpIsMachineAHost IsMachineResult
-vsmpWaitUntilNotAHost
The vsmpWaitUntilNotAHost operation causes the task sequence to wait until the machine is no longer a host before proceeding.
Syntax:
OneSiteDownloader.exe -vsmpWaitUntilNotAHost <parameters>
Example:
OneSiteDownloader.exe -vsmpWaitUntilNotAHost 15;60;WaitResult
ConfigMgr State Migration References
Useful links to reference material:
[Task Sequence Steps in Configuration Manager]{.underline}](https://docs.microsoft.com/en-us/sccm/osd/understand/task-sequence-steps)
Last updated
Was this helpful?