The actual process of migrating applications is performed during an OS deployment task sequence in Configuration Manager.

Application Migration uses a custom task sequence action that calls an Application Migration API. The API gets a list of Configuration Manager Applications and Packages that need to be installed on a computer based on previously installed software titles (determined through inventory) and the migration rules applying to those titles.

Task Sequence Tools Upgrade

When upgrading task sequence tools, you must remove the old 1E Application Migration step and add the same step again in affected Task Sequences. Otherwise, the latest changes will not be accessible and may not work.

Testing the API and getting device details

You can test the API and observe the results for a specific computer from a browser with the following by replacing <WebServiceBaseURL >, <Domain>, and <MachineName> with the necessary details:

<WebServiceBaseURL>/platform/api/applicationmigration/getApplicationsToBeInstalled/?domainName=<Domain>&machineName=<MachineName>

where: 

  • <WebServiceBaseURL> may be either of the host headers configured for Tachyon. See Web Service Base URL below for a more detailed description. 
  • <domain> and <MachineName> specify the computer you are checking the results for.

Browsing to the URL returns a JSON file with a  list of Applications and Packages that will be installed on the specified device when the task sequence executes.

This list is used to populate two series of task sequence variables (one for Applications and the other for Packages) that can be used by the standard Configuration Manager Install Application and Install Package steps to dynamically install each application and package returned by the API.

On this page:

Configuring the Application Migration Task Sequence step

The AppMigration action is used to create the 1E Application Migration Task Sequence step, and has the following properties.

Web Service Base URL

You can connect either using HTTP or HTTPS. In either case the URL will be based on the settings made on the Website Configuration screen of the Tachyon Setup program. Please refer to Tachyon 5.1 - Tachyon Setup: Website configuration for more details.

For example, if your Tachyon server FQDN is ACME-TCN01.ACME.LOCAL and your Tachyon DNS alias is TACHYON.ACME.LOCAL, and these have been configured as the host headers on the Website Configuration screen of the Tachyon Setup program, then either of the following URLs can be used:

  • http://ACME-TCN01.ACME.LOCAL
  • https://TACHYON.ACME.LOCAL

If you have specified a custom port on the Website Configuration screen of the Tachyon Setup program then this should also be added to the URLs. For example:

  • http://ACME-TCN01.ACME.LOCAL:8080
  • https://TACHYON.ACME.LOCAL:8443

Credentials (for Web service call)

The username and password used to call the Application Migration API – this account must already exist as user on Tachyon.

If the Domain\User Name and Password are left empty, the Configuration Manager Network Access Account is used to fetch data from Application Migration (to use this option the Network Access Account must be added as a Tachyon user).

Source Computer DomainIn most cases, the Source Computer Domain will be the same domain that the OS is being deployed in. If you are migrating computers from one domain to another through the OS deployment process, you must select the Specify Domain option and enter the Fully Qualified Domain Name of the originating domain, as this will be the domain that the computer belongs to in Tachyon from previous inventory.
Source Computer Name Variable

The name of the task sequence variable that is used to store the source computer name (the computer from which applications are being migrated).

By default, the Source Computer Name Variable property is set to SourceComputerName. If the specified variable does not exist, the Application Migration step uses the current computer name as the source computer name.

If you are using Nomad (included in Windows Servicing Suite) and have included the Get Migration Settings step in the task sequence, that step will set the SourceComputerName variable as follows:

  • In a Computer Replace scenario:
    • When the restore Task Sequence executes on the new computer, Get Migration Settings sets the SourceComputerName variable to the source computer defined in the Computer Association in Configuration Manager.
    • If the Task Sequence is initiated through the Windows Servicing Assistant, you do not need to create a Computer Association. Get Migration Settings sets the SourceComputerName variable to the name of the source computer selected by the user in the Windows Servicing Assistant.
  • In a Computer Refresh scenario, the SourceComputerName variable is set to the current computer name.

If you are adding the Application Migration step to an In-place Upgrade Task Sequence, set the Source Computer Name Variable to _SMSTSMachineName and do not use Get Migration Settings.

Application Variable

The base variable name which this task sequence step uses to define the Configuration Manager Applications to be installed. This is used to define the base variable in a later Install Application step that is configured to install applications according to a dynamic variable list.

For example, if Application Variable is set to APPMIG, this step will dynamically set variables APPMIG01APPMIG02 etc. corresponding to the applications to be installed dictated by the application migration rules applied to the specified source computer.

Package Variable

The base variable name which this task sequence step uses to define the Configuration Manager Packages to be installed. This is used to define the base variable in a later Install Package step that is configured to install packages according to a dynamic variable list.

For example, if Package Variable is set to PKGMIG, this step will dynamically set variables PKGMIG001PKGMIG002 etc. corresponding to the packages to be installed dictated by the application migration rules applied to the specified source computer.

Example

The following example illustrates how to add the Application Migration step to an existing OS Deployment task sequence. Your own task sequence may differ, but the general positioning of these steps is where Install Application steps would normally be placed (after Install Updates and before the Restore User Files).

  1. From the Configuration Manager console, select the Software Library workspace.
  2. Expand the Operating Systems folder and select Task Sequences.
  3. Right-click the task sequence that Application Migration is to be added to and from the context menu, select Edit.

Application Migration step

Choose Add > 1E OSD > AppMigration.

