Friday, 30 January 2015

Profile Migration using AppSense Environment Manager 8.6

AppSense have just released the beta ahead of an upcoming suite release and the purpose of this post is to focus on one of the new features. This article will focus on the new Import Data capabilities that are included with Environment Manager 8.6.

For years AppSense Professionals have been using a combinations of AppSenseSpecial, Helper Applications, ImportData (Landon Winburns tool) and Migrate Existing Applications to get application data into the AppSense Personalization Server. Each of these methods have flaws of their own which I won't go into now however AppSense have developed a new on-boarding capability which will ship with Environment Manager 8.6. 

This new Profile Migration feature is enabled by clicking on the Profile Migration tab of one of your Personalization Groups:

The first this you will notice is that everything is greyed out. Simply click Edit and you can now choose from the following modes:

Disabled: As the name implies, profile migrations are disabled
Import: Profile settings are migrated from a choice of profile locations into Personalization Server.
Export: Profile settings are exported from the Personalization Server into the local profile.

The import and export options will be described below.

Selecting the import option then provides additional options in the lower half of the User Profile Migration Settings dialogue box.

The source of the profile settings is configurable to either be from the users local profile that they are logged on to their workstation with or a network profile that is saved to a remote file share. The latter option will be useful for users migrating onto a new platform where the legacy profile is incompatible (e.g. Windows 7 to Windows 8.1). In addition, the dialogue provides users with the option of specifying a separate AppData location that will be useful where customers have implemented redirection for the AppData folder. 

The dialogue allows customers to use variables (e.g. \\fileserver\share\%username%) when defining the network path to ensure that users can collect profile data from the correct source. 

How it works

When a user signs on for the first time the Environment Manager agent will determine the application and application groups assigned to that user. The agent will also determine whether or not profile migration is enabled. 

In the event that migration is enabled the agent will then use the includes defined within the application or application group to migrate all of the registry and folder inclusions from the source profile into the AppSense virtual profile. This will occur for every application whitelisted within a Personalization group.

The user will experience a short delay whilst the migration is taking place (In my example below the migration took about 20 seconds to complete but that was a 10MB profile over a slow broadband connection to a server hosted in Azure.)

Administrators can determine the migration status for a Personalization group by using the group tab of the Environment Manager Browser Interface and then selection the migration sub tab.

In the graphic below you can see that my user account, Richard, migrated 100% successfully from the device WINDOWS7-X64 at 11:54 this morning. 

In the event that a new application group is whitelisted whilst migration is still enabled this will be migrated the next time that the user logs on.

Once all of your users are migrated simply turn the feature off by switching the state to disabled. 


Export will perform the opposite and is mainly targeted at proof of concepts where historically a customer would on-board a defined number of users who would potentially lose any changes settings once the proof of concept ends. Using the export mode the customer would have their settings saved from the Personalization Server down to the local profile and ready for use post proof of concept. 


In addition to the two new options in the Profile Migration tab another migration option has been added in Environment Manager 8.6. This option allows administrators to use a PowerShell script to migrate user data into the Personalization Server. A PowerShell module has been created and will be included with the Environment Manager agent and will allow customers to perform migrations irrespective of whether Profile Migration is enabled or not. 

In order to use this the first step is to import the module:

Import-Module ((Get-ItemProperty 'HKLM:\Software\AppSense\Environment Manager').ClientPath + 'EmCmdlet.dll')

Once the module is imported you can simply use the Import-EMPManagedAppData cmdlet to perform the migration. 

Import-EMPManagedAppData -App "Microsoft Office 2010 Group"
Import-EMPManagedAppData -App "Microsoft Internet Explorer Group"

Exports can also be achieved using the PowerShell module. The command is similar only:

Export-EMPManagedAppData -App "Microsoft Office 2010 Group"

The only downside to using the powershell cmdlet is that migration status is not shown within the Environment Manager Browser Interface however you have the flexibility of the Environment Manager engine so could trigger the migration using any of the builtin triggers or conditions to perform this at the optimal time. 

Thats the first of the new features covered, stay tuned for more feature news.