How to Migrate from UPD – UPM or Roaming Profiles to FSLogix Profile Container Profiles for Windows Virtual Desktop


In November 2018, Microsoft acquired FSLogix. After the acquisition, Microsoft decided to make the Profile Container product the default for Windows Virtual Desktop. To provide a good migration path between your existing profile solution and Profile Container, we have created a migration script that is currently available as a Private Preview. To gain access to the Private Preview, download the module here.

Disclaimer: The Private Preview for UPD to FSLogix Container conversion for Windows Virtual Desktop is provided without a service level agreement, and it’s not recommended for production workloads. Certain features might not be supported or might have constrained capabilities. FSLogix Profile Container may not support all functionality of the formats that are converted. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

The migration script will allow you to perform mass conversions of user profiles from various (specified) types to FSLogix based Profile Containers at scale. Here are some details about the tool code base and structure of the code with the commands to be executed, as well as detailed examples

Once you have the migration script, Follow the steps below.

  1. Place the FSLogixMigration Folder in a module directory,
  2. import the module with command
  3. Import-Module FSLogixMigration
  4. If the module is imported successfully you will see the welcome message.
  5. At the time of import, a check will be done for the following modules: ActiveDirectory, Hyper-V, Pester

Example command:

Convert-UPDProfile

Convert-UPDProfile -ProfilePath “C:\Users\UserDisk1.vhd” -Target “\\Server\FSLogixProfiles$” -MaxVHDSize 20 -VHDLogicalSectorSize 512 -VHD -IncludeRobocopyDetails -LogPath C:\temp\Log.txt`

Convert-RoamingProfile

Convert-RoamingProfile -ParentPath <String> -Target <String> -VHDMaxSizeGB <UInt64> -VHDLogicalSectorSize <String> [-VHD][-IncludeRobocopyDetail] [-LogPath <String>] [-WhatIf] [-Confirm] [<CommonParameters>]`

Main Functions

  • _Convert-RoamingProfile_ – Converts a roaming profile to an FSLogix Profile Container
  • _Convert-UPDProfile_ – Converts a user profile disk to an FSLogix Profile Container
  • _Convert-UPMProfile_ – Converts a UPM Profile to an FSLogix Profile Container. UPM Conversion has had minimal testing in small environments.

Helper Functions

  • _Get-ProfileSource_ – Takes input for the source type/path
  • _New-MigrationObject_ – Creates a PowerShell object, which the script refers to for each migration
  • _Mount-UPDProfile_ – Mounts a user profile disk to copy data
  • _New-ProfileDisk_ – Creates a VHD or VHDX at the Target location
  • _Copy-Profile_ – Runs a Robocopy from source to destination
  • _New-ProfileReg_ – Creates an FSLogix Registry .reg file
  • _Write-Log_ – Used to write verbose commands and log