On the Properties tab, enter the following details:

  1. In Web Service Base URL, enter the location for Tachyon, for example http://tachyon.acme.local/
  2. Under Credentials (for Web service call), enter the D omain\User Name and Password for the Tachyon user you want to use.
  3. Source Computer Domain – in most cases the source computer domain will be the same domain that the OS is being deployed in. If you are migrating computers from one domain to another through the OS deployment process, you must select the Specify Domain option and enter the Fully Qualified Domain Name of the originating domain, as this will be the domain that the computer belongs to in Tachyon from previous inventory.
  4. In Source Computer Name Variable, leave the value at its default SourceComputerName.
  5. In Application Variable, choose the base variable that is used to define the dynamic applications. In our example, it is AppMig.
  6. In Package Variable, choose the base variable that is used to define the dynamic packages. In our example, it is PkgMig.
  7. Click Apply.


1E OSD menu

Install Application step

Choose Add > Software > Install Application.

On the Properties tab:

  1. Select the Install applications according the dynamic variable list option.
  2. In Base variable name, enter the application variable. In our example, it is AppMig (see step 5 above).
  3. If you want the task sequence to continue installing other applications in the event if an application install fails, select the If an application installation fails, continue installing other applications in the list option.

On the Options tab:

  1. Click Add Condition and enter condition to check if Task Sequence Variable APPMIG01 exists (or the application variable you defined in the 1E Application Migration step with 01 appended). 
  2. Click Apply.

Install Application

Install Package step

Choose Add→Software→Install Package.

On the Properties tab:

  1. Select the Install software packages according to dynamic variable list option.
  2. In Base variable name, enter the package variable name used in the 1E Application Migration step. In our example, it is PkgMig (see step 6 above).
  3. If you want the task sequence to continue installing other applications in the event if an application install fails, select the If installation of a software package fails, continue installing other packages in the list option.

On the Options tab:

  1. Click Add Condition and enter the condition to check if the task Sequence Variable PKGMIG001 exists (or the package variable you defined in the 1E Application Migration step and append 001 to it). Click OK to save the condition.
  2. Click Apply to save the changes to the Task Sequence step.

Task sequence variables used by Application Migration

There are five task sequence variables used by Application Migration:

  • Source Computer Name Variable - the name of the task sequence variable that is used to store the source computer name (the computer from which applications are being migrated), as described above
  • Application Variable - the base variable name used for Applications, as described above 
  • Package Variable - the base variable name used for Packages, as described above
  • Role Base Application Sets variable - optional, the variable named IncludeRoleBasedAppsForExistingPC must be set to true if you are using Role Based Application Sets, described below
  • Deployment Type variable - the variable named DeploymentType must be set to one of the following values, and must be set prior to the 1E Application Migration step
ValueDescription of DeploymentType variable
RefreshAlso known as Wipe-and-Load, the data on the computer is backed up, the disk is wiped, a new OS is installed and applications are installed subject to their respective migration rules. If no application migration rule exists for an application, it will not be installed.
ReplaceData and applications are migrated from one computer to another. Applications that are migrated to the new computer are subject to the application migration rules for the source computer. If no application rule exists for an application, it will not be installed on the new computer.
InPlaceWindows setup is executed on an existing computer to upgrade the OS. The disk is not wiped, so existing data and installed applications are preserved. In this instance, Application Migration will install only applications that are subject to a replace or upgrade migration rules. Retain rules are ignored.
NewComputer

Also known as bare-metal, this is a new build computer where no applications or data are being migrated. However, you can use the Role Based Application Sets feature to install applications on new computers.

Using migration rules and Role Based Application Sets

Role Based Application Sets can optionally be used in each of the deployment scenarios. A Role Based Application Set defines a set of applications that should be installed on a computer for a user performing a particular role, or perhaps working at a particular location.

For this to work, the task sequence must contain the variable IncludeRoleBasedAppsForExistingPC set to a value of true, as shown in the picture opposite.

When using  IncludeRoleBasedAppsForExistingPC  with a value of  true  for role-based application sets, the DeploymentType variable must be set appropriately in the task sequence before the 1E Application Migration step.

Auto Install for Configuration Manager Applications and Packages

Application Migration uses the Install Application and Install Package steps in a Task Sequence to install migrated applications and packages. These Task Sequence steps are dependent on the relevant checkbox (auto install flag) being enabled for each application and package:

  • Allow this application to be installed from the Install Application task sequence action without being deployed
  • Allow this program to be installed from the Install Package task sequence action without being deployed.

If a checkbox is not enabled, the software installation will fail for that application or package. An administrator can enable this checkbox for each application and package by using either of the following methods:

  • in Configuration Manager during or after creating each application and package
  • using the Auto Install feature in Application Migration when creating application associations, rules or Role Based Application sets.

Application Migration's Auto Install feature is able to read the checkbox (auto install flag) for applications and programs, but in order for Application Migration to enable them for you, you'll need to configure related providers in the Settings application of the Tachyon Platform. These should already be configured as a post-installation step. For configuration details, please refer to Post-install configuration.

For more details about using the Auto Install feature, please refer to:

Applications

The checkbox is located on the General Information tab of the Properties window for a Configuration Manager Application as shown opposite.

SCCM Application

Packages

The checkbox is also present on the Advanced tab of the Properties window of a Configuration Manager Package program as shown opposite.

SCCM Package

Support for Computer Replacement scenario

If you intend to use Application Migration to migrate applications from an old computer to a new computer (Replace scenario), you may need to include the Get migration settings step in your Task Sequences. The Get Migration Settings Task Sequence step retrieves information from a Computer Association in Configuration Manager so it can determine the source computer when installing applications on the new computer. It is currently distributed with Nomad and is added to the Task Sequence Editor by installing NomadBranchTools.msi. Please refer to Nomad 7.0.200 - Installing Nomad tools for operating system deployment for more information.