*|This command-line option enables the offline migration mode and starts the migration from the location specified. Only use in **Windows.old** migration scenarios, where the migration is occurring from a **Windows.old** directory.|
-You can use only one of the `/offline`, `/offlineWinDir`, or `/OfflineWinOld` command-line options at a time. USMT doesn't support using more than one together.
+Only one of the `/offline`, `/offlineWinDir`, or `/OfflineWinOld` command-line options can be used at a time. USMT doesn't support using more than one together.
## Environment variables
-The following system environment variables are necessary in the scenarios outlined below.
+System environment variables are necessary in the scenarios outlined in the following table:
|Variable|Value|Scenario|
|--- |--- |--- |
-|*USMT_WORKING_DIR*|Full path to a working directory|Required when USMT binaries are located on read-only media, which doesn't support the creation of log files or temporary storage. To set the system environment variable, at a command prompt type the following command:
Set USMT_WORKING_DIR=[path to working directory]
|
-*|MIG_OFFLINE_PLATFORM_ARCH*|32 or 64|While operating offline, this environment variable defines the architecture of the offline system, if the system doesn't match the WinPE and `ScanState.exe` architecture. This environment variable enables the 32-bit ScanState application to gather data from a computer with 64-bit architecture, or the 64-bit ScanState application to gather data from a computer with 32-bit architecture. Specifying the architecture is required when auto-detection of the offline architecture doesn't function properly. For example, to set this system environment variable for a 32-bit architecture, at a command prompt type the following command:
Set MIG_OFFLINE_PLATFORM_ARCH=32
|
+|**USMT_WORKING_DIR**|Full path to a working directory|Required when USMT binaries are located on read-only media, which doesn't support the creation of log files or temporary storage. To set the system environment variable, at a command prompt type the following command:
`Set USMT_WORKING_DIR=`|
+|**MIG_OFFLINE_PLATFORM_ARCH**|32 or 64|While operating offline, this environment variable defines the architecture of the offline system, if the system doesn't match the WinPE and `ScanState.exe` architecture. This environment variable enables the 32-bit **ScanState** application to gather data from a computer with 64-bit architecture, or the 64-bit **ScanState** application to gather data from a computer with 32-bit architecture. Specifying the architecture is required when auto-detection of the offline architecture doesn't function properly. For example, to set this system environment variable for a 32-bit architecture, at a command prompt type the following command:
`Set MIG_OFFLINE_PLATFORM_ARCH=32`|
## Offline.xml elements
-Use an `Offline.xml` file when running the ScanState tool on a computer that has multiple Windows directories. The `Offline.xml` file specifies which directories to scan for windows files. An `Offline.xml` file can be used with the `/offline` option as an alternative to specifying a single Windows directory path with the `/offlineDir` option.
+Use an `Offline.xml` file when running the **ScanState** tool on a computer that has multiple Windows directories. The `Offline.xml` file specifies which directories to scan for windows files. An `Offline.xml` file can be used with the `/offline` option as an alternative to specifying a single Windows directory path with the `/offlineDir` option.
-### <offline>
+### \
This element contains other elements that define how an offline migration is to be performed.
-Syntax: `` ``
+Syntax:
-### <winDir>
+```xml
+
+```
-This element is a required child of **<offline>** and contains information about how the offline volume can be selected. The migration will be performed from the first element of **<winDir>** that contains a valid Windows system volume.
+### \
-Syntax: `` ``
+This element is a required child of **\** and contains information about how the offline volume can be selected. The migration is performed from the first element of **\** that contains a valid Windows system volume.
-### <path>
+Syntax:
-This element is a required child of **<winDir>** and contains a file path pointing to a valid Windows directory. Relative paths are interpreted from the ScanState tool's working directory.
+```xml
+
+```
-Syntax: ` C:\Windows `
+### \
--or-
+This element is a required child of **\** and contains a file path pointing to a valid Windows directory. Relative paths are interpreted from the **ScanState** tool's working directory.
-Syntax, when used with the **<mappings>** element: ` C:\, D:\ `
+Syntax:
-### <mappings>
+```xml
+ C:\Windows
+```
-This element is an optional child of **<offline>**. When specified, the **<mappings>** element will override the automatically detected WinPE drive mappings. Each child **<path>** element will provide a mapping from one system volume to another. Additionally, mappings between folders can be provided, since an entire volume can be mounted to a specific folder.
+or when used with the **\** element:
-Syntax: `` ``
+Syntax:
-### <failOnMultipleWinDir>
+```xml
+ C:\, D:\
+```
-This element is an optional child of **<offline>**. The **<failOnMultipleWinDir>** element allows the user to specify that the migration should fail when USMT detects that there are multiple instances of Windows installed on the source machine. When the **<failOnMultipleWinDir>** element isn't present, the default behavior is that the migration doesn't fail.
+### \
-Syntax: `1`
+This element is an optional child of **\**. When specified, the **\** element overrides the automatically detected WinPE drive mappings. Each child **\** element provides a mapping from one system volume to another. Additionally, mappings between folders can be provided, since an entire volume can be mounted to a specific folder.
--or-
+Syntax:
-Syntax: `0`
+```xml
+
+```
+
+### \
+
+This element is an optional child of **\**. The **\** element allows the user to specify that the migration should fail when USMT detects that there are multiple instances of Windows installed on the source machine. When the **\** element isn't present, the default behavior is that the migration doesn't fail.
+
+Syntax:
+
+```xml
+1
+```
+
+or
+
+Syntax:
+
+```xml
+0
+```
### Offline .xml Example
@@ -158,4 +192,4 @@ The following XML example illustrates some of the elements discussed earlier in
## Related articles
-[Plan your migration](usmt-plan-your-migration.md)
+- [Plan the migration](usmt-plan-your-migration.md).
diff --git a/windows/deployment/usmt/understanding-migration-xml-files.md b/windows/deployment/usmt/understanding-migration-xml-files.md
index d39b9bf79e..5530d60b05 100644
--- a/windows/deployment/usmt/understanding-migration-xml-files.md
+++ b/windows/deployment/usmt/understanding-migration-xml-files.md
@@ -1,52 +1,57 @@
---
-title: Understanding Migration XML Files (Windows 10)
-description: Learn how to modify the behavior of a basic User State Migration Tool (USMT) 10.0 migration by using XML files.
+title: Understanding Migration XML Files
+description: Learn how to modify the behavior of a basic User State Migration Tool (USMT) migration by using XML files.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/23/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Understanding migration XML files
-You can modify the behavior of a basic User State Migration Tool (USMT) 10.0 migration by using XML files; these files provide instructions on where and how the USMT tools should gather and apply files and settings. USMT includes three XML files that you can use to customize a basic migration: the `MigDocs.xml` and `MigUser.xml` files, which modify how files are discovered on the source computer, and the MigApps.xml file, which is required in order to migrate supported application settings. You can also create and edit custom XML files and a `Config.xml` file to further customize your migration.
+The behavior of a basic User State Migration Tool (USMT) migration can be modified by using XML files. These files provide instructions on where and how the USMT tools should gather and apply files and settings. USMT includes three XML files that can be used to customize a basic migration: the `MigDocs.xml` and `MigUser.xml` files, which modify how files are discovered on the source computer, and the MigApps.xml file, which is required in order to migrate supported application settings. Custom XML files and a `Config.xml` file can be created and edited to further customize the migration.
This article provides an overview of the default and custom migration XML files and includes guidelines for creating and editing a customized version of the `MigDocs.xml` file. The `MigDocs.xml` file uses the new `GenerateDocPatterns` function available in USMT to automatically find user documents on a source computer.
## Overview of the Config.xml file
-The `Config.xml` file is the configuration file created by the `/genconfig` option of the ScanState tool; it can be used to modify which operating-system components are migrated by USMT. The `Config.xml` file can be used with other XML files, such as in the following example:
+The `Config.xml` file is the configuration file created by the `/genconfig` option of the **ScanState** tool. It can be used to modify which operating-system components USMT migrates. The `Config.xml` file can be used with other XML files, such as in the following example:
`ScanState.exe /i:migapps.xml /i:MigDocs.xml /genconfig:c:\myFolder\Config.xml`
When used this way, the `Config.xml` file tightly controls aspects of the migration, including user profiles, data, and settings, without modifying or creating other XML files. For more information about the `Config.xml` file, see [Customize USMT XML Files](usmt-customize-xml-files.md) and [Config.xml File](usmt-configxml-file.md).
> [!NOTE]
-> When modifying the XML elements in the `Config.xml` file, you should edit an element and set the **migrate** property to **no**, rather than deleting the element from the file. If you delete the element instead of setting the property, the component may still be migrated by rules in other XML files.
+>
+> When modifying the XML elements in the `Config.xml` file, set the **migrate** property on an element to **no** instead of deleting the element from the file. If the element is deleted instead of setting the property, rules in other XML files can still migrate the component.
## Overview of the MigApp.xml file
-The `MigApp.xml` file installed with USMT includes instructions to migrate the settings for the applications listed in [What Does USMT Migrate?](usmt-what-does-usmt-migrate.md). You must include the `MigApp.xml` file when using the ScanState and LoadState tools, by using the `/i` option in order to migrate application settings. The `MigDocs.xml` and `MigUser.xml` files don't migrate application settings. You can create a custom XML file to include additional applications. For more information, see [Customize USMT XML Files](usmt-customize-xml-files.md).
+The `MigApp.xml` file installed with USMT includes instructions to migrate the settings for the applications listed in [What Does USMT Migrate?](usmt-what-does-usmt-migrate.md). In order to migrate application settings, the `MigApp.xml` file must be included when using the **ScanState** and **LoadState** tools by using the `/i` option. The `MigDocs.xml` and `MigUser.xml` files don't migrate application settings. A custom XML file can be created to include additional applications. For more information, see [Customize USMT XML Files](usmt-customize-xml-files.md).
> [!IMPORTANT]
-> The MigApps.xml file will only detect and migrate .pst files that are linked to Microsoft Office Outlook. For more information about migrating .pst files that are not linked to Outlook, see [Sample migration rules for customized versions of XML files](#sample-migration-rules-for-customized-versions-of-xml-files).
+>
+> The `MigApps.xml` file only detects and migrates **.pst** files that are linked to Microsoft Office Outlook. For more information about migrating **.pst** files that aren't linked to Outlook, see [Sample migration rules for customized versions of XML files](#sample-migration-rules-for-customized-versions-of-xml-files).
## Overview of the MigDocs.xml file
-The `MigDocs.xml` file uses the new `GenerateDocPatterns` helper function to create instructions for USMT to migrate files from the source computer, based on the location of the files. You can use the `MigDocs.xml` file with the ScanState and LoadState tools to perform a more targeted migration than using USMT without XML instructions.
+The `MigDocs.xml` file uses the new `GenerateDocPatterns` helper function to create instructions for USMT to migrate files from the source computer, based on the location of the files. The `MigDocs.xml` file can be used with the **ScanState** and **LoadState** tools to perform a more targeted migration than using USMT without XML instructions.
The default `MigDocs.xml` file migrates the following data:
- All files on the root of the drive except `%WINDIR%`, `%PROGRAMFILES%`, `%PROGRAMDATA%`, or `%USERS%`.
-- All folders in the root directory of all fixed drives. For example: `c:\data_mail\*[*]`
+- All folders in the root directory of all fixed drives. For example: `c:\data_mail\*[*]`.
-- All files from the root of the Profiles folder, except for files in the system profile. For example: `c:\users\name[mail.pst]`
+- All files from the root of the Profiles folder, except for files in the system profile. For example: `c:\users\name[mail.pst]`.
-- All folders from the root of the Profiles folder, except for the system-profile folders. For example: `c:\users\name\new folder\*[*]`
+- All folders from the root of the Profiles folder, except for the system-profile folders. For example: `c:\users\name\new folder\*[*]`.
- Standard shared folders:
@@ -92,7 +97,7 @@ The default `MigDocs.xml` file migrates the following data:
- FOLDERID_RecordedTV
-The default `MigDocs.xml` file won't migrate the following data:
+The default `MigDocs.xml` file doesn't migrate the following data:
- Files tagged with both the **hidden** and **system** attributes.
@@ -102,11 +107,11 @@ The default `MigDocs.xml` file won't migrate the following data:
- Folders that contain installed applications.
-You can also use the `/genmigxml` option with the ScanState tool to review and modify what files will be migrated.
+The `/genmigxml` option can be used with the **ScanState** tool to review and modify what files are migrated.
## Overview of the MigUser.xml file
-The `MigUser.xml` file includes instructions for USMT to migrate user files based on file name extensions. You can use the `MigUser.xml` file with the ScanState and LoadState tools to perform a more targeted migration than using USMT without XML instructions. The `MigUser.xml` file will gather all files from the standard user-profile folders, and any files on the computer with the specified file name extensions.
+The `MigUser.xml` file includes instructions for USMT to migrate user files based on file name extensions. The `MigUser.xml` file can be used with the **ScanState** and **LoadState** tools to perform a more targeted migration than using USMT without XML instructions. The `MigUser.xml` file gathers all files from the standard user-profile folders, and any files on the computer with the specified file name extensions.
The default `MigUser.xml` file migrates the following data:
@@ -133,38 +138,41 @@ The default `MigUser.xml` file migrates the following data:
`.accdb`, `.ch3`, `.csv`, `.dif`, `.doc*`, `.dot*`, `.dqy`, `.iqy`, `.mcw`, `.mdb*`, `.mpp`, `.one*`, `.oqy`, `.or6`, `.pot*`, `.ppa`, `.pps*`, `.ppt*`, `.pre`, `.pst`, `.pub`, `.qdf`, `.qel`, `.qph`, `.qsd`, `.rqy`, `.rtf`, `.scd`, `.sh3`, `.slk`, `.txt`, `.vl*`, `.vsd`, `.wk*`, `.wpd`, `.wps`, `.wq1`, `.wri`, `.xl*`, `.xla`, `.xlb`, `.xls*`
> [!NOTE]
+ >
> The asterisk (`*`) stands for zero or more characters.
> [!NOTE]
+ >
> The OpenDocument extensions (`*.odt`, `*.odp`, `*.ods`) that Microsoft Office applications can use aren't migrated by default.
The default `MigUser.xml` file doesn't migrate the following data:
- Files tagged with both the **Hidden** and **System** attributes.
-- Files and folders on removable drives,
+- Files and folders on removable drives.
- Data from the `%WINDIR%`, `%PROGRAMFILES%`, `%PROGRAMDATA%` folders.
- ACLS for files in folders outside the user profile.
-You can make a copy of the `MigUser.xml` file and modify it to include or exclude standard user-profile folders and file name extensions. If you know all of the extensions for the files you want to migrate from the source computer, use the `MigUser.xml` file to move all of your relevant data, regardless of the location of the files. However, this provision may result in a migration that contains more files than intended. For example, if you choose to migrate all .jpg files, you may migrate image files such as thumbnails and logos from legacy applications that are installed on the source computer.
+The `MigUser.xml` file can be copied and then the copy modified to include or exclude standard user-profile folders and file name extensions. If all of the extensions for the files that need to be migrated from the source computer are known, use the `MigUser.xml` file to move all of the relevant data, regardless of the location of the files. However, adding in all file extensions that need to be migrated to the `MigUser.xml` file can result in a migration that contains more files than intended. For example, if all **.jpg** files are migrated, it can also migrate image files such as thumbnails and logos from legacy applications that are installed on the source computer.
> [!NOTE]
-> Each file name extension you include in the rules within the `MigUser.xml` file increases the amount of time needed for the ScanState tool to gather the files for the migration. If you are migrating more than 300 file types, you may experience a slow migration. For more information about other ways to organize the migration of your data, see the [Using multiple XML files](#using-multiple-xml-files) section of this article.
+>
+> Each file name extension included in the rules within the `MigUser.xml` file increases the amount of time needed for the **ScanState** tool to gather the files for the migration. If more than 300 file types are being migrated, the migration experience can be slow. For more information about other ways to organize the migration of the data, see the [Using multiple XML files](#using-multiple-xml-files) section of this article.
## Using multiple XML files
-You can use multiple XML files with the ScanState and LoadState tools. Each of the default XML files included with or generated by USMT is configured for a specific component of the migration. You can also use custom XML files to supplement these default files with more migration rules.
+Multiple XML files can be used with the **ScanState** and **LoadState** tools. Each of the default XML files included with or generated by USMT is configured for a specific component of the migration. Custom XML files can also be used to supplement these default files with more migration rules.
|XML migration file|Modifies the following components:|
|--- |--- |
-|*Config.xml file*|Operating-system components such as desktop wallpaper and background theme.
You can also overload `Config.xml` to include some application and document settings by generating the `Config.xml` file with the other default XML files. For more information, see [Customize USMT XML Files](usmt-customize-xml-files.md) and [Config.xml File](usmt-configxml-file.md).|
-|*MigApps.xml file*|Applications settings.|
-|*MigUser.xml* or *MigDocs.xml* files|User files and profile settings.|
-|*Custom XML files*|Application settings, user profile settings, or user files, beyond the rules contained in the other XML files.|
+|**Config.xml file**|Operating-system components such as desktop wallpaper and background theme.
The `Config.xml` can also be extended to include some application and document settings by generating the `Config.xml` file with the other default XML files. For more information, see [Customize USMT XML Files](usmt-customize-xml-files.md) and [Config.xml File](usmt-configxml-file.md).|
+|**MigApps.xml file**|Applications settings.|
+|**MigUser.xml** or **MigDocs.xml** files|User files and profile settings.|
+|**Custom XML files**|Application settings, user profile settings, or user files, beyond the rules contained in the other XML files.|
-For example, you can use all of the XML migration file types for a single migration, as in the following example:
+For example, all of the XML migration file types can be used for a single migration, as in the following example:
```cmd
ScanState.exe /config:c:\myFolder\Config.xml /i:migapps.xml /i:MigDocs.xml /i:CustomRules.xml
@@ -173,54 +181,61 @@ ScanState.exe /config:c:\myFolder\Config.xml /i:migapps.xml /i:MigDocs.x
### XML rules for migrating user files
> [!IMPORTANT]
-> You should not use the `MigUser.xml` and `MigDocs.xml` files together in the same command. Using both XML files can result in duplication of some migrated files. This occurs when conflicting target-location instructions are given in each XML file. The target file will be stored once during the migration, but will be applied by each XML file to a different location on the destination computer.
+>
+> The `MigUser.xml` and `MigDocs.xml` files shouldn't be used together in the same command. Using both XML files can result in duplication of some migrated files. Duplication of some migrated files can occur when conflicting target-location instructions are given in each XML file. The target file is stored once during the migration, but each XML file applies the file to a different location on the destination computer.
-If your data set is unknown or if many files are stored outside of the standard user-profile folders, the `MigDocs.xml` is a better choice than the `MigUser.xml` file, because the `MigDocs.xml` file will gather a broader scope of data. The `MigDocs.xml` file migrates folders of data based on location. The `MigUser.xml` file migrates only the files with the specified file name extensions.
+If the data set is unknown or if many files are stored outside of the standard user-profile folders, the `MigDocs.xml` is a better choice than the `MigUser.xml` file, because the `MigDocs.xml` file gathers a broader scope of data. The `MigDocs.xml` file migrates folders of data based on location. The `MigUser.xml` file migrates only the files with the specified file name extensions.
-If you want more control over the migration, you can create custom XML files. See [Creating and editing a custom XML file](#creating-and-editing-a-custom-xml-file) for more information.
+For more control over the migration, create custom XML files. For more information on creating custom XML files, see [Creating and editing a custom XML file](#creating-and-editing-a-custom-xml-file).
## Creating and editing a custom XML file
-You can use the `/genmigxml` command-line option to determine which files will be included in your migration. The `/genmigxml` option creates a file in a location you specify, so that you can review the XML rules and make modifications as necessary.
+The `/genmigxml` command-line option can be used to determine which files are included in the migration. The `/genmigxml` option creates a file in a specified location. The XML rules in the file can then be reviewed and if necessary, modifications made.
> [!NOTE]
-> If you reinstall USMT, the default migration XML files will be overwritten and any customizations you make directly to these files will be lost. Consider creating separate XML files for your custom migration rules and saving them in a secure location.
+>
+> If USMT is reinstalled, the default migration XML files are overwritten and any customizations made to these files are lost. Consider creating separate XML files for the custom migration rules and saving them in a secure location.
To generate the XML migration rules file for a source computer:
1. Select **Start** > **All Programs** > **Accessories**
-2. Right-click **Command Prompt**, and then select **Run as**.
+1. Right-click **Command Prompt**, and then select **Run as**.
-3. Select an account with administrator privileges, supply a password, and then select **OK**.
+1. Select an account with administrator privileges, supply a password, and then select **OK**.
-4. At the command prompt, enter:
+1. At the command prompt, enter:
```cmd
cd /d
ScanState.exe /genmigxml:
```
- Where *<USMTpath>* is the location on your source computer where you've saved the USMT files and tools, and *<filepath.xml>* is the full path to a file where you can save the report. For example, enter:
+ where:
+
+ - **\** - location on the source computer of the saved USMT files and tools.
+ - **\** - full path to a file where the report can be saved.
+
+ For example, enter:
```cmd
cd /d c:\USMT
- ScanState.exe /genmigxml:"C:\Documents and Settings\USMT Tester\Desktop\genMig.xml"
+ ScanState.exe /genmigxml:"C:\Users\USMT Tester\Desktop\genMig.xml"
```
### The GenerateDocPatterns function
-The `MigDocs.xml` file calls the `GenerateDocPatterns` function, which takes three Boolean values. You can change the settings to modify the way the `MigDocs.xml` file generates the XML rules for migration.
+The `MigDocs.xml` file calls the `GenerateDocPatterns` function, which takes three Boolean values. The settings can be changed to modify the way the `MigDocs.xml` file generates the XML rules for migration.
- `ScanProgramFiles`: This argument is valid only when the `GenerateDocPatterns` function is called in a system context. This argument determines whether or not to scan the Program Files directory to gather registered file name extensions for known applications.
**Default value**: False
- For example, when set to **TRUE**, the function discovers and migrates .doc files under the Microsoft Office directory, because .doc is a file name extension registered to a Microsoft Office application. The `GenerateDocPatterns` function generates this inclusion pattern for `.doc` files:
+ For example, when set to **TRUE**, the function discovers and migrates **.doc** files under the Microsoft Office directory, because **.doc** is a file name extension registered to a Microsoft Office application. The `GenerateDocPatterns` function generates this inclusion pattern for `.doc` files:
`C:\Program Files\Microsoft Office[.doc]`
- If a child folder of an included folder contains an installed application, ScanProgramFiles will also create an exclusion rule for the child folder. All folders under the application folder will be scanned recursively for registered file name extensions.
+ If a child folder of an included folder contains an installed application, `ScanProgramFiles` also creates an exclusion rule for the child folder. All folders under the application folder are scanned recursively for registered file name extensions.
- `IncludePatterns`: This argument determines whether to generate exclude or include patterns in the XML. When this argument is set to **TRUE**, the `GenerateDocPatterns` function generates include patterns, and the function must be added under the `` element. Changing this argument to **FALSE** generates exclude patterns and the function must be added under the `` element.
@@ -268,7 +283,10 @@ To create exclude data patterns:
### Understanding the system and user context
-The migration XML files contain two <component> elements with different **context** settings. The system context applies to files on the computer that aren't stored in the User Profiles directory, while the user context applies to files that are particular to an individual user.
+The migration XML files contain two \ elements with different **context** settings:
+
+- The system context applies to files on the computer that aren't stored in the User Profiles directory.
+- The user context applies to files that are particular to an individual user.
#### System context
@@ -319,27 +337,29 @@ The user context includes rules for data in the User Profiles directory. When ca
- FOLDERID_RecordedTV
> [!NOTE]
-> Rules contained in a component that is assigned the user context will be run for each user profile on the computer. Files that are scanned multiple times by the `MigDocs.xml` files will only be copied to the migration store once; however, a large number of rules in the user context can slow down the migration. Use the system context when it is applicable.
+>
+> Rules contained in a component that is assigned the user context runs for each user profile on the computer. Files that are scanned multiple times by the `MigDocs.xml` files are only copied to the migration store once. However, a large number of rules in the user context can slow down the migration. Use the system context when it's applicable.
### Sample migration rules for customized versions of XML files
-> [!NOTE]
+> [!TIP]
+>
> For best practices and requirements for customized XML files in USMT, see [Customize USMT XML Files](usmt-customize-xml-files.md) and [General Conventions](usmt-general-conventions.md).
### Exclude rules usage examples
-In the examples below, the source computer has a .txt file called "new text document" in a directory called "new folder". The default `MigDocs.xml` behavior migrates the new text document.txt file and all files contained in the "new folder" directory. The rules generated by the function are:
+In the following examples, the source computer has a **.txt** file called `new text document` in a directory called `new folder`. The default `MigDocs.xml` behavior migrates the new text `document.txt` file and all files contained in the `new folder` directory. The rules generated by the function are:
| Rule | Syntax |
|--- |--- |
|Rule 1|`d:\new folder[new text document.txt]`|
|Rule 2|`d:\new folder[]`|
-To exclude the new text document.txt file and any .txt files in "new folder", you can do the following modification:
+To exclude the new text `document.txt` file and any **.txt** files in `new folder`, the following modifications can be made:
#### Example 1: Exclude all .txt files in a folder
-To exclude Rule 1, there needs to be an exact match of the file name. However, for Rule 2, you can create a pattern to exclude files by using the file name extension.
+To exclude Rule 1, there needs to be an exact match of the file name. However, for Rule 2, a pattern can be created to exclude files by using the file name extension.
```xml
@@ -352,7 +372,7 @@ To exclude Rule 1, there needs to be an exact match of the file name. However, f
#### Example 2: Use the UnconditionalExclude element to give a rule precedence over include rules
-If you don't know the file name or location of the file, but you do know the file name extension, you can use the `GenerateDrivePatterns` function. However, the rule will be less specific than the default include rule generated by the `MigDocs.xml` file, so it will not have precedence. You must use the <UnconditionalExclude> element to give this rule precedence over the default include rule. For more information about the order of precedence for XML migration rules, see [Conflicts and Precedence](usmt-conflicts-and-precedence.md).
+If the file name or location of the file isn't known, but the file name extension is known, the `GenerateDrivePatterns` function can be used. However, the rule is less specific than the default include rule generated by the `MigDocs.xml` file, so it doesn't have precedence. The \ element must be used to give this rule precedence over the default include rule. For more information about the order of precedence for XML migration rules, see [Conflicts and Precedence](usmt-conflicts-and-precedence.md).
```xml
@@ -364,7 +384,7 @@ If you don't know the file name or location of the file, but you do know the fil
#### Example 3: Use a UserandSystem context component to run rules in both contexts
-If you want the **<UnconditionalExclude>** element to apply to both the system and user context, you can create a third component using the **UserandSystem** context. Rules in this component will be run in both contexts.
+To apply the **\** element to both the system and user context, a third component can be created using the **UserandSystem** context. Rules in this component run in both contexts.
```xml
@@ -381,15 +401,15 @@ If you want the **<UnconditionalExclude>** element to apply to both the sy
```
-For more examples of exclude rules that you can use in custom migration XML files, see [Exclude Files and Settings](usmt-exclude-files-and-settings.md).
+For more examples of exclude rules that can be used in custom migration XML files, see [Exclude Files and Settings](usmt-exclude-files-and-settings.md).
### Include rules usage examples
-The application data directory is the most common location that you would need to add an include rule for. The `GenerateDocPatterns` function excludes this location by default. If your company uses an application that saves important data to this location, you can create include rules to migrate the data. For example, the default location for .pst files is: `%CSIDL_LOCAL_APPDATA%\Microsoft\Outlook`. The `MigApp.xml` file contains migration rules to move only those .pst files that are linked to Microsoft Outlook. To include .pst files that aren't linked, you can do the following modification:
+The application data directory is the most common location that an include rule would need to be added for. The `GenerateDocPatterns` function excludes this location by default. If the organization uses an application that saves important data to this location, include rules can be created to migrate the data. For example, the default location for **.pst** files is: `%CSIDL_LOCAL_APPDATA%\Microsoft\Outlook`. The `MigApp.xml` file contains migration rules to move only those **.pst** files that are linked to Microsoft Outlook. To include **.pst** files that aren't linked, the following modification can be made:
#### Example 1: Include a file name extension in a known user folder
-This rule will include .pst files that are located in the default location, but aren't linked to Microsoft Outlook. Use the user context to run this rule for each user on the computer.
+This rule includes **.pst** files that are located in the default location, but aren't linked to Microsoft Outlook. Use the user context to run this rule for each user on the computer.
```xml
@@ -401,7 +421,7 @@ This rule will include .pst files that are located in the default location, but
#### Example 2: Include a file name extension in Program Files
-For locations outside the user profile, such as the Program Files folder, you can add the rule to the system context component.
+For locations outside the user profile, such as the Program Files folder, the rule can be added to the system context component.
```xml
@@ -411,19 +431,19 @@ For locations outside the user profile, such as the Program Files folder, you ca
```
-For more examples of include rules that you can use in custom migration XML files, see [Include Files and Settings](usmt-include-files-and-settings.md).
+For more examples of include rules that can be used in custom migration XML files, see [Include Files and Settings](usmt-include-files-and-settings.md).
-> [!NOTE]
+> [!TIP]
+>
> For more information about the order of precedence for XML migration rules, see [Conflicts and Precedence](usmt-conflicts-and-precedence.md).
## Next steps
-You can include additional rules for the migration in the `MigDocs.xml` file or other XML migration files. For example, you can use the `` element to move files from the folder where they were gathered to a different folder, when they're applied to the destination computer.
+Additional rules for the migration can be included in the `MigDocs.xml` file or other XML migration files. For example, the `` element can be used to move files from the folder where they were gathered to a different folder, when they're applied to the destination computer.
-You can use an XML schema (MigXML.xsd) file to validate the syntax of your customized XML files. For more information, see [USMT Resources](usmt-resources.md).
+An XML schema (`MigXML.xsd`) file can be used to validate the syntax of the customized XML files. For more information, see [USMT Resources](usmt-resources.md).
## Related articles
-[Exclude files and settings](usmt-exclude-files-and-settings.md)
-
-[Include files and settings](usmt-include-files-and-settings.md)
+- [Exclude files and settings](usmt-exclude-files-and-settings.md).
+- [Include files and settings](usmt-include-files-and-settings.md).
diff --git a/windows/deployment/usmt/usmt-best-practices.md b/windows/deployment/usmt/usmt-best-practices.md
index 98f95d0597..c7a079cf31 100644
--- a/windows/deployment/usmt/usmt-best-practices.md
+++ b/windows/deployment/usmt/usmt-best-practices.md
@@ -1,135 +1,140 @@
---
-title: USMT Best Practices (Windows 10)
-description: This article discusses general and security-related best practices when using User State Migration Tool (USMT) 10.0.
+title: USMT Best Practices
+description: This article discusses general and security-related best practices when using User State Migration Tool (USMT).
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/02/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# USMT best practices
-This article discusses general and security-related best practices when using User State Migration Tool (USMT) 10.0.
+This article discusses general and security-related best practices when using User State Migration Tool (USMT).
## General best practices
-- **Install applications before running the LoadState tool**
+- **Install applications before running the LoadState tool.**
- Though it isn't always essential, it's best practice to install all applications on the destination computer before restoring the user state. Installing applications before restoring user state helps ensure that migrated settings are preserved.
+ Though it isn't always essential, it's best practice to install all applications on the destination computer before restoring the user state. Installing applications before restoring user state helps ensure that migrated settings are preserved.
-- **Don't use MigUser.xml and MigDocs.xml together**
+- **Don't use MigUser.xml and MigDocs.xml together.**
- If you use both .xml files, some migrated files may be duplicated if conflicting instructions are given about target locations. You can use the `/genmigxml` command-line option to determine which files will be included in your migration, and to determine if any modifications are necessary. For more information, see [Identify file types, files, and folders](usmt-identify-file-types-files-and-folders.md).
+ If both `MigUser.xml` and `MigDocs.xml` are used together, some migrated files can be duplicated if conflicting instructions are given about target locations. The `/genmigxml` command-line option can be used to determine which files are included in the migration, and to determine if any modifications are necessary. For more information, see [Identify file types, files, and folders](usmt-identify-file-types-files-and-folders.md).
-- **Use MigDocs.xml for a better migration experience**
+- **Use MigDocs.xml for a better migration experience.**
- If your data set is unknown or if many files are stored outside of the standard user-profile folders, the `MigDocs.xml` file is a better choice than the `MigUser.xml` file, because the `MigDocs.xml` file will gather a broader scope of data. The `MigDocs.xml` file migrates folders of data based on location, and on registered file type by querying the registry for registered application extensions. The `MigUser.xml` file migrates only the files with the specified file extensions.
+ If the data set is unknown or if many files are stored outside of the standard user-profile folders, the `MigDocs.xml` file is a better choice than the `MigUser.xml` file, because the `MigDocs.xml` file gathers a broader scope of data. The `MigDocs.xml` file migrates folders of data based on location, and on registered file type by querying the registry for registered application extensions. The `MigUser.xml` file migrates only the files with the specified file extensions.
-- **Close all applications before running either the ScanState or LoadState tools**
+- **Close all applications before running either the ScanState or LoadState tools.**
- Although using the `/vsc` switch can allow the migration of many files that are open with another application, it's a best practice to close all applications in order to ensure all files and settings migrate. Without the `/vsc` or `/c` switch USMT will fail when it can't migrate a file or setting. When you use the `/c` option, USMT will ignore any files or settings that it can't migrate and log an error each time.
+ Although using the `/vsc` switch can allow the migration of many files that are open with another application, it's a best practice to close all applications in order to ensure all files and settings migrate. Without the `/vsc` or `/c` switch, USMT fails when it can't migrate a file or setting. When the `/c` option is used, USMT ignores any files or settings that it can't migrate and log an error each time.
-- **Log off after you run the LoadState**
+- **Log off after running the LoadState.**
- Some settings, such as fonts, wallpaper, and screensaver settings, won't take effect until the next time the user logs on. For this reason, you should sign out after you run the LoadState tool.
+ Some settings, such as fonts, wallpaper, and screensaver settings, won't take effect until the next time the user logs on. For this reason, sign out after running the **LoadState** tool.
-- **Managed environment**
+- **Managed environment.**
- To create a managed environment, you can move all of the end user's documents into My Documents (%CSIDL\_PERSONAL%). We recommend that you migrate files into the smallest-possible number of folders on the destination computer. Minimizing folders will help you to clean up files on the destination computer, if the `LoadState.exe` command fails before completion.
+ To create a managed environment, all of the end user's documents can be moved into the **Documents** folder (%CSIDL\_PERSONAL%). Microsoft recommends migrating files into the smallest-possible number of folders on the destination computer. Minimizing folders helps to clean up files on the destination computer if the `LoadState.exe` command fails before completion.
-- **Chkdsk.exe**
+- **Chkdsk.exe.**
- We recommend that you run **Chkdsk.exe** before running the ScanState and LoadState tools. **Chkdsk.exe** creates a status report for a hard disk drive and lists and corrects common errors. For more information about the **Chkdsk.exe** tool, see [Chkdsk](/previous-versions/windows/it-pro/windows-xp/bb490876(v=technet.10)).
+ Microsoft recommends running **Chkdsk.exe** before running the **ScanState** and **LoadState** tools. **Chkdsk.exe** creates a status report for a hard disk drive and lists and corrects common errors. For more information about the **Chkdsk.exe** tool, see [Chkdsk](/previous-versions/windows/it-pro/windows-xp/bb490876(v=technet.10)).
-- **Migrate in groups**
+- **Migrate in groups.**
- If you decide to perform the migration while users are using the network, it's best to migrate user accounts in groups. To minimize the impact on network performance, determine the size of the groups based on the size of each user account. Migrating in phases also allows you to make sure each phase is successful before starting the next phase. Using this method, you can make any necessary modifications to your plan between groups.
+ If the migration is performed while users are using the network, it's best to migrate user accounts in groups. To minimize the effect on network performance, determine the size of the groups based on the size of each user account. Migrating in phases also allows making sure each phase is successful before starting the next phase. When this method is, any necessary modifications can be made to the plan between groups.
## Security best practices
-As the authorized administrator, it is your responsibility to protect the privacy of the users and maintain security during and after the migration. In particular, you must consider the following issues:
+As the authorized administrator, it's the responsibility to protect the privacy of the users and maintain security during and after the migration. In particular, the following issues must be considered:
-- **Encrypting File System (EFS)**
+- **Encrypting File System (EFS).**
- Take extreme caution when migrating encrypted files, because the end user doesn't need to be logged on to capture the user state. By default, USMT fails if an encrypted file is found. For specific instructions about EFS best practices, see [Migrate EFS Files and Certificates](usmt-migrate-efs-files-and-certificates.md).
+ Take extreme caution when migrating encrypted files, because the end user doesn't need to be logged on to capture the user state. By default, USMT fails if an encrypted file is found. For specific instructions about EFS best practices, see [Migrate EFS Files and Certificates](usmt-migrate-efs-files-and-certificates.md).
- > [!NOTE]
- > If you migrate an encrypted file without also migrating the certificate, end users will not be able to access the file after the migration.
+ > [!NOTE]
+ >
+ > If an encrypted file is migrated without also migrating the certificate, end users won't be able to access the file after the migration.
-- **Encrypt the store**
+- **Encrypt the store.**
- Consider using the `/encrypt` option with the `ScanState.exe` command and the `/decrypt` option with the `LoadState.exe` command. However, use extreme caution with this set of options, because anyone who has access to the `ScanState.exe` command-line script also has access to the encryption key.
+ Consider using the `/encrypt` option with the `ScanState.exe` command and the `/decrypt` option with the `LoadState.exe` command. However, use extreme caution with this set of options, because anyone who has access to the `ScanState.exe` command-line script also has access to the encryption key.
-- **Virus Scan**
+- **Virus Scan.**
- We recommend that you scan both the source and destination computers for viruses before running USMT. In addition, you should scan the destination computer image. To help protect data from viruses, we strongly recommend running an antivirus utility before migration.
+ Microsoft recommends to scan both the source and destination computers for viruses before running USMT. In addition, the destination computer image should be scanned. To help protect data from viruses, Microsoft strongly recommends running an antivirus utility before migration.
-- **Maintain security of the file server and the deployment server**
+- **Maintain security of the file server and the deployment server.**
- We recommend that you manage the security of the file and deployment servers. It's important to make sure that the file server where you save the store is secure. You must also secure the deployment server, to ensure that the user data that is in the log files isn't exposed. We also recommend that you only transmit data over a secure Internet connection, such as a virtual private network. For more information about network security, see [Microsoft Security Compliance Manager](https://www.microsoft.com/download/details.aspx?id=53353).
+ Microsoft recommends managing the security of the file and deployment servers. It's important to make sure that the file server where the store is saved is secure. The deployment server must also be secured to ensure that the user data that is in the log files isn't exposed. Microsoft also recommends to only transmit data over a secure network connection, such as a virtual private network. For more information about network security, see [Microsoft Security Compliance Manager](https://www.microsoft.com/download/details.aspx?id=53353).
-- **Password Migration**
+- **Password Migration.**
- To ensure the privacy of the end users, USMT doesn't migrate passwords, including passwords for applications such as Windows Live™ Mail, Microsoft Internet Explorer®, and Remote Access Service (RAS) connections and mapped network drives. It's important to make sure that end users know their passwords.
+ To ensure the privacy of the end users, USMT doesn't migrate passwords, including passwords for applications or mapped network drives. It's important to make sure that end users know their passwords.
-- **Local Account Creation**
+- **Local Account Creation.**
- Before you migrate local accounts, see the Migrating Local Accounts section in the [Identify Users](usmt-identify-users.md) article.
+ Before local accounts are migrated, see the Migrating Local Accounts section in the [Identify Users](usmt-identify-users.md) article.
## XML file best practices
-- **Specify the same set of mig\*.xml files in both the ScanState and the LoadState tools**
+- **Specify the same set of mig\*.xml files in both the ScanState and the LoadState tools.**
- If you used a particular set of mig\*.xml files in the ScanState tool, either called through the `/auto` option, or individually through the `/i` option, then you should use same option to call the exact same mig\*.xml files in the LoadState tool.
+ If a particular set of mig\*.xml files are used with the **ScanState** tool, either called through the `/auto` option, or individually through the `/i` option, then the same option should be used to call the exact same mig\*.xml files in the **LoadState** tool.
-- **The <CustomFileName> in the migration urlid should match the name of the file**
+- **The \ in the migration urlid should match the name of the file.**
- Although it isn't a requirement, it's good practice for **<CustomFileName>** to match the name of the file. For example, the following example is from the `MigApp.xml` file:
+ Although it isn't a requirement, it's good practice for **\** to match the name of the file. For example, the following example is from the `MigApp.xml` file:
- ```xml
-
-
- ```
+ ```xml
+
+
+ ```
-- **Use the XML Schema (MigXML.xsd) when authoring .xml files to validate syntax**
+- **Use the XML Schema (MigXML.xsd) when authoring .xml files to validate syntax.**
- The `MigXML.xsd` schema file shouldn't be included on the command line or in any of the .xml files.
+ The `MigXML.xsd` schema file shouldn't be included on the command line or in any of the **.xml** files.
-- **Use the default migration XML files as models**
+- **Use the default migration XML files as models.**
- To create a custom .xml file, you can use the migration .xml files as models to create your own. If you need to migrate user data files, model your custom .xml file on `MigUser.xml`. To migrate application settings, model your custom .xml file on the `MigApp.xml` file.
+ To create a custom **.xml** file, migration **.xml** files can be used as models to create customized versions. If user data files need to be migrated, model the custom **.xml** file on `MigUser.xml`. To migrate application settings, model the custom **.xml** file on the `MigApp.xml` file.
-- **Consider the impact on performance when using the <context> parameter**
+- **Consider the impact on performance when using the \ parameter.**
- Your migration performance can be affected when you use the **<context>** element with the **<component>** element; for example, as in when you want to encapsulate logical units of file- or path-based **<include>** and **<exclude>** rules.
+ The migration performance can be affected when the **\** element is used with the **\** element. For example, when encapsulating logical units of file- or path-based **\** and **\** rules.
- In the **User** context, a rule is processed one time for each user on the system.
+ In the **User** context, a rule is processed one time for each user on the system.
+
+ In the **System** context, a rule is processed one time for the system.
- In the **System** context, a rule is processed one time for the system.
+ In the **UserAndSystem** context, a rule is processed one time for each user on the system and one time for the system.
- In the **UserAndSystem** context, a rule is processed one time for each user on the system and one time for the system.
+ > [!NOTE]
+ >
+ > The number of times a rule is processed doesn't affect the number of times a file is migrated. The USMT migration engine ensures that each file migrates only once.
- > [!NOTE]
- > The number of times a rule is processed does not affect the number of times a file is migrated. The USMT migration engine ensures that each file migrates only once.
+- **Microsoft recommends to create a separate .xml file instead of adding .xml code to one of the existing migration .xml files.**
-- **We recommend that you create a separate .xml file instead of adding your .xml code to one of the existing migration .xml files**
+ For example, for code that migrates the settings for an application, the code shouldn't just be added to the `MigApp.xml` file.
- For example, if you have code that migrates the settings for an application, you shouldn't just add the code to the `MigApp.xml` file.
+- **Custom .xml files shouldn't be created to alter the operating system settings that are migrated.**
-- **You should not create custom .xml files to alter the operating system settings that are migrated**
+ Manifest files determine what settings are migrated. Manifest files can't be modified. Since manifest files can't be modified, to exclude certain operating system settings from the migration, create and modify a `Config.xml` file instead.
- These settings are migrated by manifests and you can't modify those files. If you want to exclude certain operating system settings from the migration, you should create and modify a `Config.xml` file.
+- **The asterisk (\*) wildcard character can be used in any migration XML file that is created.**
-- **You can use the asterisk (\*) wildcard character in any migration XML file that you create**
-
- > [!NOTE]
- > The question mark is not valid as a wildcard character in USMT .xml files.
+ > [!NOTE]
+ >
+ > The question mark isn't valid as a wildcard character in USMT **.xml** files.
## Related articles
-[Migration store encryption](usmt-migration-store-encryption.md)
-
-[Plan your migration](usmt-plan-your-migration.md)
+- [Migration store encryption](usmt-migration-store-encryption.md).
+- [Plan the migration](usmt-plan-your-migration.md).
diff --git a/windows/deployment/usmt/usmt-choose-migration-store-type.md b/windows/deployment/usmt/usmt-choose-migration-store-type.md
index ab33c29403..bcee347165 100644
--- a/windows/deployment/usmt/usmt-choose-migration-store-type.md
+++ b/windows/deployment/usmt/usmt-choose-migration-store-type.md
@@ -1,30 +1,37 @@
---
-title: Choose a Migration Store Type (Windows 10)
-description: Learn how to choose a migration store type and estimate the amount of disk space needed for computers in your organization.
+title: Choose a Migration Store Type
+description: Learn how to choose a migration store type and estimate the amount of disk space needed for computers in the organization.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Choose a migration store type
-One of the main considerations for planning your migration is to determine which migration store type best meets your needs. As part of these considerations, determine how much space is required to run the User State Migration Tool (USMT) 10.0 components on your source and destination computers, and how much space is needed to create and host the migration store, whether you're using a local share, network share, or storage device. The final consideration is ensuring that user date integrity is maintained by encrypting the migration store.
+One of the main considerations for planning the migration is to determine which migration store type best meets the organization's needs. As part of these considerations, determine the following items:
+
+- How much space is required to run the User State Migration Tool (USMT) components on the source and destination computers.
+- How much space is needed to create and host the migration store.
+- Whether a local share, network share, or storage device should be used.
+- Ensure that user date integrity is maintained by encrypting the migration store.
## In this section
| Link | Description |
|--- |--- |
-|[Migration store types overview](migration-store-types-overview.md)|Choose the migration store type that works best for your needs and migration scenario.|
-|[Estimate migration store size](usmt-estimate-migration-store-size.md)|Estimate the amount of disk space needed for computers in your organization based on information about your organization's infrastructure.|
+|[Migration store types overview](migration-store-types-overview.md)|Choose the migration store type that works best for the organization's needs and migration scenario.|
+|[Estimate migration store size](usmt-estimate-migration-store-size.md)|Estimate the amount of disk space needed for computers in the organization based on information about the organization's infrastructure.|
|[Hard-link migration store](usmt-hard-link-migration-store.md)|Learn about hard-link migration stores and the scenarios in which they're used.|
|[Migration store encryption](usmt-migration-store-encryption.md)|Learn about the using migration store encryption to protect user data integrity during a migration.|
## Related articles
-[Plan your migration](usmt-plan-your-migration.md)
-
-[User State Migration Tool (USMT) how-to topics](usmt-how-to.md)
+- [Plan the migration](usmt-plan-your-migration.md)
+- [User State Migration Tool (USMT) how-articles](usmt-how-to.md)
diff --git a/windows/deployment/usmt/usmt-command-line-syntax.md b/windows/deployment/usmt/usmt-command-line-syntax.md
index 55cfe5e69c..9c39155386 100644
--- a/windows/deployment/usmt/usmt-command-line-syntax.md
+++ b/windows/deployment/usmt/usmt-command-line-syntax.md
@@ -1,23 +1,26 @@
---
-title: User State Migration Tool (USMT) Command-line Syntax (Windows 10)
-description: Learn about the User State Migration Tool (USMT) command-line syntax for using the ScanState tool, LoadState tool, and UsmtUtils tool.
+title: User State Migration Tool (USMT) Command-line Syntax
+description: Learn about the User State Migration Tool (USMT) command-line syntax for using the **ScanState** tool, **LoadState** tool, and UsmtUtils tool.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# User State Migration Tool (USMT) command-line syntax
-The User State Migration Tool (USMT) 10.0 migrates user files and settings during large deployments of Windows. To improve and simplify the migration process, USMT captures desktop, network, and application settings in addition to a user's files. USMT then migrates these items to a new Windows installation.
+The User State Migration Tool (USMT) migrates user files and settings during large deployments of Windows. To improve and simplify the migration process, USMT captures desktop, network, and application settings in addition to a user's files. USMT then migrates these items to a new Windows installation.
## In this Section
| Link | Description |
|--- |--- |
-|[ScanState syntax](usmt-scanstate-syntax.md)|Lists the command-line options for using the ScanState tool.|
-|[LoadState syntax](usmt-loadstate-syntax.md)|Lists the command-line options for using the LoadState tool.|
+|[**ScanState** syntax](usmt-scanstate-syntax.md)|Lists the command-line options for using the **ScanState** tool.|
+|[LoadState syntax](usmt-loadstate-syntax.md)|Lists the command-line options for using the **LoadState** tool.|
|[UsmtUtils syntax](usmt-utilities.md)|Lists the command-line options for using the UsmtUtils tool.|
diff --git a/windows/deployment/usmt/usmt-common-migration-scenarios.md b/windows/deployment/usmt/usmt-common-migration-scenarios.md
index 183565827a..0b9d8c0c79 100644
--- a/windows/deployment/usmt/usmt-common-migration-scenarios.md
+++ b/windows/deployment/usmt/usmt-common-migration-scenarios.md
@@ -1,109 +1,119 @@
---
-title: Common Migration Scenarios (Windows 10)
-description: See how the User State Migration Tool (USMT) 10.0 is used when planning hardware and/or operating system upgrades.
+title: Common Migration Scenarios
+description: See how the User State Migration Tool (USMT) is used when planning hardware and/or operating system upgrades.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Common Migration Scenarios
-You use the User State Migration Tool (USMT) 10.0 when hardware and/or operating system upgrades are planned for a large number of computers. USMT manages the migration of an end-user's digital identity by capturing the user's operating-system settings, application settings, and personal files from a source computer and reinstalling them on a destination computer after the upgrade has occurred.
+The User State Migration Tool (USMT) can be used when hardware and/or operating system upgrades are planned for a large number of computers. USMT manages the migration of an end-user's digital identity by capturing from a source computer the following user's items:
-One common scenario is when the operating system is upgraded on existing hardware without the hardware being replaced. This scenario is referred to as *PC-refresh*. A second common scenario is known as *PC replacement*, where one piece of hardware is being replaced, typically by newer hardware and a newer operating system.
+- Operating-system settings.
+- Application settings.
+- Personal files.
+
+Once these items are capture, they're reinstalled on a destination computer after the upgrade completes.
+
+One common scenario is when the operating system is upgraded on existing hardware without the hardware being replaced. This scenario is referred to as **PC-refresh**. A second common scenario is known as **PC replacement**, where one piece of hardware is being replaced, typically by newer hardware and a newer operating system.
## PC-refresh
-The following diagram shows a PC-refresh migration, also known as a computer refresh migration. First, the administrator migrates the user state from a source computer to an intermediate store. After installing the operating system, the administrator migrates the user state back to the source computer.
+The following diagram shows a PC-refresh migration, also known as a computer refresh migration. First, the administrator migrates the user state from a source computer to an intermediate store. After the administrator installs the operating system, they migrate the user state back to the source computer.

### Scenario One: PC-refresh offline using Windows PE and a hard-link migration store
-A company has received funds to update the operating system on all of its computers in the accounting department to Windows 10. Each employee will keep the same computer, but the operating system on each computer will be updated. In this scenario, the update is being handled offline, without a network connection. An administrator uses Windows Preinstallation Environment (WinPE) and a hard-link migration store to save each user state to their respective computer.
+An organization receives funds to update the operating system on all of its computers in the accounting department to the latest supported version of Windows. Each employee keeps the same computer, but the operating system on each computer will be updated. In this scenario, the update is being handled offline, without a network connection. An administrator uses Windows Preinstallation Environment (WinPE) and a hard-link migration store to save each user state to their respective computer.
1. On each computer, the administrator boots the machine into WinPE and runs the **ScanState** command-line tool, specifying the `/hardlink /nocompress` command-line options. **ScanState** saves the user state to a hard-link migration store on each computer, improving performance by minimizing network traffic and minimizing migration failures on computers with limited space available on the hard drive.
-2. On each computer, the administrator installs the company's standard operating environment (SOE) which includes Windows 10 and other company applications.
+1. On each computer, the administrator installs the organization's standard operating environment (SOE) which includes the latest supported version of Windows and other organization applications.
-3. The administrator runs the **LoadState** command-line tool on each computer. **LoadState** restores each user state back to each computer.
+1. The administrator runs the **LoadState** command-line tool on each computer. **LoadState** restores each user state back to each computer.
### Scenario Two: PC-refresh using a compressed migration store
-A company has received funds to update the operating system on all of its computers to Windows 10. Each employee will keep the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses a compressed migration store to save the user states to a server.
+An organization receives funds to update the operating system on all of its computers to the latest supported version of Windows. Each employee keeps the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses a compressed migration store to save the user states to a server.
1. The administrator runs the **ScanState** command-line tool on each computer. **ScanState** saves each user state to a server.
-2. On each computer, the administrator installs the company's standard SOE that includes Windows 10 and other company applications.
+1. On each computer, the administrator installs the organization's standard SOE that includes the latest supported version of Windows and other organization applications.
-3. The administrator runs the **LoadState** command-line tool on each source computer, and **LoadState** restores each user state back to the computer.
+1. The administrator runs the **LoadState** command-line tool on each source computer, and **LoadState** restores each user state back to the computer.
### Scenario Three: PC-refresh using a hard-link migration store
-A company has received funds to update the operating system on all of its computers to Windows 10. Each employee will keep the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses a hard-link migration store to save each user state to their respective computer.
+An organization receives funds to update the operating system on all of its computers to the latest supported version of Windows. Each employee keeps the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses a hard-link migration store to save each user state to their respective computer.
1. The administrator runs the **ScanState** command-line tool on each computer, specifying the `/hardlink /nocompress` command-line options. **ScanState** saves the user state to a hard-link migration store on each computer, improving performance by minimizing network traffic and minimizing migration failures on computers with limited space available on the hard drive.
-2. On each computer, the administrator installs the company's SOE that includes Windows 10 and other company applications.
+1. On each computer, the administrator installs the organization's SOE that includes the latest supported version of Windows and other organization applications.
-3. The administrator runs the **LoadState** command-line tool on each computer. **LoadState** restores each user state back on each computer.
+1. The administrator runs the **LoadState** command-line tool on each computer. **LoadState** restores each user state back on each computer.
### Scenario Four: PC-refresh using Windows.old folder and a hard-link migration store
-A company has decided to update the operating system on all of its computers to Windows 10. Each employee will keep the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses Windows.old and a hard-link migration store to save each user state to their respective computer.
+An organization decides to update the operating system on all of its computers to the latest supported version of Windows. Each employee keeps the same computer, but the operating system on each computer will be updated. In this scenario, an administrator uses **Windows.old** and a hard-link migration store to save each user state to their respective computer.
-1. The administrator clean installs Windows 10 on each computer, making sure that the Windows.old directory is created by installing Windows 10 without formatting or repartitioning and by selecting a partition that contains the previous version of Windows.
+1. The administrator clean installs the latest supported version of Windows on each computer. During the install, they make sure that the **Windows.old** directory is created by taking the following actions:
-2. On each computer, the administrator installs the company's SOE that includes company applications.
+ - Performing the install without formatting or repartitioning the disk.
+ - Selecting a partition that contains the previous version of Windows.
-3. The administrator runs the **ScanState** and **LoadState** command-line tools successively on each computer while specifying the `/hardlink /nocompress` command-line options.
+1. On each computer, the administrator installs the organization's SOE that includes organization applications.
+
+1. The administrator runs the **ScanState** and **LoadState** command-line tools successively on each computer while specifying the `/hardlink /nocompress` command-line options.
## PC-replacement
-The following diagram shows a PC-replacement migration. First, the administrator migrates the user state from the source computer to an intermediate store. After installing the operating system on the destination computer, the administrator migrates the user state from the store to the destination computer.
+The following diagram shows a PC-replacement migration. First, the administrator migrates the user state from the source computer to an intermediate store. After the administrator installs the operating system on the destination computer, they migrate the user state from the store to the destination computer.

### Scenario One: Offline migration using Windows PE and an external migration store
-A company is allocating 20 new computers to users in the accounting department. The users each have a source computer with their files and settings. In this scenario, migration is being handled offline, without a network connection.
+An organization is allocating 20 new computers to users in the accounting department. The users each have a source computer with their files and settings. In this scenario, migration is being handled offline, without a network connection.
1. On each source computer, an administrator boots the machine into WinPE and runs **ScanState** to collect the user state to either a server or an external hard disk.
-2. On each new computer, the administrator installs the company's SOE that includes Windows 10 and other company applications.
+1. On each new computer, the administrator installs the organization's SOE that includes the latest supported version of Windows and other organization applications.
-3. On each of the new computers, the administrator runs the **LoadState** tool, restoring each user state from the migration store to one of the new computers.
+1. On each of the new computers, the administrator runs the **LoadState** tool, restoring each user state from the migration store to one of the new computers.
### Scenario Two: Manual network migration
-A company receives 50 new laptops for their managers and needs to reallocate 50 older laptops to new employees. In this scenario, an administrator runs the **ScanState** tool from the cmd prompt on each computer to collect the user states and save them to a server in a compressed migration store.
+An organization receives 50 new laptops for their managers and needs to reallocate 50 older laptops to new employees. In this scenario, an administrator runs the **ScanState** tool from the cmd prompt on each computer to collect the user states and save them to a server in a compressed migration store.
1. The administrator runs the **ScanState** tool on each of the manager's old laptops, and saves each user state to a server.
-2. On the new laptops, the administrator installs the company's SOE, which includes Windows 10 and other company applications.
+1. On the new laptops, the administrator installs the organization's SOE, which includes the latest supported version of Windows and other organization applications.
-3. The administrator runs the **LoadState** tool on the new laptops to migrate the managers' user states to the appropriate computer. The new laptops are now ready for the managers to use.
+1. The administrator runs the **LoadState** tool on the new laptops to migrate the managers' user states to the appropriate computer. The new laptops are now ready for the managers to use.
-4. On the old computers, the administrator installs the company's SOE, which includes Windows 10, Microsoft Office, and other company applications. The old computers are now ready for the new employees to use.
+1. On the old computers, the administrator installs the organization's SOE, which includes the latest supported version of Windows, Microsoft Office, and other organization applications. The old computers are now ready for the new employees to use.
### Scenario Three: Managed network migration
-A company is allocating 20 new computers to users in the accounting department. The users each have a source computer that contains their files and settings. An administrator uses a management technology such as a sign-in script or a batch file to run **ScanState** on each source computer to collect the user states and save them to a server in a compressed migration store.
+An organization is allocating 20 new computers to users in the accounting department. The users each have a source computer that contains their files and settings. An administrator uses a management technology such as a sign-in script or a batch file to run **ScanState** on each source computer to collect the user states and save them to a server in a compressed migration store.
1. On each source computer, the administrator runs the **ScanState** tool using Microsoft Configuration Manager, Microsoft Deployment Toolkit (MDT), a sign-in script, a batch file, or a non-Microsoft management technology. **ScanState** collects the user state from each source computer and then saves it to a server.
-2. On each new computer, the administrator installs the company's SOE, which includes Windows 10 and other company applications.
+1. On each new computer, the administrator installs the organization's SOE, which includes the latest supported version of Windows and other organization applications.
-3. On each of the new computers, the administrator runs the **LoadState** tool using Microsoft Configuration Manager, a sign-in script, a batch file, or a non-Microsoft management technology. **LoadState** migrates each user state from the migration store to one of the new computers.
+1. On each of the new computers, the administrator runs the **LoadState** tool using Microsoft Configuration Manager, a sign-in script, a batch file, or a non-Microsoft management technology. **LoadState** migrates each user state from the migration store to one of the new computers.
## Related articles
-[Plan your migration](usmt-plan-your-migration.md)
-
-[Choose a migration store type](usmt-choose-migration-store-type.md)
-
-[Offline migration reference](offline-migration-reference.md)
+- [Plan the migration](usmt-plan-your-migration.md).
+- [Choose a migration store type](usmt-choose-migration-store-type.md).
+- [Offline migration reference](offline-migration-reference.md).
diff --git a/windows/deployment/usmt/usmt-configxml-file.md b/windows/deployment/usmt/usmt-configxml-file.md
index a144f93cd4..50d35e7bcb 100644
--- a/windows/deployment/usmt/usmt-configxml-file.md
+++ b/windows/deployment/usmt/usmt-configxml-file.md
@@ -1,53 +1,65 @@
---
-title: Config.xml File (Windows 10)
-description: Learn how the Config.xml file is an optional User State Migration Tool (USMT) 10.0 file that you can create using the /genconfig option with the ScanState.exe tool.
+title: Config.xml File
+description: Learn how the Config.xml file is an optional User State Migration Tool (USMT) file that can be created using the /genconfig option with the ScanState.exe tool.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Config.xml File
-The `Config.xml` file is an optional User State Migration Tool (USMT) 10.0 file that you can create using the `/genconfig` option with the ScanState tool. If you want to include all of the default components, and don't want to change the default store-creation or profile-migration behavior, you don't need to create a `Config.xml` file.
+The `Config.xml` file is an optional User State Migration Tool (USMT) file that can be created using the `/genconfig` option with the **ScanState** tool. If all of the default components should be included and no changes need to be made to the default store-creation or profile-migration behavior, a `Config.xml` file doesn't need to be created.
-However, if you're satisfied with the default migration behavior defined in the `MigApp.xml`, `MigUser.xml` and `MigDocs.xml` files, but you want to exclude certain components, you can create and modify a `Config.xml` file and leave the other .xml files unchanged. For example, you must create and modify the `Config.xml` file if you want to exclude any of the operating-system settings that are migrated. It's necessary to create and modify this file if you want to change any of the default store-creation or profile-migration behavior.
+However, if the default migration behavior defined in the `MigApp.xml`, `MigUser.xml` and `MigDocs.xml` files is satisfactory, but certain components need to be excluded, a `Config.xml` file can be created and modified while leaving the other **.xml** files unchanged. For example, a `Config.xml` file must be created to exclude any of the operating-system settings that are migrated. It's necessary to create and modify the `Config.xml` file to change any of the default store-creation or profile-migration behavior.
-The `Config.xml` file has a different format than the other migration .xml files, because it doesn't contain any migration rules. It contains only a list of the operating-system components, applications, user documents that can be migrated, and user-profile policy and error-control policy. For this reason, excluding components using the `Config.xml` file is easier than modifying the migration .xml files, because you don't need to be familiar with the migration rules and syntax. However, you can't use wildcard characters in this file.
+The `Config.xml` file has a different format than the other migration **.xml** files, because it doesn't contain any migration rules. It contains only a list of the operating-system components, applications, user documents that can be migrated, and user-profile policy and error-control policy. For this reason, excluding components using the `Config.xml` file is easier than modifying the migration **.xml** files, because familiarization with the migration rules and syntax isn't needed. However, wildcard characters can't be used in this file.
For more information about using the `Config.xml` file with other migration files, such as the `MigDocs.xml` and `MigApps.xml` files, see [Understanding Migration XML Files](understanding-migration-xml-files.md).
> [!NOTE]
-> To exclude a component from the `Config.xml` file, set the **migrate** value to **no**. Deleting the XML tag for the component from the `Config.xml` file will not exclude the component from your migration.
+>
+> To exclude a component from the `Config.xml` file, set the **migrate** value to **no**. Deleting the XML tag for the component from the `Config.xml` file doesn't exclude the component from the migration.
## Migration Policies
-In USMT there are new migration policies that can be configured in the `Config.xml` file. For example, you can configure additional **<ErrorControl>**, **<ProfileControl>**, and **<HardLinkStoreControl>** options. The following elements and parameters are for use in the `Config.xml` file only.
+In USMT, there are migration policies that can be configured in the `Config.xml` file. For example, **\**, **\**, and **\** options can be configured. The following elements and parameters are for use in the `Config.xml` file only.
-### <Policies>
+### \
-The **<Policies>** element contains elements that describe the policies that USMT follows while creating a migration store. Valid children of the **<Policies>** element are **<ErrorControl>** and **<HardLinkStoreControl>**. The **<Policies>** element is a child of **<Configuration>**.
+The **\** element contains elements that describe the policies that USMT follows while creating a migration store. Valid children of the **\** element are **\** and **\**. The **\** element is a child of **\**.
-Syntax: `` ``
+Syntax:
-### <ErrorControl>
+```xml
+
+```
-The **<ErrorControl>** element is an optional element you can configure in the `Config.xml` file. The configurable **<ErrorControl>** rules support only the environment variables for the operating system that is running and the currently logged-on user. As a workaround, you can specify a path using the (\*) wildcard character.
+### \
+
+The **\** element is an optional element that can be configured in the `Config.xml` file. The configurable **\** rules support only the environment variables for the operating system that is running and the currently logged-on user. As a workaround, a path can be specified using the (\*) wildcard character.
- **Number of occurrences**: Once for each component
-- **Parent elements**: The **<Policies>** element
+- **Parent elements**: The **\** element
-- **Child elements**: The **<fileError>** and **<registryError>** element
+- **Child elements**: The **\** and **\** element
-Syntax: `` ``
+Syntax:
-The following example specifies that all locked files, regardless of their location (including files in C:\\Users), should be ignored. However, the migration fails if any file in C:\\Users can't be accessed because of any other reason. In the example below, the **<ErrorControl>** element ignores any problems in migrating registry keys that match the supplied pattern, and it resolves them to an **Access denied** error.
+```xml
+
+```
-Additionally, the order in the **<ErrorControl>** section implies priority. In this example, the first **<nonFatal>** tag takes precedence over the second **<fatal>** tag. This precedence is applied, regardless of how many tags are listed.
+The following example specifies that all locked files, regardless of their location (including files in C:\\Users), should be ignored. However, the migration fails if any file in C:\\Users can't be accessed because of any other reason. In the following example, the **\** element ignores any problems in migrating registry keys that match the supplied pattern, and it resolves them to an **Access denied** error.
+
+Additionally, the order in the **\** section implies priority. In this example, the first **\** tag takes precedence over the second **\** tag. This precedence is applied, regardless of how many tags are listed.
```xml
@@ -62,94 +74,120 @@ Additionally, the order in the **<ErrorControl>** section implies priority
```
> [!IMPORTANT]
-> The configurable **<ErrorControl>** rules support only the environment variables for the operating system that is running and the currently logged-on user. As a workaround, you can specify a path using the (\*) wildcard character.
+>
+> The configurable **\** rules support only the environment variables for the operating system that is running and the currently logged-on user. As a workaround, a path using the (\*) wildcard character can be specified.
-### <fatal>
+### \
-The **<fatal>** element isn't required.
+The **\** element isn't required.
- **Number of occurrences**: Once for each component
-- **Parent elements**: **<fileError>** and **<registryError>**
+- **Parent elements**: **\** and **\**
- **Child elements**: None.
-Syntax: `` *<pattern>* ``
+Syntax:
+
+```xml
+
+```
|Parameter|Required|Value|
|--- |--- |--- |
|errorCode|No|"any" or "*specify system error message here*"|
-You use the **<fatal>** element to specify that errors matching a specific pattern should cause USMT to halt the migration.
+The **\** element can be used to specify that errors matching a specific pattern should cause USMT to halt the migration.
-### <fileError>
+### \
-The **<fileError>** element isn't required.
+The **\** element isn't required.
- **Number of occurrences**: Once for each component
-- **Parent elements**: **<ErrorControl>**
+- **Parent elements**: **\**
-- **Child elements**: **<nonFatal>** and **<fatal>**
+- **Child elements**: **\** and **\**
-Syntax: `` ``
+Syntax:
-You use the **<fileError>** element to represent the behavior associated with file errors.
+```xml
+
+```
-### <nonFatal>
+The **\** element can be used to represent the behavior associated with file errors.
-The **<nonFatal>** element isn't required.
+### \
+
+The **\** element isn't required.
- **Number of occurrences**: Once for each component
-- **Parent elements**: The **<fileError>** and **<registryError>** elements.
+- **Parent elements**: The **\** and **\** elements.
- **Child elements**: None.
-Syntax: `` *<pattern>* ``
+Syntax:
+
+```xml
+
+```
|Parameter|Required|Value|
|--- |--- |--- |
-|**<errorCode>**|No|"any" or "*specify system error message here*". If system error messages aren't specified, the default behavior applies the parameter to all system error messages.|
+|**\**|No|"any" or "*specify system error message*". If system error messages aren't specified, the default behavior applies the parameter to all system error messages.|
-You use the **<nonFatal>** element to specify that errors matching a specific pattern shouldn't cause USMT to halt the migration.
+The **\** element can be used to specify that errors matching a specific pattern shouldn't cause USMT to halt the migration.
-### <registryError>
+### \
-The **<registryError>** element isn't required.
+The **\** element isn't required.
- **Number of occurrences**: Once for each component
-- **Parent elements**: **<ErrorControl>**
+- **Parent elements**: **\**
-- **Child elements**: **<nonfatal>** and **<fatal>**
+- **Child elements**: **\** and **\**
-Syntax: `` ``
+Syntax:
+
+```xml
+
+```
|Parameter|Required|Value|
|--- |--- |--- |
-|**<errorCode>**|No|"any" or "*specify system error message here*". If system error messages aren't specified, the default behavior applies the parameter to all system error messages.|
+|**\**|No|"any" or "*specify system error message here*". If system error messages aren't specified, the default behavior applies the parameter to all system error messages.|
-You use the **<registryError>** element to specify that errors matching a specific pattern shouldn't cause USMT to halt the migration.
+The **\** element can be used to specify that errors matching a specific pattern shouldn't cause USMT to halt the migration.
-### <HardLinkStoreControl>
+### \
-The **<HardLinkStoreControl>** element contains elements that describe how to handle files during the creation of a hard-link migration store. Its only valid child is **<fileLocked>**.
+The **\** element contains elements that describe how to handle files during the creation of a hard-link migration store. Its only valid child is **\**.
-Syntax: `` ``
+Syntax:
+
+```xml
+
+```
- **Number of occurrences**: Once for each component
-- **Parent elements**: **<Policies>**
+- **Parent elements**: **\**
-- **Child elements**: **<fileLocked>**
+- **Child elements**: **\**
-Syntax: `` ``
+Syntax:
-The **<HardLinkStoreControl>** sample code below specifies that hard links can be created to locked files only if the locked file resides somewhere under C:\\Users\\. Otherwise, a file-access error occurs when a locked file is encountered that can't be copied, even though is technically possible for the link to be created.
+```xml
+
+```
+
+The following **\** sample code specifies that hard links can be created to locked files only if the locked file resides somewhere under C:\\Users\\. Otherwise, a file-access error occurs when a locked file is encountered that can't be copied, even though is technically possible for the link to be created.
> [!IMPORTANT]
-> The **<ErrorControl>** section can be configured to conditionally ignore file access errors, based on the file's location.
+>
+> The **\** section can be configured to conditionally ignore file access errors, based on the file's location.
```xml
@@ -165,45 +203,69 @@ The **<HardLinkStoreControl>** sample code below specifies that hard links
```
-### <fileLocked>
+### \
-The **<fileLocked>** element contains elements that describe how to handle files that are locked for editing. The rules defined by the **<fileLocked>** element are processed in the order in which they appear in the XML file.
+The **\** element contains elements that describe how to handle files that are locked for editing. The rules defined by the **\** element are processed in the order in which they appear in the XML file.
-Syntax: `` ``
+Syntax:
-### <createHardLink>
+```xml
+
+```
-The **<createHardLink>** element defines a standard MigXML pattern that describes file paths where hard links should be created, even if the file is locked for editing by another application.
+### \
-Syntax: `` *<pattern>* ``
+The **\** element defines a standard MigXML pattern that describes file paths where hard links should be created, even if the file is locked for editing by another application.
-### <errorHardLink>
+Syntax:
-The **<errorHardLink>** element defines a standard MigXML pattern that describes file paths where hard links shouldn't be created if the file is locked for editing by another application. USMT will attempt to copy files under these paths into the migration store. However, if that isn't possible, **Error\_Locked** is thrown. This error is a standard Windows application programming interface (API) error that can be captured by the **<ErrorControl>** section to either cause USMT to skip the file or abort the migration.
+```xml
+
+```
-Syntax: `` *<pattern>* ``
+### \
-### <ProfileControl>
+The **\** element defines a standard MigXML pattern that describes file paths where hard links shouldn't be created if the file is locked for editing by another application. USMT attempts to copy files under these paths into the migration store. However, if that isn't possible, **Error\_Locked** is thrown. This error is a standard Windows application programming interface (API) error that can be captured by the **\** section to either cause USMT to skip the file or abort the migration.
-This element is used to contain other elements that establish rules for migrating profiles, users, and policies around local group membership during the migration. **<ProfileMigration>** is a child of **<Configuration>**.
+Syntax:
-Syntax: <`ProfileControl>` ``
+```xml
+
+```
-### <localGroups>
+### \
-This element is used to contain other elements that establish rules for how to migrate local groups. **<localGroups>** is a child of **<ProfileControl>**.
+This element is used to contain other elements that establish rules for migrating profiles, users, and policies around local group membership during the migration. **\** is a child of **\**.
-Syntax: `` ``
+Syntax:
-### <mappings>
+```xml
+
+```
+
+### \
+
+This element is used to contain other elements that establish rules for how to migrate local groups. **\** is a child of **\**.
+
+Syntax:
+
+```xml
+
+```
+
+### \
This element is used to contain other elements that establish mappings between groups.
-Syntax: `` ``
+Syntax:
-### <changeGroup>
+```xml
+
+```
-This element describes the source and destination groups for a local group membership change during the migration. It's a child of **<localGroups>**. The following parameters are defined:
+### \
+
+This element describes the source and destination groups for a local group membership change during the migration. It's a child of **\**. The following parameters are defined:
|Parameter|Required|Value|
|--- |--- |--- |
@@ -211,25 +273,38 @@ This element describes the source and destination groups for a local group membe
|To|Yes|A local group that the users are to be moved to during the migration.|
|appliesTo|Yes|nonmigratedUsers, migratedUsers, AllUsers. This value defines which users the change group operation should apply to.|
-The valid and required children of **<changeGroup>** are **<include>** and **<exclude>**. Although both can be children at the same time, only one is required.
+The valid and required children of **\** are **\** and **\**. Although both can be children at the same time, only one is required.
-Syntax: `` ``
+Syntax:
-### <include>
+```xml
+
+```
-This element specifies that its required child, *<pattern>*, should be included in the migration.
+### \
-Syntax: `` ``
+This element specifies that its required child, *\*, should be included in the migration.
-### <exclude>
+Syntax:
-This element specifies that its required child, *<pattern>*, should be excluded from the migration.
+```xml
+
+```
-Syntax: `` ``
+### \
+
+This element specifies that its required child, *\*, should be excluded from the migration.
+
+Syntax:
+
+```xml
+
+```
## Sample Config.xml File
-Refer to the following sample `Config.xml` file for more details about items you can choose to exclude from a migration.
+The following sample `Config.xml` file contains detailed examples about items that can be excluded from a migration.
+
@@ -430,4 +505,4 @@ Refer to the following sample `Config.xml` file for more details about items you
## Related articles
-[USMT XML reference](usmt-xml-reference.md)
+- [USMT XML reference](usmt-xml-reference.md).
diff --git a/windows/deployment/usmt/usmt-conflicts-and-precedence.md b/windows/deployment/usmt/usmt-conflicts-and-precedence.md
index b3c5c22025..de97180e05 100644
--- a/windows/deployment/usmt/usmt-conflicts-and-precedence.md
+++ b/windows/deployment/usmt/usmt-conflicts-and-precedence.md
@@ -1,40 +1,43 @@
---
-title: Conflicts and Precedence (Windows 10)
-description: In this article, learn how User State Migration Tool (USMT) 10.0 deals with conflicts and precedence.
+title: Conflicts and Precedence
+description: In this article, learn how User State Migration Tool (USMT) deals with conflicts and precedence.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Conflicts and precedence
-When you include, exclude, and reroute files and settings, it's important to know how User State Migration Tool (USMT) 10.0 deals with conflicts and precedence. When working with USMT, the following are the most important conflicts and precedence guidelines to keep in mind.
+When including, excluding, and rerouting files and settings, it's important to know how User State Migration Tool (USMT) deals with conflicts and precedence. The following are the most important conflicts and precedence guidelines to keep in mind when working with USMT.
-- **If there are conflicting rules within a component, the most specific rule is applied.** However, the **<unconditionalExclude>** rule is an exception because it takes precedence over all others. Directory names take precedence over file extensions. For examples, see [What happens when there are conflicting <include> and <exclude> rules?](#what-happens-when-there-are-conflicting-include-and-exclude-rules) and the first example in [<include> and <exclude> rules precedence examples](#include-and-exclude-rules-precedence-examples) later in this article.
+- **If there are conflicting rules within a component, the most specific rule is applied.** However, the **\** rule is an exception because it takes precedence over all others. Directory names take precedence over file extensions. For examples, see [What happens when there are conflicting \ and \ rules?](#what-happens-when-there-are-conflicting-include-and-exclude-rules) and the first example in [\ and \ rules precedence examples](#include-and-exclude-rules-precedence-examples) later in this article.
-- **Only rules inside the same component can affect each other, depending on specificity.** Rules that are in different components don't affect each other, except for the **<unconditionalExclude>** rule.
+- **Only rules inside the same component can affect each other, depending on specificity.** Rules that are in different components don't affect each other, except for the **\** rule.
-- **If the rules are equally specific, <exclude> takes precedence over <include>.** For example, if you use the **<exclude>** rule to exclude a file and use the **<include>** rule to include the same file, the file will be excluded.
+- **If the rules are equally specific, \ takes precedence over \.** For example, if the **\** rule is used to exclude a file and use the **\** rule to include the same file, the file is excluded.
-- **The ordering of components does not matter.** It doesn't matter which components are listed in which .xml file, because each component is processed independently of the other components across all of the .xml files.
+- **The ordering of components does not matter.** It doesn't matter which components are listed in which **.xml** file, because each component is processed independently of the other components across all of the **.xml** files.
-- **The ordering of the <include> and <exclude> rules within a component does not matter.**
+- **The ordering of the \ and \ rules within a component does not matter.**
-- **You can use the <unconditionalExclude> element to globally exclude data.** This element excludes objects, regardless of any other **<include>** rules that are in the .xml files. For example, you can use the **<unconditionalExclude>** element to exclude all MP3 files on the computer or to exclude all files from `C:\UserData`.
+- **The \ element can be used to globally exclude data.** This element excludes objects, regardless of any other **\** rules that are in the **.xml** files. For example, the **\** element can be used to exclude all MP3 files on the computer or to exclude all files from `C:\UserData`.
## General
### What is the relationship between rules that are located within different components?
-Only rules inside the same component can affect each other, depending on specificity, except for the **<unconditionalExclude>** rule. Rules that are in different components don't affect each other. If there's an **<include>** rule in one component and an identical **<exclude>** rule in another component, the data will be migrated because the two rules are independent of each other.
+Only rules inside the same component can affect each other, depending on specificity, except for the **\** rule. Rules that are in different components don't affect each other. If there's an **\** rule in one component and an identical **\** rule in another component, the data is migrated because the two rules are independent of each other.
-If you have an **<include>** rule in one component and a **<locationModify>** rule in another component for the same file, the file will be migrated in both places. That is, it will be included based on the **<include>** rule, and it will be migrated based on the **<locationModify>** rule.
+If an **\** rule is in one component and a **\** rule is in another component for the same file, the file is migrated in both places. That is, the file is included based on the **\** rule, and the file is migrated based on the **\** rule.
-The following .xml file migrates all files from C:\\Userdocs, including .mp3 files, because the **<exclude>** rule is specified in a separate component.
+The following **.xml** file migrates all files from C:\\Userdocs, including **.mp3** files, because the **\** rule is specified in a separate component.
```xml
@@ -68,7 +71,7 @@ The following .xml file migrates all files from C:\\Userdocs, including .mp3 fil
### How does precedence work with the Config.xml file?
-Specifying `migrate="no"` in the `Config.xml` file is the same as deleting the corresponding component from the migration .xml file. However, if you set `migrate="no"` for My Documents, but you have a rule similar to the one shown below in a migration .xml file (which includes all of the .doc files from My Documents), then only the .doc files will be migrated, and all other files will be excluded.
+Specifying `migrate="no"` in the `Config.xml` file is the same as deleting the corresponding component from the migration **.xml** file. However, if `migrate="no"` is set for the **Documents** folder, but a rule similar to the following rule exists in a migration **.xml** file (which includes all of the **.doc** files from the **Documents** folder), then only the **.doc** files is migrated, and all other files are excluded:
```xml
@@ -80,27 +83,27 @@ Specifying `migrate="no"` in the `Config.xml` file is the same as deleting the c
### How does USMT process each component in an .xml file with multiple components?
-The ordering of components doesn't matter. Each component is processed independently of other components. For example, if you have an **<include>** rule in one component and a **<locationModify>** rule in another component for the same file, the file will be migrated in both places. That is, it will be included based on the **<include>** rule, and it will be migrated based on the **<locationModify>** rule.
+The ordering of components doesn't matter. Each component is processed independently of other components. For example, if an **\** rule is in one component and a **\** rule is in another component for the same file, the file is migrated in both places. That is, the file is included based on the **\** rule, and the file is migrated based on the **\** rule.
### How are rules processed?
There are two broad categories of rules.
-- **Rules that affect the behavior of both the ScanState and LoadState tools**. For example, the **<include>**, **<exclude>**, and **<unconditionalExclude>** rules are processed for each component in the .xml files. For each component, USMT creates an include list and an exclude list. Some of the rules in the component might be discarded due to specificity, but all of the remaining rules are processed. For each **<include>** rule, USMT iterates through the elements to see if any of the locations need to be excluded. USMT enumerates all of the objects and creates a list of objects it's going to collect for each user. Once the list is complete, each of the objects is stored or migrated to the destination computer.
+- **Rules that affect the behavior of both the ScanState and LoadState tools**. For example, the **\**, **\**, and **\** rules are processed for each component in the **.xml** files. For each component, USMT creates an include list and an exclude list. Some of the rules in the component might be discarded due to specificity, but all of the remaining rules are processed. For each **\** rule, USMT iterates through the elements to see if any of the locations need to be excluded. USMT enumerates all of the objects and creates a list of objects it's going to collect for each user. Once the list is complete, each of the objects is stored or migrated to the destination computer.
-- **Rules that affect the behavior of only the LoadState tool**. For example, the **<locationModify>**, **<contentModify>**, and **<destinationCleanup>** rules don't affect ScanState. They're processed only with LoadState. First, the LoadState tool determines the content and location of each component based on the **<locationModify>** and **<contentModify>** rules. Then, LoadState processes all of the **<destinationCleanup>** rules and deletes data from the destination computer. Lastly, LoadState applies the components to the computer.
+- **Rules that affect the behavior of only the LoadState tool**. For example, the **\**, **\**, and **\** rules don't affect ScanState. They're processed only with LoadState. First, the **LoadState** tool determines the content and location of each component based on the **\** and **\** rules. Then, **LoadState** processes all of the **\** rules and deletes data from the destination computer. Lastly, **LoadState** applies the components to the computer.
### How does USMT combine all of the .xml files that I specify on the command line?
-USMT doesn't distinguish the .xml files based on their name or content. It processes each component within the files separately. USMT supports multiple .xml files only to make it easier to maintain and organize the components within them. Because USMT uses a urlid to distinguish each component from the others, be sure that each .xml file that you specify on the command line has a unique migration urlid.
+USMT doesn't distinguish the **.xml** files based on their name or content. It processes each component within the files separately. USMT supports multiple **.xml** files only to make it easier to maintain and organize the components within them. Because USMT uses a urlid to distinguish each component from the others, be sure that each **.xml** file that is specified on the command line has a unique migration urlid.
-## The <include> and <exclude> rules
+## The \ and \ rules
-### What happens when there are conflicting <include> and <exclude> rules?
+### What happens when there are conflicting \ and \ rules?
-If there are conflicting rules within a component, the most specific rule is applied, except with the **<unconditionalExclude>** rule, which takes precedence over all other rules. If the rules are equally specific, then the data won't be migrated. For example if you exclude a file, and include the same file, the file won't be migrated. If there are conflicting rules within different components, the rules don't affect each other because each component is processed independently.
+If there are conflicting rules within a component, the most specific rule is applied, except with the **\** rule, which takes precedence over all other rules. If the rules are equally specific, then the data isn't migrated. For example if the same file is both excluded and included, the file isn't migrated. If there are conflicting rules within different components, the rules don't affect each other because each component is processed independently.
-In the following example, mp3 files won't be excluded from the migration. The mp3 files won't be excluded because directory names take precedence over the file extensions.
+In the following example, mp3 files aren't excluded from the migration. The mp3 files aren't excluded because directory names take precedence over the file extensions.
```xml
@@ -115,9 +118,9 @@ In the following example, mp3 files won't be excluded from the migration. The mp
```
-### <include> and <exclude> rules precedence examples
+### \ and \ rules precedence examples
-These examples explain how USMT deals with **<include>** and **<exclude>** rules. When the rules are in different components, the resulting behavior will be the same regardless of whether the components are in the same or in different migration .xml files.
+These examples explain how USMT deals with **\** and **\** rules. When the rules are in different components, the resulting behavior is the same regardless of whether the components are in the same or in different migration **.xml** files.
- [Including and excluding files](#including-and-excluding-files)
@@ -125,42 +128,42 @@ These examples explain how USMT deals with **<include>** and **<exclude
### Including and excluding files
-| If you have the following code in the same component | Resulting behavior | Explanation |
+| If the following code exists in the same component | Resulting behavior | Explanation |
|-----|-----|-----|
-| - Include rule: <pattern type="File">C:\Dir1* []</pattern>
- Exclude rule: <pattern type="File">C:* [.txt]</pattern>
| Migrates all files and subfolders in Dir1 (including all .txt files in C:). | The **<exclude>** rule doesn't affect the migration because the **<include>** rule is more specific. |
-| - Include rule: <pattern type="File">C:\Dir1* []</pattern>
- Exclude rule: <pattern type="File">C:\Dir1\Dir2* [.txt]</pattern>
| Migrates all files and subfolders in C:\Dir1, except the .txt files in C:\Dir1\Dir2 and its subfolders. | Both rules are processed as intended. |
-| - Include rule: <pattern type="File">C:\Dir1* []</pattern>
- Exclude rule: <pattern type="File">C:\Dir1\ * [.txt]</pattern>
| Migrates all files and subfolders in C:\Dir1, except the .txt files in C:\Dir1 and its subfolders. | Both rules are processed as intended. |
-| - Include rule: <pattern type="File">C:\Dir1\Dir2* [.txt]</pattern>
- Exclude rule: <pattern type="File">C:\Dir1\Dir2* [.txt]</pattern>
| Nothing will be migrated. | The rules are equally specific, so the **<exclude>** rule takes precedence over the **<include>** rule. |
-| - Include rule: C:\Dir1* [.txt]
- Exclude rule: C:\Dir1\Dir2* []
| Migrates the .txt files in Dir1 and the .txt files from subfolders other than Dir2.
No files are migrated from Dir2 or its subfolders. | Both rules are processed as intended. |
-| - Include rule: C:\Dir1\Dir2* []
- Exclude rule: C:\Dir1* [.txt]
| Migrates all files and subfolders of Dir2, except the .txt files from Dir1 and any subfolders of Dir1 (including Dir2). | Both rules are processed as intended. |
+| - Include rule: \C:\Dir1* []\
- Exclude rule: \C:* [.txt]\
| Migrates all files and subfolders in Dir1 (including all **.txt** files in C:). | The **\** rule doesn't affect the migration because the **\** rule is more specific. |
+| - Include rule: \C:\Dir1* []\
- Exclude rule: \C:\Dir1\Dir2* [.txt]\
| Migrates all files and subfolders in C:\Dir1, except the **.txt** files in C:\Dir1\Dir2 and its subfolders. | Both rules are processed as intended. |
+| - Include rule: \C:\Dir1* []\
- Exclude rule: \C:\Dir1\ * [.txt]\
| Migrates all files and subfolders in C:\Dir1, except the **.txt** files in C:\Dir1 and its subfolders. | Both rules are processed as intended. |
+| - Include rule: \C:\Dir1\Dir2* [.txt]\
- Exclude rule: \C:\Dir1\Dir2* [.txt]\
| Nothing is migrated. | The rules are equally specific, so the **\** rule takes precedence over the **\** rule. |
+| - Include rule: C:\Dir1* [.txt]
- Exclude rule: C:\Dir1\Dir2* []
| Migrates the **.txt** files in Dir1 and the **.txt** files from subfolders other than Dir2.
No files are migrated from Dir2 or its subfolders. | Both rules are processed as intended. |
+| - Include rule: C:\Dir1\Dir2* []
- Exclude rule: C:\Dir1* [.txt]
| Migrates all files and subfolders of Dir2, except the **.txt** files from Dir1 and any subfolders of Dir1 (including Dir2). | Both rules are processed as intended. |
-| If you have the following code in different components | Resulting behavior | Explanation |
+| If the following code exists in different components | Resulting behavior | Explanation |
|-----|----|----|
-| Component 1:- Include rule: <pattern type="File">C:\Dir1* []</pattern>
- Exclude rule: <pattern type="File">C:\Dir1\Dir2* [.txt]</pattern>
Component 2:- Include rule: <pattern type="File">C:\Dir1\Dir2* [.txt]</pattern>
- Exclude rule: <pattern type="File">C:\Dir1* []</pattern>
| Migrates all files and subfolders of C:\Dir1\ (including C:\Dir1\Dir2). | Rules that are in different components don't affect each other, except for the **<unconditionalExclude>** rule. Therefore, in this example, although some .txt files were excluded when Component 1 was processed, they were included when Component 2 was processed. |
-| Component 1:- Include rule: C:\Dir1\Dir2* []
Component 2:- Exclude rule: C:\Dir1* [.txt]
| Migrates all files and subfolders from Dir2 except the .txt files in C:\Dir1 and its subfolders. | Both rules are processed as intended. |
-| Component 1:- Exclude rule: C:\Dir1\Dir2* []
Component 2:- Include rule: C:\Dir1* [.txt]
| Migrates all .txt files in Dir1 and any subfolders. | Component 1 doesn't contain an **<include>** rule, so the **<exclude>** rule isn't processed. |
+| Component 1:- Include rule: \C:\Dir1* []\
- Exclude rule: \C:\Dir1\Dir2* [.txt]\
Component 2:- Include rule: \C:\Dir1\Dir2* [.txt]\
- Exclude rule: \C:\Dir1* []\
| Migrates all files and subfolders of C:\Dir1\ (including C:\Dir1\Dir2). | Rules that are in different components don't affect each other, except for the **\** rule. Therefore, in this example, although some **.txt** files were excluded when Component 1 was processed, they were included when Component 2 was processed. |
+| Component 1:- Include rule: C:\Dir1\Dir2* []
Component 2:- Exclude rule: C:\Dir1* [.txt]
| Migrates all files and subfolders from Dir2 except the **.txt** files in C:\Dir1 and its subfolders. | Both rules are processed as intended. |
+| Component 1:- Exclude rule: C:\Dir1\Dir2* []
Component 2:- Include rule: C:\Dir1* [.txt]
| Migrates all **.txt** files in Dir1 and any subfolders. | Component 1 doesn't contain an **\** rule, so the **\** rule isn't processed. |
### Including and excluding registry objects
-| If you have the following code in the same component | Resulting behavior | Explanation |
+| If the following code exists in the same component | Resulting behavior | Explanation |
|-----|-----|-----|
-| - Include rule:
HKLM\Software\Microsoft\Command Processor* [] - Exclude Rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Migrates all keys in HKLM\Software\Microsoft\Command Processor except DefaultColor. | Both rules are processed as intended. |
-| - Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude Rule:
HKLM\Software\Microsoft\Command Processor* []
| Migrates only DefaultColor in HKLM\Software\Microsoft\Command Processor. | DefaultColor is migrated because the **<include>** rule is more specific than the **<exclude>** rule. |
-| - Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Doesn't migrate DefaultColor. | The rules are equally specific, so the **<exclude>** rule takes precedence over the <include> rule. |
+| - Include rule:
HKLM\Software\Microsoft\Command Processor* [] - Exclude Rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Migrates all keys in HKLM\Software\Microsoft\Command Processor except DefaultColor. | Both rules are processed as intended. |
+| - Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude Rule:
HKLM\Software\Microsoft\Command Processor* []
| Migrates only DefaultColor in HKLM\Software\Microsoft\Command Processor. | DefaultColor is migrated because the **\** rule is more specific than the **\** rule. |
+| - Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Doesn't migrate DefaultColor. | The rules are equally specific, so the **\** rule takes precedence over the \ rule. |
-| If you have the following code in different components | Resulting behavior | Explanation |
+| If the following code exists in different components | Resulting behavior | Explanation |
|-----|-----|-----|
-| Component 1:- Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude rule:
HKLM\Software\Microsoft\Command Processor* []
Component 2:- Include rule:
HKLM\Software\Microsoft\Command Processor* [] - Exclude rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Migrates all the keys/values under HKLM\Software\Microsoft\Command Processor. | Rules that are in different components don't affect each other, except for the **<unconditionalExclude>** rule. Therefore, in this example, the objects that were excluded when Component 1 was processed were included when Component 2 was processed. |
+| Component 1:- Include rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor] - Exclude rule:
HKLM\Software\Microsoft\Command Processor* []
Component 2:- Include rule:
HKLM\Software\Microsoft\Command Processor* [] - Exclude rule:
HKLM\Software\Microsoft\Command Processor [DefaultColor]
| Migrates all the keys/values under HKLM\Software\Microsoft\Command Processor. | Rules that are in different components don't affect each other, except for the **\** rule. In this example, the objects that were excluded when Component 1 was processed were included when Component 2 was processed. |
## File collisions
### What is the default behavior when there are file collisions?
-If there isn't a **<merge>** rule, the default behavior for the registry is for the source to overwrite the destination. The default behavior for files is for the source to be renamed incrementally: for example, OriginalFileName(1).OriginalExtension, OriginalFileName(2).OriginalExtension, and so on.
+If there isn't a **\** rule, the default behavior for the registry is for the source to overwrite the destination. The default behavior for files is for the source to be renamed incrementally: for example, OriginalFileName(1).OriginalExtension, OriginalFileName(2).OriginalExtension, and so on.
-### How does the <merge> rule work when there are file collisions?
+### How does the \ rule work when there are file collisions?
-When a collision is detected, USMT will select the most specific **<merge>** rule and apply it to resolve the conflict. For example, if you have a **<merge>** rule for **C:\\\* \[\*\]** set to **sourcePriority()** and another **<merge>** rule for **C:\\subfolder\\\* \[\*\]** set to **destinationPriority()** , then USMT uses the **destinationPriority()** rule because it's the most specific.
+When a collision is detected, USMT selects the most specific **\** rule and apply it to resolve the conflict. For example, if a **\** rule exists for **C:\\\* \[\*\]** set to **sourcePriority()** and another **\** rule for **C:\\subfolder\\\* \[\*\]** set to **destinationPriority()** , then USMT uses the **destinationPriority()** rule because it's the most specific.
### Example scenario
@@ -178,7 +181,7 @@ The destination computer contains the following files:
- `C:\Data\SampleB.txt`
-You have a custom .xml file that contains the following code:
+A custom **.xml** file contains the following code:
```xml
@@ -188,7 +191,7 @@ You have a custom .xml file that contains the following code:
```
-For this example, the following information describes the resulting behavior if you add the code to your custom .xml file.
+For this example, the following information describes the resulting behavior if the code is added to the custom **.xml** file.
#### Example 1
@@ -200,7 +203,7 @@ For this example, the following information describes the resulting behavior if
```
-**Result**: During ScanState, all the files will be added to the store. During LoadState, only `C:\Data\SampleA.txt` will be restored.
+**Result**: During ScanState, all the files are added to the store. During LoadState, only `C:\Data\SampleA.txt` is restored.
#### Example 2
@@ -212,8 +215,8 @@ For this example, the following information describes the resulting behavior if
```
-**Result**: During ScanState, all the files will be added to the store.
-During LoadState, all the files will be restored, overwriting the existing files on the destination computer.
+**Result**: During ScanState, all the files are added to the store.
+During LoadState, all the files are restored, overwriting the existing files on the destination computer.
#### Example 3
@@ -225,12 +228,12 @@ During LoadState, all the files will be restored, overwriting the existing files
```
-**Result**: During ScanState, all the files will be added to the store. During LoadState, the following actions will occur:
+**Result**: During ScanState, all the files are added to the store. During LoadState, the following actions occur:
-- `C:\Data\SampleA.txt` will be restored.
-- `C:\Data\SampleB.txt` will be restored, overwriting the existing file on the destination computer.
-- `C:\Data\Folder\SampleB.txt` won't be restored.
+- `C:\Data\SampleA.txt` is restored.
+- `C:\Data\SampleB.txt` is restored, overwriting the existing file on the destination computer.
+- `C:\Data\Folder\SampleB.txt` aren't restored.
## Related articles
-[USMT XML reference](usmt-xml-reference.md)
+[USMT XML reference](usmt-xml-reference.md).
diff --git a/windows/deployment/usmt/usmt-custom-xml-examples.md b/windows/deployment/usmt/usmt-custom-xml-examples.md
index 73cf61e887..5784abdf38 100644
--- a/windows/deployment/usmt/usmt-custom-xml-examples.md
+++ b/windows/deployment/usmt/usmt-custom-xml-examples.md
@@ -1,20 +1,23 @@
---
-title: Custom XML Examples (Windows 10)
-description: Use custom XML examples to learn how to migrate an unsupported application, migrate files and registry keys, and migrate the My Videos folder.
+title: Custom XML Examples
+description: Use custom XML examples to learn how to migrate an unsupported application, migrate files and registry keys, and migrate the Videos folder.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
ms.topic: article
ms.technology: itpro-deploy
-ms.date: 11/01/2022
+ms.date: 01/03/2024
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Custom XML Examples
## Example 1: Migrating an unsupported application
-The following template is a template for the sections that you need to migrate your application. The template isn't functional on its own, but you can use it to write your own .xml file.
+The following template is a template for the sections that are needed to migrate applications. The template isn't functional on its own, but it can be used to write custom **.xml** file.
**Template**
@@ -89,19 +92,19 @@ The following template is a template for the sections that you need to migrate y
## Example 2: Migrating the My Videos folder
-The following sample is a custom .xml file named `CustomFile.xml` that migrates **My Videos** for all users, if the folder exists on the source computer.
+The following sample is a custom **.xml** file named `CustomFile.xml` that migrates the **Videos** folder for all users, if the folder exists on the source computer.
-- **Sample condition**: Verifies that **My Videos** exists on the source computer:
+- **Sample condition**: Verifies that the **Videos** folder exists on the source computer:
`MigXmlHelper.DoesObjectExist("File","%CSIDL_MYVIDEO%")`
-- **Sample filter**: Filters out the shortcuts in **My Videos** that don't resolve on the destination computer:
+- **Sample filter**: Filters out the shortcuts in the **Videos** folder that don't resolve on the destination computer:
``
- This filter has no effect on files that aren't shortcuts. For example, if there's a shortcut in **My Videos** on the source computer that points to `C:\Folder1`, that shortcut will be migrated only if `C:\Folder1` exists on the destination computer. However, all other files, such as .mp3 files, migrate without any filtering.
+ This filter has no effect on files that aren't shortcuts. For example, if there's a shortcut in the **Videos** folder on the source computer that points to `C:\Folder1`, that shortcut is migrated only if `C:\Folder1` exists on the destination computer. However, all other files, such as **.mp3** files, migrate without any filtering.
-- **Sample pattern**: Migrates **My Videos** for all users:
+- **Sample pattern**: Migrates the **Videos** folder for all users:
`%CSIDL_MYVIDEO%* [*]`
@@ -137,7 +140,7 @@ The following sample is a custom .xml file named `CustomFile.xml` that migrates
## Example 3: Migrating files and registry keys
-The sample patterns describe the behavior in the following example .xml file.
+The sample patterns describe the behavior in the following example **.xml** file.
- **Sample pattern**: Migrates all instances of the file `Usmttestfile.txt` from all subdirectories under `%ProgramFiles%\USMTTestFolder`:
@@ -195,7 +198,7 @@ The sample patterns describe the behavior in the following example .xml file.
## Example 4: Migrating specific folders from various locations
-The behavior for this custom .xml file is described within the `` tags in the code.
+The behavior for this custom **.xml** file is described within the `` tags in the code.
**XML file**
@@ -275,6 +278,5 @@ The behavior for this custom .xml file is described within the `` t
## Related articles
-[USMT XML reference](usmt-xml-reference.md)
-
-[Customize USMT XML files](usmt-customize-xml-files.md)
+- [USMT XML reference](usmt-xml-reference.md).
+- [Customize USMT XML files](usmt-customize-xml-files.md).
diff --git a/windows/deployment/usmt/usmt-customize-xml-files.md b/windows/deployment/usmt/usmt-customize-xml-files.md
index 7964757619..9f102208a9 100644
--- a/windows/deployment/usmt/usmt-customize-xml-files.md
+++ b/windows/deployment/usmt/usmt-customize-xml-files.md
@@ -1,77 +1,83 @@
---
-title: Customize USMT XML Files (Windows 10)
+title: Customize USMT XML Files
description: Learn how to customize USMT XML files. Also, learn about the migration XML files that are included with USMT.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Customize USMT XML files
## Overview
-If you want the ScanState and LoadState tools to use any of the migration .xml files, specify these files at the command line using the `/i` option. Because the ScanState and LoadState tools need the .xml files to control the migration, specify the same set of .xml files for both the `ScanState.exe` and `LoadState.exe` commands. However, you don't have to specify the `Config.xml` file with the `/config` option, unless you want to exclude some of the files and settings that you migrated to the store. For example, you might want to migrate the My Documents folder to the store but not to the destination computer. To achieve this scenario, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. Then the `LoadState.exe` command will migrate only the files and settings that you want to migrate.
+To use any of the migration **.xml** files with the **ScanState** and **LoadState** tools, specify these files at the command line using the `/i` option. Because the **ScanState** and **LoadState** tools need the **.xml** files to control the migration, specify the same set of **.xml** files for both the `ScanState.exe` and `LoadState.exe` commands. However, the `Config.xml` file with the `/config` option doesn't need to be specified, unless some of the migrated files and settings from the store need to be excluded. For example, to migrate the **Documents** folder to the store but not to the destination computer. To achieve this scenario, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. The `LoadState.exe` command then only migrates the desired files and settings.
-If you leave out an .xml file from the `LoadState.exe` command, all of the data in the store that was migrated with the missing .xml files will be migrated. However, the migration rules that were specified with the `ScanState.exe` command won't apply. For example, if you leave out an .xml file, and it contains a rerouting rule such as:
+If an **.xml** file is left out from the `LoadState.exe` command, all of the data in the store that was migrated with the missing **.xml** files are migrated. However, the migration rules that were specified with the `ScanState.exe` command don't apply. For example, if an **.xml** file is left out, and it contains a rerouting rule such as:
`MigsysHelperFunction.RelativeMove("c:\data", "%CSIDL_PERSONAL%")`
-USMT won't reroute the files, and they'll be migrated to `C:\data`.
+USMT doesn't reroute the files, and they're migrated to `C:\data`.
To modify the migration, do one or more of the following.
-- **Modify the migration .xml files.** If you want to exclude a portion of a component, for example, you want to migrate C:\\ but exclude all of the .mp3 files, or if you want to move data to a new location on the destination computer, modify the .xml files. To modify these files, you must be familiar with the migration rules and syntax. If you want ScanState and LoadState to use these files, specify them at the command line when each command is entered.
+- **Modify the migration .xml files.** To exclude a portion of a component, modify the **.xml** files. For example, to migrate C:\\ but exclude all of the **.mp3** files, or to move data to a new location on the destination computer. To modify these files, familiarity with the migration rules and syntax is a must. For **ScanState** and **LoadState** to use these files, specify them at the command line when each command is entered.
-- **Create a custom .xml file.** You can also create a custom .xml file to migrate settings for another application, or to change the migration behavior to suit your needs. For ScanState and LoadState to use this file, specify them on both command lines.
+- **Create a custom .xml file.** A custom **.xml** file can also be created to migrate settings for another application, or to change the migration behavior to suit the organization's needs. For **ScanState** and **LoadState** to use this file, specify them on both command lines.
-- **Create and modify a Config.xml file.** Create and modify a `Config.xml` file if you want to exclude an entire component from the migration. For example, you can use a `Config.xml` file to exclude the entire My Documents folder, or exclude the settings for an application. Excluding components using a `Config.xml` file is easier than modifying the migration .xml files because you don't need to be familiar with the migration rules and syntax. In addition, using a `Config.xml` file is the only way to exclude the operating system settings from being migrated.
+- **Create and modify a Config.xml file.** Create and modify a `Config.xml` file to exclude an entire component from the migration. For example, a `Config.xml` file can be used to exclude the entire **Documents** folder, or exclude the settings for an application. Excluding components using a `Config.xml` file is easier than modifying the migration **.xml** files because familiarity with the migration rules and syntax isn't needed. In addition, using a `Config.xml` file is the only way to exclude the operating system settings from being migrated.
For more information about excluding data, see the [Exclude Files and Settings](usmt-exclude-files-and-settings.md) article.
## Migration .xml files
-This section describes the migration .xml files that are included with USMT. Each file contains migration rules that control which components are migrated and where they're migrated to on the destination computer.
+This section describes the migration **.xml** files that are included with USMT. Each file contains migration rules that control which components are migrated and where they're migrated to on the destination computer.
> [!NOTE]
-> You can use the asterisk (\*) wildcard character in each of these files. However, you cannot use a question mark (?) as a wildcard character.
+>
+> The asterisk (\*) wildcard character can be used in each of these files. However, a question mark (?) can't be used as a wildcard character.
- **The MigApp.xml file.** Specify this file with both the `ScanState.exe` and `LoadState.exe` commands to migrate application settings.
-- **The MigDocs.xml file.** Specify this file with both the ScanState and LoadState tools to migrate all user folders and files that are found by the **MigXmlHelper.GenerateDocPatterns** helper function. This helper function finds user data that resides on the root of any drive and in the Users directory. However, it doesn't find and migrate any application data, program files, or any files in the Windows directory. You can modify the `MigDocs.xml` file.
+- **The MigDocs.xml file.** Specify this file with both the **ScanState** and **LoadState** tools to migrate all user folders and files that are found by the **MigXmlHelper.GenerateDocPatterns** helper function. This helper function finds user data that resides on the root of any drive and in the Users directory. However, it doesn't find and migrate any application data, program files, or any files in the Windows directory. The `MigDocs.xml` file can be modified.
-- **The MigUser.xml file.** Specify this file with both the `ScanState.exe` and `LoadState.exe` commands to migrate user folders, files, and file types. You can modify the `MigUser.xml` file. This file doesn't contain rules that migrate specific user accounts. The only way to specify which user accounts to migrate is on the command line using the ScanState and the LoadState user options.
+- **The MigUser.xml file.** Specify this file with both the `ScanState.exe` and `LoadState.exe` commands to migrate user folders, files, and file types. The `MigUser.xml` file can be modified. This file doesn't contain rules that migrate specific user accounts. The only way to specify which user accounts to migrate is on the command line by using the [ScanState User options](usmt-scanstate-syntax.md#user-options) and the [LoadState User options](usmt-loadstate-syntax.md#user-options).
> [!NOTE]
+>
> Don't use the `MigUser.xml` and `MigDocs.xml` files together. For more information, see the [Identify file types, files, and folders](usmt-identify-file-types-files-and-folders.md) and [USMT best practices](usmt-best-practices.md) articles.
## Custom .xml files
-You can create custom .xml files to customize the migration for your unique needs. For example, you may want to create a custom file to migrate a line-of-business application or to modify the default migration behavior. If you want `ScanState.exe` and `LoadState.exe` to use this file, specify it with both commands. For more information, see the [Custom XML examples](usmt-custom-xml-examples.md) article.
+Custom **.xml** files can be created to customize the migration for the organization's unique needs. For example, a custom **.xml** file can be created to migrate a line-of-business application or to modify the default migration behavior. For `ScanState.exe` and `LoadState.exe` to use this file, specify it with both commands. For more information, see the [Custom XML examples](usmt-custom-xml-examples.md) article.
## The Config.xml file
-The `Config.xml` file is an optional file that you create using the `/genconfig` option with the `ScanState.exe` command. You should create and modify this file if you want to exclude certain components from the migration. In addition, you must create and modify this file if you want to exclude any of the operating system settings from being migrated. The `Config.xml` file format is different from the migration .xml files because it doesn't contain any migration rules. It contains only a list of the operating system components, applications, and the user documents that can be migrated. For an example, see the [Config.xml File](usmt-configxml-file.md) article. For this reason, excluding components using this file is easier than modifying the migration .xml files because you don't need to be familiar with the migration rules and syntax. However, you can't use wildcard characters in a `Config.xml` file.
+The `Config.xml` file is an optional file that is created using the `/genconfig` option with the `ScanState.exe` command. This file should be created and modified to exclude certain components from the migration. In addition, this file must be created and modified to exclude any of the operating system settings from being migrated. The `Config.xml` file format is different from the migration **.xml** files because it doesn't contain any migration rules. It contains only a list of the operating system components, applications, and the user documents that can be migrated. For an example, see the [Config.xml File](usmt-configxml-file.md) article. For this reason, excluding components using the `Config.xml` file is easier than modifying the migration **.xml** files. With the `Config.xml`, familiarity with the migration rules and syntax isn't. However, wildcard characters can't be used in a `Config.xml` file.
-If you want to include all of the default components, you don't need to create the `Config.xml` file. Alternatively, if you're satisfied with the default migration behavior defined in the `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml` files, and you want to exclude only some components, you can create and modify a `Config.xml` file and leave the other .xml files in their original state.
+To include all of the default components, a `Config.xml` file doesn't need to be created. Alternatively, if the default migration behavior defined in the `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml` files are satisfactory, and only some components need to be excluded, a `Config.xml` file can be created. The other **.xml** files can be left in their original state.
-When you run the `ScanState.exe` command with the `/genconfig` option, `ScanState.exe` reads the other .xml files that you specify using the `/i` option to create a custom list of components that can be migrated from the computer. This file will contain only operating system components, applications, and the user document sections that are in both of the .xml files and that are installed on the computer when you run the `ScanState.exe` command with the `/genconfig` option. Therefore, you should create this file on a source computer that contains all of the components, applications, and settings that will be present on the destination computers. Creating the file on the source computer will ensure that this file contains every component that can be migrated. The components are organized into sections: <Applications>, <WindowsComponents>, and <Documents>. To choose not to migrate a component, change its entry to `migrate="no"`.
+When the `ScanState.exe` command is run with the `/genconfig` option, `ScanState.exe` reads the other **.xml** files that are specified using the `/i` option to create a custom list of components that can be migrated from the computer. This file contains only operating system components, applications, and the user document sections that are in both of the **.xml** files and that are installed on the computer when the `ScanState.exe` command is run with the `/genconfig` option. Therefore, this file should be created on a source computer that contains all of the components, applications, and settings that are present on the destination computers. Creating the file on the source computer ensures that this file contains every component that can be migrated. The components are organized into sections: \, \, and \. To choose not to migrate a component, change its entry to `migrate="no"`.
-After you create this file, you need to specify it only with the `ScanState.exe` command using the `/Config` option for it to affect the migration. However, if you want to exclude additional data that you migrated to the store, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. For example, if you collected the My Documents folder in the store, but you decide that you don't want to migrate the My Documents folder to a destination computer, you can modify the `Config.xml` file to indicate `migrate="no"` before you run the `LoadState.exe` command, and the file won't be migrated. For more information about the precedence that takes place when excluding data, see the [Exclude files and settings](usmt-exclude-files-and-settings.md) article.
+After this file is created, it only needs to be specified with the `ScanState.exe` command using the `/Config` option for it to affect the migration. However, if additional data that was migrated to the store needs to be excluded, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. For example, if the **Documents** folder is collected in the store, but the **Documents** folder doesn't need to be migrated to a destination computer, the `Config.xml` file can be modified to indicate `migrate="no"` before the `LoadState.exe` command runs, and the file aren't be migrated. For more information about the precedence that takes place when excluding data, see the [Exclude files and settings](usmt-exclude-files-and-settings.md) article.
In addition, note the following functionality with the `Config.xml` file:
-- If a parent component is removed from the migration in the `Config.xml` file by specifying `migrate="no"`, all of its child components will automatically be removed from the migration, even if the child component is set to `migrate="yes"`.
+- If a parent component is removed from the migration in the `Config.xml` file by specifying `migrate="no"`, all of its child components are automatically removed from the migration, even if the child component is set to `migrate="yes"`.
-- If you mistakenly have two lines of code for the same component where one line specifies `migrate="no"` and the other line specifies `migrate="yes"`, the component will be migrated.
+- If mistakenly two lines of code exist for the same component where one line specifies `migrate="no"` and the other line specifies `migrate="yes"`, the component is migrated.
-- In USMT, there are several migration policies that can be configured in the `Config.xml` file. For example, you can configure additional **<ErrorControl>**, **<ProfileControl>**, and **<HardLinkStoreControl>** options. For more information, see the [Config.xml File](usmt-configxml-file.md) article.
+- In USMT, there are several migration policies that can be configured in the `Config.xml` file. For example, additional **\**, **\**, and **\** options can be configured. For more information, see the [Config.xml File](usmt-configxml-file.md) article.
> [!NOTE]
-> To exclude a component from the `Config.xml` file, set the **migrate** value to **"no"**. Deleting the XML tag for the component from the `Config.xml` file will not exclude the component from your migration.
+>
+> To exclude a component from the `Config.xml` file, set the **migrate** value to **"no"**. Deleting the XML tag for the component from the `Config.xml` file doesn't exclude the component from the migration.
### Examples
@@ -79,7 +85,7 @@ In addition, note the following functionality with the `Config.xml` file:
`ScanState.exe /i:MigApp.xml /i:MigDocs.xml /genconfig:Config.xml /v:5`
-- The following command creates an encrypted store using the `Config.xml` file and the default migration .xml files:
+- The following command creates an encrypted store using the `Config.xml` file and the default migration **.xml** files:
`ScanState.exe \\server\share\migration\mystore /i:MigApp.xml /i:MigDocs.xml /o /config:Config.xml /v:5 /encrypt /key:"mykey"`
@@ -89,14 +95,11 @@ In addition, note the following functionality with the `Config.xml` file:
## Additional information
-- For more information about how to change the files and settings that are migrated, see the [User State Migration Tool (USMT) how-to topics](usmt-how-to.md).
-
-- For more information about each .xml element, see the [XML elements library](usmt-xml-elements-library.md) article.
-
+- For more information about how to change the files and settings that are migrated, see the [User State Migration Tool (USMT) how-to articles](usmt-how-to.md).
+- For more information about each **.xml** element, see the [XML elements library](usmt-xml-elements-library.md) article.
- For answers to common questions, see ".xml files" in the [Frequently asked questions](usmt-faq.yml) article.
## Related articles
-[User State Migration Tool (USMT) command-line syntax](usmt-command-line-syntax.md)
-
-[USMT resources](usmt-resources.md)
+- [User State Migration Tool (USMT) command-line syntax](usmt-command-line-syntax.md).
+- [USMT resources](usmt-resources.md).
diff --git a/windows/deployment/usmt/usmt-determine-what-to-migrate.md b/windows/deployment/usmt/usmt-determine-what-to-migrate.md
index 67138078a2..3fd59322ea 100644
--- a/windows/deployment/usmt/usmt-determine-what-to-migrate.md
+++ b/windows/deployment/usmt/usmt-determine-what-to-migrate.md
@@ -1,28 +1,36 @@
---
-title: Determine What to Migrate (Windows 10)
-description: Determine migration settings for standard or customized for the User State Migration Tool (USMT) 10.0.
+title: Determine What to Migrate
+description: Determine migration settings for standard or customized for the User State Migration Tool (USMT).
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Determine what to migrate
-By default, User State Migration Tool (USMT) 10.0 migrates the items listed in [What does USMT migrate?](usmt-what-does-usmt-migrate.md), depending on the migration .xml files you specify. These default settings are often enough for a basic migration.
+By default, User State Migration Tool (USMT) migrates the items listed in [What does USMT migrate?](usmt-what-does-usmt-migrate.md), depending on the migration **.xml** files that are specified. These default settings are often enough for a basic migration.
-However, when considering what settings to migrate, you should also consider what settings you would like the user to be able to configure, if any, and what settings you would like to standardize. Many organizations use their migration as an opportunity to create and begin enforcing a better-managed environment. Some of the settings that users can configure on unmanaged computers prior to the migration can be locked on the new, managed computers. For example, standard wallpaper, Internet Explorer security settings, and desktop configuration are some of the items you can choose to standardize.
+However, when considering what settings to migrate, also consider:
-To reduce complexity and increase standardization, your organization should consider creating a *standard operating environment (SOE)*. An SOE is a combination of hardware and software that you distribute to all users. Creating an SOE means selecting:
+- What settings the user can configure, if any.
+- What settings should be standardized.
-- A baseline for all computers, including standard hardware drivers
-- Core operating system features
-- Core productivity applications, especially if they are under volume licensing
+Many organizations use their migration as an opportunity to create and begin enforcing a better-managed environment. Some of the settings that users can configure on unmanaged computers prior to the migration can be locked on the new, managed computers. For example, standard wallpaper and desktop configuration are some of the items that can be standardized.
+
+To reduce complexity and increase standardization, the organization should consider creating a *standard operating environment (SOE)*. An SOE is a combination of hardware and software that is distributed to all users. Creating an SOE means selecting:
+
+- A baseline for all computers, including standard hardware drivers.
+- Core operating system features.
+- Core productivity applications, especially if they are under volume licensing.
- Core utilities.
-- A standard set of security features, as outlined in the organization's corporate policy
+- A standard set of security features, as outlined in the organization's corporate policy.
Using an SOE can vastly simplify the migration and reduce overall deployment challenges.
@@ -31,10 +39,10 @@ Using an SOE can vastly simplify the migration and reduce overall deployment cha
| Link | Description |
|--- |--- |
|[Identify users](usmt-identify-users.md)|Use command-line options to specify which users to migrate and how they should be migrated.|
-|[Identify applications settings](usmt-identify-application-settings.md)|Determine which applications you want to migrate and prepare a list of application settings to be migrated.|
+|[Identify applications settings](usmt-identify-application-settings.md)|Determine which applications need to be migrated and prepare a list of application settings to be migrated.|
|[Identify operating system settings](usmt-identify-operating-system-settings.md)|Use migration to create a new standard environment on each of the destination computers.|
-|[Identify file types, files, and folders](usmt-identify-file-types-files-and-folders.md)|Determine and locate the standard, company-specified, and non-standard locations of the file types, files, folders, and settings that you want to migrate.|
+|[Identify file types, files, and folders](usmt-identify-file-types-files-and-folders.md)|For the following items that need to be migrated:
- File types.
- Files.
- Folders.
- Settings.
determine where these items might be located. For example:- Standard default OS locations.
- Organization-specified locations.
- Non-standard locations.
|
## Related articles
-[What does USMT migrate?](usmt-what-does-usmt-migrate.md)
+- [What does USMT migrate?](usmt-what-does-usmt-migrate.md).
diff --git a/windows/deployment/usmt/usmt-estimate-migration-store-size.md b/windows/deployment/usmt/usmt-estimate-migration-store-size.md
index e994e3640b..943f389168 100644
--- a/windows/deployment/usmt/usmt-estimate-migration-store-size.md
+++ b/windows/deployment/usmt/usmt-estimate-migration-store-size.md
@@ -1,77 +1,86 @@
---
-title: Estimate Migration Store Size (Windows 10)
-description: Estimate the disk space requirement for a migration so that you can use User State Migration Tool (USMT).
+title: Estimate Migration Store Size
+description: Estimate the disk space requirement for a migration so that the User State Migration Tool (USMT) can be used.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Estimate migration store size
-The disk space requirements for a migration are dependent on the size of the migration store and the type of migration. You can estimate the amount of disk space needed for computers in your organization based on information about your organization's infrastructure. You can also calculate the disk space requirements using the ScanState tool.
+The disk space requirements for a migration are dependent on the size of the migration store and the type of migration. The amount of disk space needed for computers in the organization can be estimated based on information about the organization's infrastructure. Disk space requirements can also be calculated using the **ScanState** tool.
## Hard disk space requirements
-- **Store**: For non-hard-link migrations, you should ensure that there's enough available disk space at the location where you'll save your store to contain the data being migrated. You can save your store to another partition, an external storage device such as a USB flash drive or a server. For more information, see [Choose a Migration Store Type](usmt-choose-migration-store-type.md).
+- **Store**: For non-hard-link migrations, ensure that there's enough available disk space at the location where the store is saved. The store contains the data being migrated. The store can be saved to another partition, an external storage device such as a USB flash drive, or a server. For more information, see [Choose a Migration Store Type](usmt-choose-migration-store-type.md).
- **Source Computer**: The source computer needs enough available space for the following items:
- - **E250 megabytes (MB) minimum of hard disk space**: Space is needed to support the User State Migration Tool (USMT) 10.0 operations, for example, growth in the page file. If every volume involved in the migration is formatted as NTFS, 250 MB should be enough space to ensure success for almost every hard-link migration, regardless of the size of the migration. The USMT tools won't create the migration store if 250 MB of disk space isn't available.
+ - **E250 megabytes (MB) minimum of hard disk space**: Space is needed to support the User State Migration Tool (USMT) operations, for example, growth in the page file. If every volume involved in the migration is formatted as NTFS, 250 MB should be enough space to ensure success for almost every hard-link migration, regardless of the size of the migration. The USMT tool that captures data (ScanState) doesn't create the migration store if 250 MB of disk space isn't available.
- - **Temporary space for USMT to run**: Extra disk space for the USMT tools to operate is required. This disk space requirement doesn't include the minimum 250 MB needed to create the migration store. The amount of temporary space required can be calculated using the ScanState tool.
+ - **Temporary space for USMT to run**: Extra disk space is required for the USMT tools to operate. This disk space requirement doesn't include the minimum 250 MB needed to create the migration store. The amount of temporary space required can be calculated using the **ScanState** tool.
- **Hard-link migration store**: It isn't necessary to estimate the size of a hard-link migration store. The only case where the hard-link store can be large is when non-NTFS file volumes exist on the system and those volumes contain data being migrated.
- **Destination computer**: The destination computer needs enough available space for the following components:
- - **Operating system**
+ - **Operating system**.
- - **Applications**
+ - **Applications**.
- **Data being migrated**: Data being migrated includes files and registry information.
- - **Temporary space for USMT to run**: Extra disk space for the USMT tools to operate is required. The amount of temporary space required can be calculated using the ScanState tool.
+ - **Temporary space for USMT to run**: Extra disk space is required for the USMT tools to operate. The amount of temporary space required can be calculated using the **ScanState** tool.
-## Calculate disk space requirements using the ScanState tool
+## Calculate disk space requirements using the **ScanState** tool
-You can use the ScanState tool to calculate the disk space requirements for a particular compressed or uncompressed migration. It isn't necessary to estimate the migration store size for a hard-link migration since this method doesn't create a separate migration store. The ScanState tool provides disk space requirements for the state of the computer at the time the tool is run. The state of the computer may change during day-to-day use so it's recommended that you use the calculations as an estimate when planning your migration.
+The **ScanState** tool can be used to calculate the disk space requirements for a particular compressed or uncompressed migration. It isn't necessary to estimate the migration store size for a hard-link migration since this method doesn't create a separate migration store. The **ScanState** tool provides disk space requirements for the state of the computer at the time the tool is run. The state of the computer might change during day-to-day use. For this reason, use the calculations as an estimate when planning the migration.
-To run the ScanState tool on the source computer with USMT installed:
+To run the **ScanState** tool on the source computer with USMT installed:
1. Open a command prompt with administrator privileges.
-2. Navigate to the USMT tools. For example, enter:
+1. Navigate to the USMT tools. For example, enter:
```cmd
- cd /d "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool\"
+ cd /d "C:\Program Files (x86)\Windows Kits\10.0\Assessment and Deployment Kit\User State Migration Tool\"
```
- where *<architecture>* is x86 or amd64.
+ where *\* is x86 or amd64.
-3. Run the **ScanState** tool to generate an XML report of the space requirements. At the command prompt, enter:
+1. Run the **ScanState** tool to generate an XML report of the space requirements. At the command prompt, enter:
```cmd
ScanState.exe /p:
```
- Where *<StorePath>* is a path to a directory where the migration store will be saved and *<path to a file>* is the path and filename where the XML report for space requirements will be saved. For example:
+ Where:
+
+ - *\* is a path to a directory where the migration store is saved.
+ - *\* is the path and filename where the XML report for space requirements is saved.
+
+ For example:
```cmd
ScanState.exe c:\store /p:c:\spaceRequirements.xml
```
- Although a migration store isn't created by running this command, the *<StorePath>* is still a required parameter.
+ Although a migration store isn't created by running this command, the *\* is still a required parameter.
-The ScanState tool also allows you to estimate disk space requirements based on a customized migration. For example, you might not want to migrate the My Documents folder to the destination computer. You can specify this condition in a configuration file when you run the ScanState tool. For more information, see [Customize USMT XML files](usmt-customize-xml-files.md).
+The **ScanState** tool also allows estimation of disk space requirements based on a customized migration. For example, the **Documents** folder might need to be migrated to the destination computer. This condition can be specified in a configuration file when the **ScanState** tool is run. For more information, see [Customize USMT XML files](usmt-customize-xml-files.md).
> [!NOTE]
-> To preserve the functionality of existing applications or scripts that require the previous behavior of USMT, the `/p` option is still available in USMT without having to specify the path to a file. See [Monitoring Options](usmt-scanstate-syntax.md#monitoring-options) for more information.
+>
+> To preserve the functionality of existing applications or scripts that require the previous behavior of USMT, the `/p` option is still available in USMT without having to specify the path to a file. For more information, see [Monitoring Options](usmt-scanstate-syntax.md#monitoring-options).
-The space requirements report provides two elements, <**storeSize**> and <**temporarySpace**>. The <**temporarySpace**> value shows the disk space, in bytes, that USMT uses to operate during the migration but it doesn't include the minimum 250 MB needed to support USMT. The <**storeSize**> value shows the disk space, in bytes, required to host the migration store contents on both the source and destination computers. The following example shows a report generated using `/p:`*<path to a file>*.
+The space requirements report provides two elements, \<**storeSize**\> and \<**temporarySpace**\>. The \<**temporarySpace**\> value shows the disk space, in bytes, that USMT uses to operate during the migration but it doesn't include the minimum 250 MB needed to support USMT. The \<**storeSize**\> value shows the disk space, in bytes, required to host the migration store contents on both the source and destination computers. The following example shows a report generated using `/p:`*\*.
```xml
@@ -85,25 +94,26 @@ The space requirements report provides two elements, <**storeSize**> and &
```
-Additionally, USMT performs a compliance check for a required minimum of 250 MB of available disk space and won't create a store if the compliance check fails.
+Additionally, USMT performs a compliance check for a required minimum of 250 MB of available disk space and doesn't create a store if the compliance check fails.
## Estimating migration store size
-Determine how much space you'll need to store the migrated data. You should base your calculations on the volume of e-mail, personal documents, and system settings for each user. The best way to estimate the required space is to survey several computers to arrive at an average for the size of the store that you'll need.
+Determine how much space is needed to store the migrated data. Calculations should be based on the volume of e-mail, personal documents, and system settings for each user. The best way to estimate the required space is to survey several computers to arrive at an average for the size of the store that is needed.
-The amount of space that is required in the store will vary, depending on the local storage strategies your organization uses. For example, one key element that determines the size of migration data sets is e-mail storage. If e-mail is stored centrally, data sets will be smaller. If e-mail is stored locally, such as offline-storage files, data sets will be larger. Mobile users will typically have larger data sets than workstation users. You should perform tests and inventory the network to determine the average data set size in your organization.
+The amount of space that is required in the store varies and depends on the local storage strategies the organization uses. For example, one key element that determines the size of migration data sets is e-mail storage. If e-mail is stored centrally, data sets are smaller. If e-mail is stored locally, such as offline-storage files, data sets are larger. Mobile users typically have larger data sets than workstation users. Tests should be performed and the network inventoried to determine the average data set size in the organization.
> [!NOTE]
-> You can create a space-estimate file (`Usmtsize.txt`) to estimate the size of the store by using the legacy `/p` command-line option .
+>
+> A space-estimate file (`Usmtsize.txt`) can be created to estimate the size of the store by using the legacy `/p` command-line option.
-When trying to determine how much disk space you'll need, consider the following issues:
+When trying to determine how much disk space is needed, consider the following issues:
- **E-mail**: If users deal with a large volume of e-mail or keep e-mail on their local computers instead of on a mail server, the e-mail can take up as much disk space as all other user files combined. Prior to migrating user data, make sure that users who store e-mail locally synchronize their inboxes with their mail server.
-- **User documents**: Frequently, all of a user's documents fit into less than 50 MB of space, depending on the types of files involved. This estimate assumes typical office work, such as word-processing documents and spreadsheets. This estimate can vary substantially based on the types of documents that your organization uses. For example, an architectural firm that predominantly uses computer-aided design (CAD) files needs much more space than a law firm that primarily uses word-processing documents. You don't need to migrate the documents that users store on file servers through mechanisms such as Folder Redirection, as long as users will have access to these locations after the migration.
+- **User documents**: Frequently, all of a user's documents fit into less than 50 MB of space, depending on the types of files involved. This estimate assumes typical office work, such as word-processing documents and spreadsheets. This estimate can vary substantially based on the types of documents that the organization uses. For example, an architectural firm that predominantly uses computer-aided design (CAD) files needs more space than a law firm that primarily uses word-processing documents. Documents that users store on file servers through mechanisms such as Folder Redirection don't need to be migrated, as long as users will have access to these locations after the migration.
-- **User system settings**: Five megabytes is adequate space to save the registry settings. This requirement can fluctuate, however, based on the number of applications that have been installed. It's rare, however, for the user-specific portion of the registry to exceed 5 MB.
+- **User system settings**: Five megabytes is adequate space to save the registry settings. This requirement can fluctuate, however, based on the number of applications that are installed. It's rare, however, for the user-specific portion of the registry to exceed 5 MB.
## Related articles
-[Common migration scenarios](usmt-common-migration-scenarios.md)
+- [Common migration scenarios](usmt-common-migration-scenarios.md).
diff --git a/windows/deployment/usmt/usmt-exclude-files-and-settings.md b/windows/deployment/usmt/usmt-exclude-files-and-settings.md
index d7c0f5e4fd..eaa1b73d0a 100644
--- a/windows/deployment/usmt/usmt-exclude-files-and-settings.md
+++ b/windows/deployment/usmt/usmt-exclude-files-and-settings.md
@@ -1,40 +1,43 @@
---
-title: Exclude Files and Settings (Windows 10)
+title: Exclude Files and Settings
description: In this article, learn how to exclude files and settings when creating a custom .xml file and a Config.xml file.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 09/18/2023
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Exclude files and settings
-When you specify the migration .xml files, `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml`, the User State Migration Tool (USMT) 10.0 migrates the settings and components listed, as discussed in [What does USMT migrate?](usmt-what-does-usmt-migrate.md) You can create a custom .xml file to further specify what to include or exclude in the migration. In addition, you can create a `Config.xml` file to exclude an entire component from a migration. You can't, however, exclude users by using the migration .xml files or the `Config.xml` file. The only way to specify which users to include and exclude is by using the user options on the command line in the ScanState tool. For more information, see the [User options](usmt-scanstate-syntax.md#user-options) section of the [ScanState syntax](usmt-scanstate-syntax.md) article.
+When the migration **.xml** files `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml` are specified, the User State Migration Tool (USMT) migrates the settings and components listed, as discussed in [What does USMT migrate?](usmt-what-does-usmt-migrate.md) A custom **.xml** file can be created to further specify what to include or exclude in the migration. In addition, a `Config.xml` file can be created to exclude an entire component from a migration. However, users can't be excluded by using the migration **.xml** files or the `Config.xml` file. The only way to specify which users to include and exclude is by using the user options on the command line in the **ScanState** tool. For more information, see the [User options](usmt-scanstate-syntax.md#user-options) section of the [ScanState syntax](usmt-scanstate-syntax.md) article.
Methods to customize the migration and include and exclude files and settings include:
-- [Create a custom .xml file](#create-a-custom-xml-file). You can use the following elements to specify what to exclude:
+- [Create a custom .xml file](#create-a-custom-xml-file). The following elements can be used to specify what to exclude:
- - [Include and exclude](#include-and-exclude): You can use the **<include>** and **<exclude>** elements to exclude objects with conditions. For example, you can migrate all files located in the `C:\` drive, except any `.mp3` files. It's important to remember that [Conflicts and precedence](usmt-conflicts-and-precedence.md) apply to these elements.
+ - [Include and exclude](#include-and-exclude): The **\** and **\** elements can be used to exclude objects with conditions. For example, all files located in the `C:\` drive can be migrated, except any `.mp3` files. It's important to remember that [Conflicts and precedence](usmt-conflicts-and-precedence.md) apply to these elements.
- - [unconditionalExclude](#example-1-how-to-migrate-all-files-from-c-except-mp3-files): You can use the **<unconditionalExclude>** element to globally exclude data. This element takes precedence over all other include and exclude rules in the .xml files. Therefore, this element excludes objects regardless of any other **<include>** rules that are in the .xml files. For example, you can exclude all .mp3 files on the computer, or you can exclude all files from C:\\UserData.
+ - [unconditionalExclude](#example-1-how-to-migrate-all-files-from-c-except-mp3-files): The **\** element can be used to globally exclude data. This element takes precedence over all other include and exclude rules in the **.xml** files. Therefore, this element excludes objects regardless of any other **\** rules that are in the **.xml** files. For example, all **.mp3** files can be excluded on the computer, or all files from C:\\UserData can be excluded.
-- [Create a Config.xml file](#create-a-config-xml-file): You can create and modify a `Config.xml` file to exclude an entire component from the migration. For example, you can use this file to exclude the settings for one of the default applications. In addition, creating and modifying a `Config.xml` file is the only way to exclude the operating-system settings that are migrated to computers running Windows. Excluding components using this file is easier than modifying the migration .xml files because you don't need to be familiar with the migration rules and syntax.
+- [Create a Config.xml file](#create-a-config-xml-file): A `Config.xml` file can be created and modified to exclude an entire component from the migration. For example, this file can be used to exclude the settings for one of the default applications. In addition, creating and modifying a `Config.xml` file is the only way to exclude the operating-system settings that are migrated to computers running Windows. Excluding components using this file is easier than modifying the migration **.xml** files because familiarity with the migration rules and syntax isn't required.
## Create a custom .xml file
-We recommend that you create a custom .xml file instead of modifying the default migration .xml files. When you use a custom .xml file, you can keep your changes separate from the default .xml file, which makes it easier to track your modifications.
+Microsoft recommends creating a custom **.xml** file instead of modifying the default migration **.xml** files. When a custom **.xml** file is used, the changes can be kept separate from the default **.xml** file, which makes it easier to track the modifications.
-### <include> and <exclude>
+### \ and \
-The migration .xml files, `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml`, contain the **<component>** element, which typically represents a self-contained component or an application such as Microsoft® Office Outlook® and Word. To exclude the files and registry settings that are associated with these components, use the **<include>** and **<exclude>** elements. For example, you can use these elements to migrate all files and settings with pattern X except files and settings with pattern Y, where Y is more specific than X. For the syntax of these elements, see [USMT XML Reference](usmt-xml-reference.md).
+The migration **.xml** files, `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml`, contain the **\** element, which typically represents a self-contained component or an application such as Microsoft Office Outlook and Word. To exclude the files and registry settings that are associated with these components, use the **\** and **\** elements. For example, these elements can be used to migrate all files and settings with pattern X except files and settings with pattern Y, where Y is more specific than X. For the syntax of these elements, see [USMT XML Reference](usmt-xml-reference.md).
> [!NOTE]
>
-> If you specify an **<exclude>** rule, always specify a corresponding **<include>** rule. Otherwise, if you don't specify an **<include>** rule, the specific files or settings aren't included. They're already excluded from the migration. Thus, an unaccompanied **<exclude>** rule is unnecessary.
+> If an **\** rule is specified, always specify a corresponding **\** rule. Otherwise, if an **\** rule isn't specified, the specific files or settings aren't included. They're already excluded from the migration. Thus, an unaccompanied **\** rule is unnecessary.
- [Example 1: How to migrate all files from C:\\ except .mp3 files](#example-1-how-to-migrate-all-files-from-c-except-mp3-files)
@@ -48,7 +51,7 @@ The migration .xml files, `MigApp.xml`, `MigDocs.xml`, and `MigUser.xml`, contai
### Example 1: How to migrate all files from `C:\` except `.mp3` files
-The following .xml file migrates all files located on the C: drive, except any .mp3 files.
+The following **.xml** file migrates all files located on the C: drive, except any **.mp3** files.
```xml
@@ -75,7 +78,7 @@ The following .xml file migrates all files located on the C: drive, except any .
### Example 2: How to migrate all files located in `C:\Data` except files in `C:\Data\tmp`
-The following .xml file migrates all files and subfolders in `C:\Data`, except the files and subfolders in `C:\Data\tmp`.
+The following **.xml** file migrates all files and subfolders in `C:\Data`, except the files and subfolders in `C:\Data\tmp`.
```xml
@@ -101,7 +104,7 @@ The following .xml file migrates all files and subfolders in `C:\Data`, except t
### Example 3: How to exclude the files in a folder but include all subfolders
-The following .xml file migrates any subfolders in `C:\`EngineeringDrafts`, but excludes all files that are in `C:\EngineeringDrafts`.
+The following **.xml** file migrates any subfolders in `C:\EngineeringDrafts`, but excludes all files that are in `C:\EngineeringDrafts`.
```xml
@@ -127,7 +130,7 @@ The following .xml file migrates any subfolders in `C:\`EngineeringDrafts`, but
### Example 4: How to exclude a file from a specific folder
-The following .xml file migrates all files and subfolders in `C:\EngineeringDrafts`, except for the `Sample.doc` file in `C:\EngineeringDrafts`.
+The following **.xml** file migrates all files and subfolders in `C:\EngineeringDrafts`, except for the `Sample.doc` file in `C:\EngineeringDrafts`.
```xml
@@ -153,13 +156,13 @@ The following .xml file migrates all files and subfolders in `C:\EngineeringDraf
### Example 5: How to exclude a file from any location
-To exclude a Sample.doc file from any location on the C: drive, use the **<pattern>** element. If multiple files exist with the same name on the C: drive, all of these files are excluded.
+To exclude a Sample.doc file from any location on the C: drive, use the **\** element. If multiple files exist with the same name on the C: drive, all of these files are excluded.
```xml
C:\* [Sample.doc]
```
-To exclude a Sample.doc file from any drive on the computer, use the **<script>** element. If multiple files exist with the same name, all of these files are excluded.
+To exclude a Sample.doc file from any drive on the computer, use the **\
@@ -171,7 +174,7 @@ Here are some examples of how to use XML to exclude files, folders, and registry
##### Example 1: How to exclude all `.mp3` files
-The following .xml file excludes all `.mp3` files from the migration:
+The following **.xml** file excludes all `.mp3` files from the migration:
```xml
@@ -192,7 +195,7 @@ The following .xml file excludes all `.mp3` files from the migration:
##### Example 2: How to exclude all of the files on a specific drive
-The following .xml file excludes only the files located on the C: drive.
+The following **.xml** file excludes only the files located on the C: drive.
```xml
@@ -213,7 +216,7 @@ The following .xml file excludes only the files located on the C: drive.
##### Example 3: How to exclude registry keys
-The following .xml file unconditionally excludes the `HKEY_CURRENT_USER` registry key and all of its subkeys.
+The following **.xml** file unconditionally excludes the `HKEY_CURRENT_USER` registry key and all of its subkeys.
```xml
@@ -240,7 +243,7 @@ The following .xml file unconditionally excludes the `HKEY_CURRENT_USER` registr
##### Example 4: How to Exclude `C:\Windows` and `C:\Program Files`
-The following .xml file unconditionally excludes the system folders of `C:\Windows` and `C:\Program Files`. All `*.docx`, `*.xls` and `*.ppt` files aren't migrated because the **<unconditionalExclude>** element takes precedence over the **<include>** element.
+The following **.xml** file unconditionally excludes the system folders of `C:\Windows` and `C:\Program Files`. All `*.docx`, `*.xls` and `*.ppt` files aren't migrated because the **\** element takes precedence over the **\** element.
```xml
@@ -270,22 +273,21 @@ The following .xml file unconditionally excludes the system folders of `C:\Windo
## Create a Config XML File
-You can create and modify a `Config.xml` file if you want to exclude components from the migration. Excluding components using this file is easier than modifying the migration .xml files because you don't need to be familiar with the migration rules and syntax. `Config.xml` is an optional file that you can create using the `/genconfig` command-line option with the ScanState tool. For example, you can use the `Config.xml` file to exclude the settings for one of the default applications. In addition, creating and modifying this file is the only way to exclude the operating-system settings that are migrated to computers running Windows.
+A `Config.xml` file can be created and modified to exclude components from the migration. Excluding components using this file is easier than modifying the migration **.xml** files because familiarity with the migration rules and syntax isn't required. `Config.xml` is an optional file that can be created using the `/genconfig` command-line option with the **ScanState** tool. For example, the `Config.xml` file can be used to exclude the settings for one of the default applications. In addition, creating and modifying this file is the only way to exclude the operating-system settings that are migrated to computers running Windows.
-- **To exclude the settings for a default application:** Specify `migrate="no"` for the application under the **<Applications>** section of the `Config.xml` file.
+- **To exclude the settings for a default application:** Specify `migrate="no"` for the application under the **\** section of the `Config.xml` file.
-- **To exclude an operating system setting:** Specify `migrate="no"` for the setting under the **<WindowsComponents>** section.
+- **To exclude an operating system setting:** Specify `migrate="no"` for the setting under the **\** section.
-- **To exclude My Documents:** Specify `migrate="no"` for **My Documents** under the **<Documents>** section. Any **<include>** rules in the .xml files are still applied. For example, if you have a rule that includes all the .docx files in My Documents, then .docx files are still migrated. However, any additional files that aren't .docx aren't migrated.
+- **To exclude the Documents folder:** Specify `migrate="no"` for the **Documents** folder under the **\** section. Any **\** rules in the **.xml** files are still applied. For example, if a rule exists that includes all the **.docx** files in the **Documents** folder, then **.docx** files are still migrated. However, any additional files that aren't **.docx** aren't migrated.
For more information, see [Config.xml File](usmt-configxml-file.md).
> [!NOTE]
>
-> To exclude a component from the `Config.xml` file, set the **migrate** value to **"no"**. Deleting the XML tag for the component from the `Config.xml` file doesn't exclude the component from your migration.
+> To exclude a component from the `Config.xml` file, set the **migrate** value to **"no"**. Deleting the XML tag for the component from the `Config.xml` file doesn't exclude the component from the migration.
## Related articles
-- [Customize USMT XML files](usmt-customize-xml-files.md)
-
-- [USMT XML reference](usmt-xml-reference.md)
+- [Customize USMT XML files](usmt-customize-xml-files.md).
+- [USMT XML reference](usmt-xml-reference.md).
diff --git a/windows/deployment/usmt/usmt-extract-files-from-a-compressed-migration-store.md b/windows/deployment/usmt/usmt-extract-files-from-a-compressed-migration-store.md
index 0e973ffb4e..fabb39e360 100644
--- a/windows/deployment/usmt/usmt-extract-files-from-a-compressed-migration-store.md
+++ b/windows/deployment/usmt/usmt-extract-files-from-a-compressed-migration-store.md
@@ -1,18 +1,21 @@
---
-title: Extract Files from a Compressed USMT Migration Store (Windows 10)
+title: Extract Files from a Compressed USMT Migration Store
description: In this article, learn how to extract files from a compressed User State Migration Tool (USMT) migration store.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Extract files from a compressed USMT migration store
-When you migrate files and settings during a typical PC-refresh migration, you usually create a compressed migration store file on the intermediate store. This migration store is a single image file that contains all files being migrated as well as a catalog file. To protect the compressed file, you can encrypt it by using different encryption algorithms. When you migrate the file back to the source computer after the operating system is installed, you can run the **UsmtUtils** command with the `/extract` option to recover the files from the compressed migration store. You can also use the **UsmtUtils** command with the `/extract` option any time you need to recover data from a migration store.
+When files and settings are migrated during a typical PC-refresh migration, a compressed migration store file is usually created on the intermediate store. This migration store is a single image file that contains all files being migrated as well as a catalog file. To protect the compressed file, it can be encrypted by using different encryption algorithms. When the file is migrated back to the source computer after the operating system is installed, the **UsmtUtils** command can be run with the `/extract` option to recover the files from the compressed migration store. The **UsmtUtils** command with the `/extract` option can also be used any time data needs to be recovered from a migration store.
Options used with the `/extract` option can specify:
@@ -22,7 +25,7 @@ Options used with the `/extract` option can specify:
- Include and exclude patterns for selective data extraction.
-In addition, you can specify the file patterns that you want to extract by using the `/i` option to include file patterns or the `/e` option to exclude file patterns. When both the `/i` option and the `/e` option are used in the same command, include patterns take precedence over exclude patterns. Note that this is different from the include and exclude rules used in the **ScanState** and **LoadState** tools.
+In addition, the file patterns that need to be extracted can be specified by using the `/i` option to include file patterns or the `/e` option to exclude file patterns. When both the `/i` option and the `/e` option are used in the same command, include patterns take precedence over exclude patterns. The `/i` and the `/e` options are different from the include and exclude rules used in the **ScanState** and **LoadState** tools.
## To run the UsmtUtils tool with the /extract option
@@ -34,23 +37,23 @@ UsmtUtils.exe /extract [/i:] [/e:** is the location where the USMT files and tools are saved.
-- **<filePath>** is the location of the migration store.
+- **\** is the location of the migration store.
-- **<destination path>** is the location of the file where you want the **/extract** option to put the extracted migration store contents.
+- **\** is the location of the file where the **/extract** option should put the extracted migration store contents.
-- **<includePattern>** specifies the pattern for the files to include in the extraction.
+- **\** specifies the pattern for the files to include in the extraction.
-- **<excludePattern>** specifies the pattern for the files to omit from the extraction.
+- **\** specifies the pattern for the files to omit from the extraction.
-- **<AlgID>** is the cryptographic algorithm that was used to create the migration store on the `ScanState.exe` command line.
+- **\** is the cryptographic algorithm that was used to create the migration store on the `ScanState.exe` command line.
-- **<logfile>** is the location and name of the log file.
+- **\** is the location and name of the log file.
-- **<keystring>** is the encryption key that was used to encrypt the migration store.
+- **\** is the encryption key that was used to encrypt the migration store.
-- **<filename>** is the location and name of the text file that contains the encryption key.
+- **\** is the location and name of the text file that contains the encryption key.
### To extract all files from a compressed migration store
@@ -80,18 +83,16 @@ UsmtUtils.exe /extract D:\MyMigrationStore\USMT\store.mig /e:*.exe C:\ExtractedS
### To extract file types using the include pattern and the exclude pattern
-To extract files from a compressed migration store, and to exclude files of one type (such as .exe files) while including only specific files, use both the include pattern and the exclude pattern, as in this example:
+When files are extracted from a compressed migration store, both the include and the exclude patterns can be used at the same time. Files of one type can be excluded while files of another type can be included. For example:
```cmd
UsmtUtils.exe /extract D:\MyMigrationStore\USMT\store.mig /i:myProject.* /e:*.exe C:\ExtractedStore /o
```
-In this example, if there is a myProject.exe file, it will also be extracted because the include pattern option takes precedence over the exclude pattern option.
+In this example, if there's a **myProject.exe** file, the file is also extracted because the include pattern option takes precedence over the exclude pattern option.
## Related articles
-[UsmtUtils syntax](usmt-utilities.md)
-
-[Return codes](/troubleshoot/windows-client/deployment/usmt-return-codes)
-
-[Verify the condition of a compressed migration store](verify-the-condition-of-a-compressed-migration-store.md)
+- [UsmtUtils syntax](usmt-utilities.md).
+- [Return codes](/troubleshoot/windows-client/deployment/usmt-return-codes).
+- [Verify the condition of a compressed migration store](verify-the-condition-of-a-compressed-migration-store.md).
diff --git a/windows/deployment/usmt/usmt-faq.yml b/windows/deployment/usmt/usmt-faq.yml
index f22b052e29..3f948afe24 100644
--- a/windows/deployment/usmt/usmt-faq.yml
+++ b/windows/deployment/usmt/usmt-faq.yml
@@ -1,7 +1,7 @@
### YamlMime:FAQ
metadata:
- title: 'Frequently Asked Questions (Windows 10)'
- description: 'Learn about frequently asked questions and recommended solutions for migrations using User State Migration Tool (USMT) 10.0.'
+ title: 'USMT Frequently Asked Questions'
+ description: 'Learn about frequently asked questions and recommended solutions for migrations using User State Migration Tool (USMT).'
ms.assetid: 813c13a7-6818-4e6e-9284-7ee49493241b
ms.prod: windows-client
ms.technology: itpro-deploy
@@ -11,11 +11,16 @@ metadata:
ms.mktglfcycl: deploy
ms.sitesec: library
audience: itpro
- ms.date: 11/01/2022
+ ms.date: 01/03/2024
ms.topic: faq
title: Frequently Asked Questions
summary: |
- The following sections provide frequently asked questions and recommended solutions for migrations using User State Migration Tool (USMT) 10.0.
+ **Applies to:**
+
+ - Windows 11
+ - Windows 10
+
+ The following sections provide frequently asked questions and recommended solutions for migrations using User State Migration Tool (USMT).
sections:
@@ -33,54 +38,66 @@ sections:
- Uncompressed store
- question: |
- Can I store the files and settings directly on the destination computer or do I need a server?
+ Can the files and settings be stored directly on the destination computer or is a server needed?
answer: |
- You don't need to save the files to a server. If you're moving the user state to a new computer, you can create the store on a shared folder, on media that you can remove, such as a USB flash drive (UFD), or you can store it directly on the destination computer, as in the following steps:
+ Files don't need to be saved to a server. If moving the user state to a new computer, the store can be created on:
+
+ - A shared folder.
+ - On removable media, such as a USB flash drive (UFD).
+ - Directly on the destination computer.
+
+ To store it directly on the destination computer:
1. Create and share the directory `C:\store` on the destination computer.
- 2. Run the **ScanState** tool on the source computer and save the files and settings to `\\\store`
+ 1. Run the **ScanState** tool on the source computer and save the files and settings to `\\\store`
- 3. Run the **LoadState** tool on the destination computer and specify `C:\store` as the store location.
+ 1. Run the **LoadState** tool on the destination computer and specify `C:\store` as the store location.
- question: |
- Can I migrate data between operating systems with different languages?
+ Can data be migrated between operating systems with different languages?
answer: |
No. USMT doesn't support migrating data between operating systems with different languages; the source computer's operating-system language must match the destination computer's operating-system language.
- question: |
- Can I change the location of the temporary directory on the destination computer?
+ Can the location of the temporary directory on the destination computer be changed?
answer: |
Yes. The environment variable `USMT\_WORKING\_DIR` can be changed to an alternative temporary directory. There are some offline migration scenarios where changing the temporary directory is necessary, for example, when the USMT binaries are located on read-only Windows Preinstallation Environment (WinPE) boot media.
- question: |
- How do I install USMT?
+ How is USMT installed?
answer: |
- Because USMT is included in Windows Assessment and Deployment Kit (Windows ADK), you need to install the Windows ADK package on at least one computer in your environment. The USMT binaries can then be copied from the USMT directory located on the original computer where the Windows ADK was installed to additional client computers.
+ Because USMT is included in Windows Assessment and Deployment Kit (Windows ADK), the Windows ADK package needs to be installed on at least one computer in the environment. The USMT binaries can then be copied from the USMT directory located on the original computer where the Windows ADK was installed to additional client computers.
- question: |
- How do I uninstall USMT?
+ How is USMT uninstalled?
answer: |
- If you've installed the Windows ADK on the computer, uninstalling Windows ADK will uninstall USMT. For client computers that don't have the Windows ADK installed, you can delete the USMT directory to uninstall USMT.
+ For computers that have the Windows ADK installed, uninstalling the Windows ADK from the computer uninstalls USMT. For client computers that don't have the Windows ADK installed, the USMT directory can be deleted to uninstall USMT.
- name: Files and Settings
questions:
- question: |
- How can I exclude a folder or a certain type of file from the migration?
+ How can a folder or a certain type of file be excluded from the migration?
answer: |
- You can use the **<unconditionalExclude>** element to globally exclude data from the migration. For example, you can use this element to exclude all MP3 files on the computer or to exclude all files from `C:\UserData`. This element excludes objects regardless of any other **<include>** rules that are in the .xml files. For an example, see **<unconditionalExclude>** in the [Exclude files and settings](usmt-exclude-files-and-settings.md) article. For the syntax of this element, see [XML elements library](usmt-xml-elements-library.md).
+ The **\** element can be used to globally exclude data from the migration. For example, this element can be used to exclude all MP3 files on the computer or to exclude all files from `C:\UserData`. This element excludes objects regardless of any other **\** rules that are in the **.xml** files. For an example, see **\** in the [Exclude files and settings](usmt-exclude-files-and-settings.md) article. For the syntax of this element, see [XML elements library](usmt-xml-elements-library.md).
- question: |
What happens to files that were located on a drive that don't exist on the destination computer?
answer: |
- USMT migrates the files to the `%SystemDrive%` while maintaining the correct folder hierarchy. For example, if `E:\data\File.pst` is on the source computer, but the destination computer doesn't have an E:\\ drive, the file will be migrated to `C:\data\File.pst`, if C:\\ is the system drive. This behavior holds true even when **<locationModify>** rules attempt to move data to a drive that doesn't exist on the destination computer.
+ USMT migrates the files to the `%SystemDrive%` while maintaining the correct folder hierarchy. For example:
+
+ - `E:\data\File.pst` is on the source computer.
+ - Destination computer doesn't have an E:\\ drive.
+ - C:\\ is the system drive on the destination computer.
+
+ the file is migrated to `C:\data\File.pst`. This behavior holds true even when **\** rules attempt to move data to a drive that doesn't exist on the destination computer.
- name: USMT .xml Files
questions:
- question: |
- Where can I get examples of USMT .xml files?
+ Where are there examples of USMT **.xml** files?
answer: |
- The following articles include examples of USMT .xml files:
+ The following articles include examples of USMT **.xml** files:
- [Exclude files and settings](usmt-exclude-files-and-settings.md)
@@ -91,37 +108,37 @@ sections:
- [Custom XML examples](usmt-custom-xml-examples.md)
- question: |
- Can I use custom .xml files that were written for USMT 5.0?
+ Can custom **.xml** files that were written for USMT 5.0 be used?
answer: |
- Yes. You can use custom .xml files that were written for USMT 5.0 with USMT for Windows 10. However, in order to use new USMT functionality, you must revisit your custom USMT files and refresh them to include the new command-line options and XML elements.
+ Yes. Custom **.xml** files that were written for USMT 5.0 can be used with newer versions of USMT. However, in order to use new USMT functionality, the custom USMT files must be revisited and refreshed to include the new command-line options and XML elements.
- question: |
- How can I validate the .xml files?
+ How can the **.xml** files be validated?
answer: |
- You can use the USMT XML Schema (`MigXML.xsd`) to write and validate migration .xml files.
+ The USMT XML Schema (`MigXML.xsd`) can be used to write and validate migration **.xml** files.
- question: |
- Why must I list the .xml files with both the `ScanState.exe` and `LoadState.exe` commands?
+ Why must the **.xml** files be included with both the `ScanState.exe` and `LoadState.exe` commands?
answer: |
- The .xml files aren't copied to the store as in previous versions of USMT. Because the **ScanState** and **LoadState** tools need the .xml files to control the migration, you must specify the same set of .xml files for the `ScanState.exe` and `LoadState.exe` commands. If you used a particular set of mig\*.xml files in the **ScanState** tool, either called through the `/auto` option, or individually through the `/i` option, then you should use same option to call the exact same mig\*.xml files in the **LoadState** tool. However, you don't have to specify the `Config.xml` file, unless you want to exclude some of the files and settings that you migrated to the store. For example, you might want to migrate the **My Documents** folder to the store, but not to the destination computer. To do this type of migration, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. **LoadState** will migrate only the files and settings that you want to migrate.
+ The **.xml** files aren't copied to the store as in previous versions of USMT. Because the **ScanState** and **LoadState** tools need the **.xml** files to control the migration, the same set of **.xml** files must be specified for the `ScanState.exe` and `LoadState.exe` commands. If a particular set of mig\*.xml files were used in the **ScanState** tool, either called through the `/auto` option, or individually through the `/i` option, then the same option should be used to call the exact same mig\*.xml files in the **LoadState** tool. However, the `Config.xml` file doesn't need to be specified, unless files and settings that were migrated to the store need to be excluded. For example, the **Documents** folder might be migrated to the store, but not to the destination computer. To do this type of migration, modify the `Config.xml` file and specify the updated file with the `LoadState.exe` command. **LoadState** migrates only the desired files and settings.
- If you exclude an .xml file from the `LoadState.exe` command, then all of the data that is in the store that was migrated with the missing .xml files will be migrated. However, the migration rules that were specified for the `ScanState.exe` command won't apply. For example, if you exclude a `MigApp.xml` file that has a rerouting rule such as `MigsysHelperFunction.RelativeMove("c:\data", "%CSIDL_PERSONAL%")`, USMT won't reroute the files. Instead, it will migrate them to `C:\data`.
+ If an **.xml** file is excluded from the `LoadState.exe` command, then all of the data in the store that was migrated with the missing **.xml** files are migrated. However, the migration rules that were specified for the `ScanState.exe` command don't apply. For example, if a `MigApp.xml` file that has a rerouting rule such as `MigsysHelperFunction.RelativeMove("c:\data", "%CSIDL_PERSONAL%")` is excluded, USMT doesn't reroute the files. Instead, it migrates them to `C:\data`.
- question: |
- Which files can I modify and specify on the command line?
+ Which files can be modified and specified on the command line?
answer: |
- You can specify the `MigUser.xml` and `MigApp.xml` files on the command line. You can modify each of these files. The migration of operating system settings is controlled by the manifests, which you can't modify. If you want to exclude certain operating-system settings or any other components, create and modify the `Config.xml` file.
+ The `MigUser.xml`, `MigApp.xml`, and `MigDocs.xml` files can be specified on the command line. Each of these files can be modified. Manifests control the migration of operating system settings. Manifests can't be modified. To exclude certain operating-system settings or any other components, create and modify the `Config.xml` file.
- question: |
- What happens if I don't specify the .xml files on the command line?
+ What happens if the **.xml** files aren't specified on the command line?
answer: |
- **ScanState**
- If you don't specify any files with the `ScanState.exe` command, all user accounts and default operating system components are migrated.
+ If no files are specified with the `ScanState.exe` command, all user accounts and default operating system components are migrated.
- **LoadState**
- If you don't specify any files with the `LoadState.exe` command, all data that is in the store is migrated. However, any target-specific migration rules that were specified in .xml files with the `ScanState.exe` command won't apply. For example, if you exclude a `MigApp.xml` file that has a rerouting rule such as `MigsysHelperFunction.RelativeMove("c:\data", "%CSIDL_PERSONAL%")`, USMT won't reroute the files. Instead, it will migrate them to `C:\data`.
+ If no files are specified with the `LoadState.exe` command, all data that is in the store is migrated. However, any target-specific migration rules that were specified in **.xml** files with the `ScanState.exe` command doesn't apply. For example, if a `MigApp.xml` file that has a rerouting rule such as `MigsysHelperFunction.RelativeMove("c:\data", "%CSIDL_PERSONAL%")` is excluded, USMT doesn't reroute the files. Instead, it migrates them to `C:\data`.
- name: Conflicts and Precedence
questions:
@@ -135,8 +152,6 @@ additionalContent: |
## Related topics
- [User State Migration Tool (USMT) Troubleshooting](usmt-troubleshooting.md)
-
- [Extract files from a compressed USMT migration store](usmt-extract-files-from-a-compressed-migration-store.md)
-
- [Verify the condition of a compressed migration store](verify-the-condition-of-a-compressed-migration-store.md)
+ - [User State Migration Tool (USMT) Troubleshooting](usmt-troubleshooting.md).
+ - [Extract files from a compressed USMT migration store](usmt-extract-files-from-a-compressed-migration-store.md).
+ - [Verify the condition of a compressed migration store](verify-the-condition-of-a-compressed-migration-store.md).
diff --git a/windows/deployment/usmt/usmt-general-conventions.md b/windows/deployment/usmt/usmt-general-conventions.md
index a7078f7b0b..ed822d7993 100644
--- a/windows/deployment/usmt/usmt-general-conventions.md
+++ b/windows/deployment/usmt/usmt-general-conventions.md
@@ -1,58 +1,61 @@
---
-title: General Conventions (Windows 10)
+title: General Conventions
description: Learn about general XML guidelines and how to use XML helper functions in the XML Elements library to change migration behavior.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# General conventions
-This topic describes the XML helper functions.
+This article describes the XML helper functions.
## General XML guidelines
-Before you modify the .xml files, become familiar with the following guidelines:
+Before modifying the **.xml** files, become familiar with the following guidelines:
-- **XML schema**
+- **XML schema.**
- You can use the User State Migration Tool (USMT) 10.0 XML schema, MigXML.xsd, to write and validate migration .xml files.
+ The User State Migration Tool (USMT) XML schema, `MigXML.xsd`, can be used to write and validate migration **.xml** files.
-- **Conflicts**
+- **Conflicts.**
In general, when there are conflicts within the XML schema, the most specific pattern takes precedence. For more information, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
-- **Required elements**
+- **Required elements.**
- The required elements for a migration .xml file are **<migration>**, **<component>**, **<role>**, and **<rules>**.
+ The required elements for a migration **.xml** file are **\**, **\**, **\**, and **\**.
-- **Required child elements**
+- **Required child elements.**
- - USMT doesn't fail with an error if you don't specify the required child elements. However, you must specify the required child elements for the parent element to affect the migration.
+ - USMT doesn't fail with an error if the required child elements aren't specified. However, the required child elements must be specified for the parent element to affect the migration.
- - The required child elements apply only to the first definition of the element. If these elements are defined and then referred to using their name, the required child elements don't apply. For example, if you define `` in **<namedElements>**, and you specify `` in **<component>** to refer to this element, the definition inside **<namedElements>** must have the required child elements, but the **<component>** element doesn't need to have the required child elements.
+ - The required child elements apply only to the first definition of the element. If these elements are defined and then referred to using their name, the required child elements don't apply. For example, if `` is defined in **\**, and `` is specified in **\** to refer to this element, the definition inside **\** must have the required child elements, but the **\** element doesn't need to have the required child elements.
-- **File names with brackets**
+- **File names with brackets.**
- If you're migrating a file that has a bracket character (\[ or \]) in the file name, you must insert a carat (^) character directly before the bracket for the bracket character to be valid. For example, if there's a file named **file].txt**, you must specify `c:\documents\mydocs [file^].txt]` instead of `c:\documents\mydocs [file].txt]`.
+ If a file that has a bracket character (\[ or \]) in the file name is being migrated, a carat (^) character must be inserted. The carat (^) character must be directly before the bracket for the bracket character to be valid. For example, if there's a file named **file].txt**, `c:\documents\mydocs [file^].txt]` must be specified instead of `c:\documents\mydocs [file].txt]`.
-- **Using quotation marks**
+- **Using quotation marks.**
- When you surround code in quotation marks, you can use either double ("") or single (') quotation marks.
+ When code is surrounded in quotation marks, either the double ("") or the single (') quotation marks can be used.
## Helper functions
-You can use the XML helper functions in the [XML elements library](usmt-xml-elements-library.md) to change migration behavior. Before you use these functions in an .xml file, note the following items:
+The XML helper functions in the [XML elements library](usmt-xml-elements-library.md) can be used to change migration behavior. Before using these functions in an **.xml** file, note the following items:
-- **All of the parameters are strings**
+- **All of the parameters are strings.**
-- **You can leave NULL parameters blank**
+- **NULL parameters can be left blank.**
- As with parameters with a default value convention, if you have a NULL parameter at the end of a list, you can leave it out. For example, the following function:
+ As with parameters with a default value convention, if there's a NULL parameter at the end of a list, it can be left out. For example, the following function:
```cmd
SomeFunction("My String argument",NULL,NULL)
@@ -64,20 +67,36 @@ You can use the XML helper functions in the [XML elements library](usmt-xml-elem
SomeFunction("My String argument")
```
-- **The encoded location used in all the helper functions is an unambiguous string representation for the name of an object**
+- **The encoded location used in all the helper functions is an unambiguous string representation for the name of an object.**
- It's composed of the node part, optionally followed by the leaf enclosed in square brackets. This format makes a clear distinction between nodes and leaves.
+ The encoded location is composed of the node part, optionally followed by the leaf enclosed in square brackets. This format makes a clear distinction between nodes and leaves.
- For example, specify the file `C:\Windows\Notepad.exe`: **c:\\Windows\[Notepad.exe\]**. Similarly, specify the directory `C:\Windows\System32` like this: **c:\\Windows\\System32**; note the absence of the **\[\]** characters.
+ For example, specify the file
+
+ `C:\Windows\Notepad.exe`
+
+ as
+
+ **c:\\Windows\[Notepad.exe\]**
+
+ Similarly, specify the directory
+
+ `C:\Windows\System32`
+
+ as
+
+ **c:\\Windows\\System32**
+
+ Note the absence of the **\[\]** characters in second example.
The registry is represented in a similar way. The default value of a registry key is represented as an empty **\[\]** construct. For example, the default value for the `HKLM\SOFTWARE\MyKey` registry key is **HKLM\\SOFTWARE\\MyKey\[\]**.
-- **You specify a location pattern in a way that is similar to how you specify an actual location**
+- **A location pattern is specified in a way that is similar to how an actual location is specified.**
The exception is that both the node and leaf part accept patterns. However, a pattern from the node doesn't extend to the leaf.
- For example, the pattern **c:\\Windows\\\\\*** will match the `\Windows` directory and all subdirectories, but it will not match any of the files in those directories. To match the files as well, you must specify **c:\\Windows\\\*\[\*\]**.
+ For example, the pattern **c:\\Windows\\\\\*** matches the `\Windows` directory and all subdirectories, but it doesn't match any of the files in those directories. To match the files as well, **c:\\Windows\\\*\[\*\]** must be specified.
## Related articles
-[USMT XML reference](usmt-xml-reference.md)
+- [USMT XML reference](usmt-xml-reference.md).
diff --git a/windows/deployment/usmt/usmt-hard-link-migration-store.md b/windows/deployment/usmt/usmt-hard-link-migration-store.md
index 13a65a73e1..9a2f6667d8 100644
--- a/windows/deployment/usmt/usmt-hard-link-migration-store.md
+++ b/windows/deployment/usmt/usmt-hard-link-migration-store.md
@@ -1,78 +1,86 @@
---
-title: Hard-Link Migration Store (Windows 10)
+title: Hard-Link Migration Store
description: Use of a hard-link migration store for a computer-refresh scenario drastically improves migration performance and significantly reduces hard-disk utilization.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Hard-Link Migration Store
-A **hard-link migration store** enables you to perform an in-place migration where all user state is maintained on the computer while the old operating system is removed and the new operating system is installed. This functionality is what makes **hard-link migration store** best suited for the computer-refresh scenario. Use of a hard-link migration store for a computer-refresh scenario drastically improves migration performance and significantly reduces hard-disk utilization, reduces deployment costs, and enables entirely new migration scenarios.
+A **hard-link migration store** enables an in-place migration to be performed where all user state is maintained on the computer while the old operating system is removed and the new operating system is installed. This functionality is what makes **hard-link migration store** best suited for the computer-refresh scenario. Use of a hard-link migration store for a computer-refresh scenario drastically improves migration performance and significantly reduces hard-disk utilization, reduces deployment costs, and enables entirely new migration scenarios.
## When to use a hard-link migration
-You can use a hard-link migration store when your planned migration meets both of the following criteria:
+A hard-link migration store can be used when the planned migration meets both of the following criteria:
-- You're upgrading the operating system on existing hardware rather than migrating to new computers.
+- The operating system is being upgraded on existing hardware rather than migrating to new computers.
-- You're upgrading the operating system on the same volume of the computer.
+- The operating system is being upgraded on the same volume of the computer.
-You can't use a hard-link migration store if your planned migration includes any of the following tasks:
+A hard-link migration store can't be used if the planned migration includes any of the following tasks:
-- You're migrating data from one computer to a second computer.
+- Data is being migrated from one computer to a different computer.
-- You're migrating data from one volume on a computer to another volume, for example from `C:` to `D:`.
+- Data is being migrating from one volume on a computer to another volume on the same computer, for example from `C:` to `D:`.
-- You're formatting or repartitioning the disk outside of Windows Setup, or specifying a disk format or repartition during Windows Setup that will remove the migration store.
+- The disk containing the migration store is being formatted or repartitioned disk either outside of Windows Setup or during Windows Setup.
## Understanding a hard-link migration
The hard-link migration store is created using the command-line option, `/hardlink`, and is equivalent to other migration-store types. However, it differs in that hard links are utilized to keep files stored on the source computer during the migration. Keeping the files in place on the source computer eliminates the redundant work of duplicating files. It also enables the performance benefits and reduction in disk utilization that define this scenario.
-When you create a hard link, you give an existing file one more path. For instance, you could create a hard link to `c:\file1.txt` called `c:\hard link\myFile.txt`. These two paths relate to the same file. If you open `c:\file1.txt`, make changes, and save the file, you'll see those changes when you open `c:\hard link\myFile.txt`. If you delete `c:\file1.txt`, the file still exists on your computer as `c:\hardlink\myFile.txt`. You must delete both references to the file in order to delete the file.
+When a hard link is created, an existing file is given one more path. For instance, a hard link to `c:\file1.txt` can be created called `c:\hard link\myFile.txt`. These two paths relate to the same file. If `c:\file1.txt` is opened, then changes made to the file followed by the file being saved, those changes are seen when `c:\hard link\myFile.txt` is opened. If `c:\file1.txt` is deleted, the file still exists on the computer as `c:\hardlink\myFile.txt`. Both references to the file must be deleted in order to delete the file.
> [!NOTE]
-> A hard link can only be created for a file on the same volume. If you copy a hard-link migration store to another drive or external device, the files, and not the links, are copied, as in a non-compressed migration-store scenario.
+>
+>A hard link can only be created for a file on the same volume. If a hard-link migration store is copied to another drive or external device, the files, and not the links, are copied, as in a non-compressed migration-store scenario.
For more information about hard links, see [Hard Links and Junctions](/windows/win32/fileio/hard-links-and-junctions)
-In most aspects, a hard-link migration store is identical to an uncompressed migration store. It's located where specified by the **ScanState.exe** command-line tool and you can view the contents of the store by using Windows Explorer. Once created, it can be deleted or copied to another location without changing user state. Restoring a hard-link migration store is similar to restoring any other migration store. However, as with creating the store, the same hard-link functionality is used to keep files in-place.
+In most aspects, a hard-link migration store is identical to an uncompressed migration store. The hard-link migration store is located as specified by the **ScanState.exe** command-line tool. The contents of the store can be viewed by using Windows Explorer. Once created, it can be deleted or copied to another location without changing user state. Restoring a hard-link migration store is similar to restoring any other migration store. However, as with creating the store, the same hard-link functionality is used to keep files in-place.
-As a best practice, it's recommended that you delete the hard-link migration store after you confirm that the **LoadState** tool has successfully migrated the files. Since **LoadState** has created new paths to the files on the new installation of a Windows operating system, deleting the hard links in the migration store will only delete one path to the files, and won't delete the actual files or the paths to them from the new operating system.
+As a best practice, delete the hard-link migration store after confirming that the files are successfully migrated via the **LoadState** tool. Since **LoadState** creates new paths to the files on the new installation of a Windows operating system, deleting the hard links in the migration store only deletes one path to the files. It doesn't delete the actual files or the paths to them from the new operating system.
> [!IMPORTANT]
-> Using the `/c` option will force the **LoadState** tool to continue applying files when non-fatal errors occur. If you use the `/c` option, you should verify that no errors are reported in the logs before deleting the hard-link migration store in order to avoid data loss.
+>
+> Using the `/c` option forces the **LoadState** tool to continue applying files when non-fatal errors occur. If the `/c` option is used, verify that no errors are reported in the logs before deleting the hard-link migration store in order to avoid data loss.
Keeping the hard-link migration store can result in extra disk space being consumed or problems with some applications for the following reasons:
-- Applications reporting file-system statistics, for example, space used and free space, might incorrectly report these statistics while the hard-link migration store is present. The file may be reported twice because of the two paths that reference that file.
+- Applications reporting file-system statistics, for example, space used and free space, might incorrectly report these statistics while the hard-link migration store is present. The file might be reported twice because of the two paths that reference that file.
-- A hard link may lose its connection to the original file. Some applications save changes to a file by creating a temporary file and then renaming the original to a backup filename. The path that wasn't used to open the file in this application will continue to refer to the unmodified file. The unmodified file that isn't in use is taking up more disk space. You should create the hard-link migration store just before you perform the migration, and not use applications once the store is created, in order to make sure you're migrating the latest versions of all files.
+- A hard link might lose its connection to the original file. Some applications save changes to a file by creating a temporary file and then renaming the original to a backup filename. The path that wasn't used to open the file in this application continues to refer to the unmodified file. The unmodified file that isn't in use is taking up more disk space. The hard-link migration store should be created just before the migration is performed. Once the store is created, applications shouldn't be used in order to make sure the latest versions of all files are being migrating.
-- Editing the file by using different paths simultaneously may result in data corruption.
+- Editing the file by using different paths simultaneously might result in data corruption.
> [!IMPORTANT]
+>
> The read-only file attribute on migrated files is lost when the hard-link migration store is deleted. This is due to a limitation in NTFS file system hard links.
## Hard-link migration scenario
-For example, a company has decided to deploy Windows 10 on all of their computers. Each employee will keep the same computer, but the operating system on each computer will be updated.
+For example, an organization decides to deploy the latest supported version of Windows on all of their computers. Each employee keeps the same computer, but the operating system on each computer will be updated.
1. An administrator runs the **ScanState** command-line tool on each computer, specifying the `/hardlink` command-line option. The **ScanState** tool saves the user state to a hard-link migration store on each computer, improving performance by reducing file duplication, except in certain specific instances.
> [!NOTE]
- > As a best practice, we recommend that you do not create your hard-link migration store until just before you perform the migration in order to migrate the latest versions of your files. You should not use your software applications on the computer after creating the migration store until you have finished migrating your files with **LoadState**.
+ >
+ > As a best practice, Microsoft recommends not to create the hard-link migration store until just before the migration is performed in order to migrate the latest versions of files. Software applications shouldn't be used on the computer after creating the migration store until files finish migrating with **LoadState**.
-2. On each computer, an administrator installs the company's standard operating environment (SOE), which includes Windows 10 and other applications the company currently uses.
+1. On each computer, an administrator installs the organization's standard operating environment (SOE), which includes the latest supported version of Windows and other applications the organization currently uses.
-3. An administrator runs the **LoadState** command-line tool on each computer. The **LoadState** tool restores user state back on each computer.
+1. An administrator runs the **LoadState** command-line tool on each computer. The **LoadState** tool restores user state back on each computer.
> [!NOTE]
+>
> During the update of a domain-joined computer, the profiles of users whose SID cannot be resolved will not be migrated. When using a hard-link migration store, it could cause a data loss.
## Hard-link migration store details
@@ -85,46 +93,52 @@ The `/hardlink` command-line option proceeds with creating the migration store o
### Hard-link store size estimation
-It isn't necessary to estimate the size of a hard-link migration store since hard-link migration store on NTFS volumes will be relatively small and require much less incremental space than other store options. Estimating the size of a migration store is only useful in scenarios where the migration store is large. The only case where the local store can be large with hard-link migrations is when non-NTFS file systems exist on the system and the non-NTFS files system contain data that needs to be migrated. Since NTFS has been the default file system format for Windows XP and newer operating systems, this situation is unusual.
+It isn't necessary to estimate the size of a hard-link migration store since a hard-link migration store on an NTFS volume is relatively small and require much less incremental space than other store options. Estimating the size of a migration store is only useful in scenarios where the migration store is large. The only case where the local store can be large with hard-link migrations is:
+
+- A non-NTFS file system exists on the system.
+- The non-NTFS files system contains data that needs to be migrated.
+
+Since NTFS is the default file system format for all currently supported versions of Windows, this situation is unusual.
### Migration store path on multiple volumes
-Separate hard-link migration stores are created on each NTFS volume that contain data being migrated. In this scenario, the primary migration-store location will be specified on the command line, and should be the operating-system volume. Migration stores with identical names and directory names will be created on every volume containing data being migrated. For example:
+Separate hard-link migration stores are created on each NTFS volume that contain data being migrated. In this scenario, the primary migration-store location is specified on the command line, and should be the operating-system volume. Migration stores with identical names and directory names are created on every volume containing data being migrated. For example:
- ```cmd
+ ```cmd
ScanState.exe /hardlink c:\USMTMIG […]
```
-Running this command on a system that contains the operating system on the C: drive and the user data on the D: drive will generate migration stores in the following locations, assuming that both drives are NTFS:
+Running this command on a system that contains the operating system on the C: drive and the user data on the D: drive generates migration stores in the following locations, assuming that both drives are NTFS:
`C:\USMTMIG\`
`D:\USMTMIG\`
-The drive you specify on the command line for the hard-link migration store is important, because it defines where the **master migration store** should be placed. The **master migration store** is the location where data migrating from non-NTFS volumes is stored. This volume must have enough space to contain all of the data that comes from non-NTFS volumes. As in other scenarios, if a migration store already exists at the specified path, the `/o` option must be used to overwrite the existing data in the store.
+The drive specified on the command line for the hard-link migration store is important, because it defines where the **master migration store** should be placed. The **master migration store** is the location where data migrating from non-NTFS volumes is stored. This volume must have enough space to contain all of the data that comes from non-NTFS volumes. As in other scenarios, if a migration store already exists at the specified path, the `/o` option must be used to overwrite the existing data in the store.
### Location modifications
-Location modifications that redirect migrated content from one volume to a different volume have an adverse impact on the performance of a hard-link migration. This impact is because the migrating data that must cross system volumes can't remain in the hard-link migration store, and must be copied across the system volumes.
+Location modifications that redirect migrated content from one volume to a different volume have an adverse effect on the performance of a hard-link migration. Performance is affected because the migrating data that must cross system volumes can't remain in the hard-link migration store. They must be copied across the system volumes.
### Migrating Encrypting File System (EFS) certificates and files
To migrate Encrypting File System (EFS) files to a new installation of an operating system on the same volume of the computer, specify the `/efs:hardlink` option in the `ScanState.exe` command-line syntax.
-If the EFS files are being restored to a different partition, you should use the `/efs:copyraw` option instead of the `/efs:hardlink` option. Hard links can only be created for files on the same volume. Moving the files to another partition during the migration requires a copy of the files to be created on the new partition. The `/efs:copyraw` option will copy the files to the new partition in encrypted format.
+If the EFS files are being restored to a different partition, the `/efs:copyraw` option should be used instead of the `/efs:hardlink` option. Hard links can only be created for files on the same volume. Moving the files to another partition during the migration requires a copy of the files to be created on the new partition. The `/efs:copyraw` option copies the files to the new partition in encrypted format.
For more information, see [Migrate EFS files and certificates](usmt-migrate-efs-files-and-certificates.md) and [Encrypted file options](usmt-scanstate-syntax.md#encrypted-file-options).
### Migrating locked files with the hard-link migration store
-Files that are locked by an application or the operating system are handled differently when using a hard-link migration store.
+When an application or the operating system has a lock on a file, the file is handled differently when using a hard-link migration store.
-Files that are locked by the operating system can't remain in place and must be copied into the hard-link migration store. As a result, selecting many operating-system files for migration significantly reduces performance during a hard-link migration. As a best practice, we recommend that you don't migrate any files out of the `\Windows` directory, which minimizes performance-related issues.
+Operating system locked files can't remain in place and must be copied into the hard-link migration store. As a result, selecting many operating-system files for migration significantly reduces performance during a hard-link migration. As a best practice, Microsoft recommends not migrating any files out of the `\Windows` directory, which minimizes performance-related issues.
-Files that are locked by an application are treated the same in hard-link migrations as in other scenarios when the volume shadow-copy service isn't being utilized. The volume shadow-copy service can't be used with hard-link migrations. However, by modifying the new **<HardLinkStoreControl>** section in the `Config.xml` file, it's possible to enable the migration of files locked by an application.
+Application locked files are treated the same in hard-link migrations as in other scenarios when the volume shadow-copy service isn't being utilized. The volume shadow-copy service can't be used with hard-link migrations. However, by modifying the new **\** section in the `Config.xml` file, it's possible to enable the migration of files locked by an application.
> [!IMPORTANT]
-> There are some scenarios in which modifying the **<HardLinkStoreControl>** section in the `Config.xml` file makes it more difficult to delete a hard-link migration store. In these scenarios, you must use `UsmtUtils.exe` to schedule the migration store for deletion on the next restart.
+>
+> There are some scenarios in which modifying the **\** section in the `Config.xml` file makes it more difficult to delete a hard-link migration store. In these scenarios, `UsmtUtils.exe` must be used to schedule the migration store for deletion on the next restart.
## XML elements in the Config.xml file
@@ -132,14 +146,15 @@ A new section in the `Config.xml` file allows optional configuration of some of
| Element | Description |
|--- |--- |
-| **<Policies>** | This element contains elements that describe the policies that USMT follows while creating a migration store. |
-| **<HardLinkStoreControl>** | This element contains elements that describe how to handle files during the creation of a hard link migration store. |
-| **<fileLocked>** | This element contains elements that describe how to handle files that are locked for editing. |
-| **<createHardLink>** | This element defines a standard MigXML pattern that describes file paths where hard links should be created, even if the file is locked for editing by another application.
Syntax: `` [pattern] `` |
-| **<errorHardLink>** | This element defines a standard MigXML pattern that describes file paths where hard links shouldn't be created, if the file is locked for editing by another application.
`` [pattern] `` |
+| **\** | This element contains elements that describe the policies that USMT follows while creating a migration store. |
+| **\** | This element contains elements that describe how to handle files during the creation of a hard link migration store. |
+| **\** | This element contains elements that describe how to handle files that are locked for editing. |
+| **\** | This element defines a standard MigXML pattern that describes file paths where hard links should be created, even if the file is locked for editing by another application.
Syntax: `` [pattern] `` |
+| **\** | This element defines a standard MigXML pattern that describes file paths where hard links shouldn't be created, if the file is locked for editing by another application.
`` [pattern] `` |
> [!IMPORTANT]
-> You must use the `/nocompress` option with the `/HardLink` option.
+>
+> The `/nocompress` option must be used with the `/HardLink` option.
The following XML sample specifies that files locked by an application under the `\Users` directory can remain in place during the migration. It also specifies that locked files that aren't located in the `\Users` directory should result in the **File in Use** error. It's important to exercise caution when specifying the paths using the **``** tag in order to minimize scenarios that make the hard-link migration store more difficult to delete.
@@ -156,4 +171,4 @@ The following XML sample specifies that files locked by an application under the
## Related articles
-[Plan your migration](usmt-plan-your-migration.md)
+- [Plan the migration](usmt-plan-your-migration.md).
diff --git a/windows/deployment/usmt/usmt-how-it-works.md b/windows/deployment/usmt/usmt-how-it-works.md
index 751bdc54ee..762709204e 100644
--- a/windows/deployment/usmt/usmt-how-it-works.md
+++ b/windows/deployment/usmt/usmt-how-it-works.md
@@ -1,5 +1,5 @@
---
-title: How USMT Works (Windows 10)
+title: How USMT Works
description: Learn how USMT works and how it includes two tools that migrate settings and data - ScanState and LoadState.
manager: aaroncz
ms.author: frankroj
@@ -7,69 +7,71 @@ ms.prod: windows-client
author: frankroj
ms.topic: article
ms.technology: itpro-deploy
-ms.date: 11/01/2022
+ms.date: 01/03/2024
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# How USMT works
USMT includes two tools that migrate settings and data: **ScanState** and **LoadState**. **ScanState** collects information from the source computer, and **LoadState** applies that information to the destination computer.
-- [How USMT works](#how-usmt-works)
- - [The ScanState process](#the-scanstate-process)
- - [The LoadState process](#the-loadstate-process)
- - [Related articles](#related-articles)
-
- > [!NOTE]
- > For more information about how USMT processes the rules and the XML files, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
+> [!NOTE]
+>
+> For more information about how USMT processes the rules and the XML files, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
## The ScanState process
-When you run the **ScanState** tool on the source computer, it goes through the following process:
+When the **ScanState** tool runs on the source computer, it goes through the following process:
1. It parses and validates the command-line parameters, creates the `ScanState.log` file, and then begins logging.
-2. It collects information about all of the migration components that need to be migrated. A *migration component* is a logical group of files, registry keys, and values. For example, the set of files, registry keys, and values that store the settings of Adobe Acrobat is grouped into a single migration component.
+1. It collects information about all of the migration components that need to be migrated. A *migration component* is a logical group of files, registry keys, and values. For example, the set of files, registry keys, and values that store the settings of Adobe Acrobat is grouped into a single migration component.
There are three types of components:
- - Components that migrate the operating system settings
+ - Components that migrate the operating system settings.
- - Components that migrate application settings
+ - Components that migrate application settings.
- - Components that migrate users' files
+ - Components that migrate users' files.
- The **ScanState** tool collects information about the application settings and user data components from the .xml files that are specified on the command line.
+ The **ScanState** tool collects information about the application settings and user data components from the **.xml** files that are specified on the command line.
- In Windows 7, and Windows 8, the manifest files control how the operating-system settings are migrated. You can't modify these files. If you want to exclude certain operating-system settings, you must create and modify a `Config.xml` file.
+ In currently supported versions of Windows, the manifest files control how the operating-system settings are migrated. These files can't be modified. To exclude certain operating-system settings, a `Config.xml` file must be created and modified.
-3. **ScanState** determines which user profiles should be migrated. By default, all user profiles on the source computer are migrated. However, you can include and exclude users using the User Options. The public profile in a source computer running Windows 7, Windows 8, and Windows 10 is always migrated, and you can't exclude these profiles from the migration.
+1. **ScanState** determines which user profiles should be migrated. By default, all user profiles on the source computer are migrated. However, users can be included and excluded using the [User options](usmt-scanstate-syntax.md#user-options). The System profile and the Public profile in a source computer running currently supported versions of Windows is always migrated, and these profiles can't be excluded from the migration.
-4. In the **Scanning** phase, **ScanState** does the following for each user profile selected for migration:
+1. In the **Scanning** phase, **ScanState** does the following for each user profile selected for migration:
1. For each component, **ScanState** checks the type of the component. If the current user profile is the system profile and the component type is **System** or **UserAndSystem**, the component is selected for this user. Otherwise, the component is ignored. Alternatively, if the current user profile isn't the system profile and the component type is **User** or **UserAndSystem**, the component is selected for this user. Otherwise, this component is ignored.
> [!NOTE]
- > From this point on, **ScanState** does not distinguish between components that migrate operating-system settings, those that migrate application settings, and those that migrate users' files. **ScanState** processes all components in the same way.
+ >
+ > From this point on, **ScanState** doesn't distinguish between components that migrate operating-system settings, components that migrate application settings, and components that migrate users' files. **ScanState** processes all components in the same way.
- 2. Each component that is selected in the previous step is processed further. Any profile-specific variables (such as **CSIDL_PERSONAL**) are evaluated in the context of the current profile. For example, if the profile that is being processed belongs to **User1**, then **CSIDL_PERSONAL** would expand to `C:\Users\User1\Documents`, assuming that the user profiles are stored in the `C:\Users` directory.
+ 1. Each component that is selected in the previous step is processed further. Any profile-specific variables (such as **CSIDL_PERSONAL**) are evaluated in the context of the current profile. For example, if the profile that is being processed belongs to **User1**, then **CSIDL_PERSONAL** would expand to `C:\Users\User1\Documents`, assuming that the user profiles are stored in the `C:\Users` directory.
- 3. For each selected component, **ScanState** evaluates the **<detects>** section. If the condition in the **<detects>** section evaluates to false, the component isn't processed any further. Otherwise, the processing of this component continues.
+ 1. For each selected component, **ScanState** evaluates the **\** section. If the condition in the **\** section evaluates to false, the component isn't processed any further. Otherwise, the processing of this component continues.
- 4. For each selected component, **ScanState** evaluates the **<rules>** sections. For each **<rules>** section, if the current user profile is the system profile and the context of the **<rules>** section is **System** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored. Alternatively, if the current user profile isn't the system profile and the context of the **<rules>** section is **User** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored.
+ 1. For each selected component, **ScanState** evaluates the **\** sections. For each **\** section, if the current user profile is the system profile and the context of the **\** section is **System** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored. Alternatively, if the current user profile isn't the system profile and the context of the **\** section is **User** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored.
- 5. **ScanState** creates a list of migration units that need to be migrated by processing the various subsections under this **<rules>** section. Each unit is collected if it's mentioned in an **<include>** subsection, as long as there isn't a more specific rule for it in an **<exclude>** subsection in the same **<rules>** section. For more information about precedence in the .xml files, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
+ 1. **ScanState** creates a list of migration units that need to be migrated by processing the various subsections under this **\** section. Each unit is collected if the unit is mentioned in an **\** subsection, as long as there isn't a more specific rule for it in an **\** subsection in the same **\** section. For more information about precedence in the **.xml** files, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
- In addition, any migration unit (such as a file, registry key, or set of registry values) that is in an <UnconditionalExclude> section isn't migrated.
+ In addition, any migration unit (such as a file, registry key, or set of registry values) that is in an \ section isn't migrated.
> [!NOTE]
- > **ScanState** ignores some subsections such as <destinationCleanup> and <locationModify>. These sections are evaluated only on the destination computer.
+ >
+ > **ScanState** ignores some subsections such as \ and \. These sections are evaluated only on the destination computer.
-5. In the **Collecting** phase, **ScanState** creates a master list of the migration units by combining the lists that were created for each selected user profile.
+1. In the **Collecting** phase, **ScanState** creates a central list of the migration units by combining the lists that were created for each selected user profile.
-6. In the **Saving** phase, **ScanState** writes the migration units that were collected to the store location.
+1. In the **Saving** phase, **ScanState** writes the migration units that were collected to the store location.
> [!NOTE]
- > **ScanState** does not modify the source computer in any way.
+ >
+ > **ScanState** doesn't modify the source computer in any way.
## The LoadState process
@@ -77,45 +79,48 @@ The **LoadState** process is similar to the **ScanState** process. The **ScanSta
1. **ScanState** parses and validates the command-line parameters, creates the `ScanState.log` file, and then begins logging.
-2. **LoadState** collects information about the migration components that need to be migrated.
+1. **LoadState** collects information about the migration components that need to be migrated.
- **LoadState** obtains information for the application-settings components and user-data components from the migration .xml files that are specified by the `LoadState.exe` command.
+ **LoadState** obtains information for the application-settings components and user-data components from the migration **.xml** files that are specified by the `LoadState.exe` command.
- In Windows 7, Windows 8, and Windows 10, the manifest files control how the operating-system settings are migrated. You can't modify these files. If you want to exclude certain operating-system settings, you must create and modify a `Config.xml` file.
+ In currently supported versions of Windows, the manifest files control how the operating-system settings are migrated. These files can't be modified. To exclude certain operating-system settings, a `Config.xml` file must be created and modified.
-3. **LoadState** determines which user profiles should be migrated. By default, all user profiles present on the source computer are migrated. However, you can include and exclude users using the **User Options**. The system profile, the Public profile in a source computer running Windows 7, Windows 8, and Windows 10 is always migrated and you can't exclude these profiles from the migration.
+1. **LoadState** determines which user profiles should be migrated. By default, all user profiles present on the source computer are migrated. However, users can be included and excluded using the [User options](usmt-loadstate-syntax.md#user-options). The System profile and the Public profile in a source computer running currently supported versions of Windows is always migrated and these profiles can't be excluded from the migration.
- - If you're migrating local user accounts and if the accounts don't already exist on the destination computer, you must use the `/lac` command-line option. If you don't specify the `/lac` option, any local user accounts that aren't already present on the destination computer, aren't migrated.
+ - If local user accounts are being migrated and if the accounts don't already exist on the destination computer, the `/lac` command-line option must be used. If the `/lac` option isn't specified, any local user accounts that aren't already present on the destination computer, aren't migrated.
- - The `/md` and `/mu` options are processed to rename the user profile on the destination computer, if they've been included when the `LoadState.exe` command was specified.
+ - When specified with the `LoadState.exe` command, the `/md` and `/mu` options are processed to rename the user profile on the destination computer.
- For each user profile selected from the store, **LoadState** creates a corresponding user profile on the destination computer. The destination computer doesn't need to be connected to the domain for domain user profiles to be created. If USMT can't determine a domain, it attempts to apply the settings to a local account. For more information, see [Identify Users](usmt-identify-users.md).
-4. In the **Scanning** phase, **LoadState** does the following for each user profile:
+1. In the **Scanning** phase, **LoadState** does the following for each user profile:
1. For each component, **LoadState** checks the type of the component. If the current user profile is the system profile and the component type is **System** or **UserAndSystem**, the component is selected for this user. Otherwise, the component is ignored. Alternatively, if the current user profile isn't the system profile and the component type is **User** or **UserAndSystem**, the component is selected for this user. Otherwise, this component is ignored.
> [!NOTE]
- > From this point on, **LoadState** does not distinguish between components that migrate operating-system settings, those that migrate application settings, and those that migrate users' files. **LoadState** evaluates all components in the same way.
+ >
+ > From this point on, **LoadState** doesn't distinguish between components that migrate operating-system settings, components that migrate application settings, and components that migrate users' files. **LoadState** evaluates all components in the same way.
- 2. Each component that is selected is processed further. Any profile-specific variables (such as **CSIDL_PERSONAL**) are evaluated in the context of the current profile. For example, if the profile being processed belongs to **User1**, then **CSIDL_PERSONAL** would expand to `C:\Users\User1\Documents` (assuming that the user profiles are stored in the `C:\Users` directory).
+ 1. Each component that is selected is processed further. Any profile-specific variables (such as **CSIDL_PERSONAL**) are evaluated in the context of the current profile. For example, if the profile being processed belongs to **User1**, then **CSIDL_PERSONAL** would expand to `C:\Users\User1\Documents` (assuming that the user profiles are stored in the `C:\Users` directory).
> [!NOTE]
- > **LoadState** ignores the **<detects>** section specified in a component. At this point, all specified components are considered to be detected and are selected for migration.
+ >
+ > **LoadState** ignores the **\** section specified in a component. At this point, all specified components are considered to be detected and are selected for migration.
- 3. For each selected component, **LoadState** evaluates the **<rules>** sections. For each **<rules>** section, if the current user profile is the system profile and the context of the **<rules>** section is **System** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored. Alternatively, if the current user profile isn't the system profile and the context of the **<rules>** section is **User** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored.
+ 1. For each selected component, **LoadState** evaluates the **\** sections. For each **\** section, if the current user profile is the system profile and the context of the **\** section is **System** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored. Alternatively, if the current user profile isn't the system profile and the context of the **\** section is **User** or **UserAndSystem**, the rule is processed further. Otherwise, this rule is ignored.
- 4. **LoadState** creates a master list of migration units by processing the various subsections under the **<rules>** section. Each migration unit that is in an **<include>** subsection is migrated as long, as there isn't a more specific rule for it in an **<exclude>** subsection in the same **<rules>** section. For more information about precedence, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
+ 1. **LoadState** creates a central list of migration units by processing the various subsections under the **\** section. Each migration unit that is in an **\** subsection is migrated as long, as there isn't a more specific rule for it in an **\** subsection in the same **\** section. For more information about precedence, see [Conflicts and precedence](usmt-conflicts-and-precedence.md).
- 5. **LoadState** evaluates the destination computer-specific subsections, for example, the **<destinationCleanup>** and **<locationModify>** subsections.
+ 1. **LoadState** evaluates the destination computer-specific subsections, for example, the **\** and **\** subsections.
- 6. If the destination computer is running Windows 7, Windows 8, or Windows 10, then the migunits that were collected by **ScanState** using downlevel manifest files are processed by **LoadState** using the corresponding Component Manifest for Windows 7. The downlevel manifest files aren't used during **LoadState**.
+ 1. If the destination computer is running a currently supported version of Windows, then the migunits that were collected by **ScanState** using downlevel manifest files are processed by **LoadState** using the corresponding Component Manifest from the downlevel Windows version. The downlevel manifest files aren't used during **LoadState**.
> [!IMPORTANT]
- > It is important to specify the .xml files with the `LoadState.exe` command if you want **LoadState** to use them. Otherwise, any destination-specific rules, such as **<locationModify>**, in these .xml files are ignored, even if the same .xml files were provided when the `ScanState.exe` command ran.
+ >
+ > For **LoadState** to use the **.xml** files, it's important to specify them with the `LoadState.exe` command. Otherwise, any destination-specific rules, such as **\**, in these **.xml** files are ignored, even if the same **.xml** files were provided when the `ScanState.exe` command ran.
-5. In the **Apply** phase, **LoadState** writes the migration units that were collected to the various locations on the destination computer. If there are conflicts and there isn't a **<merge>** rule for the object, the default behavior for the registry is for the source to overwrite the destination. The default behavior for files is for the source to be renamed incrementally, for example, OriginalFileName(1).OriginalExtension. Some settings, such as fonts, wallpaper, and screen-saver settings, don't take effect until the next time the user logs on. For this reason, you should sign out when the `LoadState.exe` command actions have completed.
+1. In the **Apply** phase, **LoadState** writes the migration units that were collected to the various locations on the destination computer. If there are conflicts and there isn't a **\** rule for the object, the default behavior for the registry is for the source to overwrite the destination. The default behavior for files is for the source to be renamed incrementally, for example, OriginalFileName(1).OriginalExtension. Some settings, such as fonts, wallpaper, and screen-saver settings, don't take effect until the next time the user logs on. For this reason, sign out when the `LoadState.exe` command actions are finished.
## Related articles
-[User State Migration Tool (USMT) command-line syntax](usmt-command-line-syntax.md)
+- [User State Migration Tool (USMT) command-line syntax](usmt-command-line-syntax.md).
diff --git a/windows/deployment/usmt/usmt-how-to.md b/windows/deployment/usmt/usmt-how-to.md
index 0b38e19dbe..c955bcb324 100644
--- a/windows/deployment/usmt/usmt-how-to.md
+++ b/windows/deployment/usmt/usmt-how-to.md
@@ -1,34 +1,37 @@
---
-title: User State Migration Tool (USMT) How-to articles (Windows 10)
-description: Reference the articles in this article to learn how to use User State Migration Tool (USMT) 10.0 to perform specific tasks.
+title: User State Migration Tool (USMT) How-to articles
+description: Reference the articles in this article to learn how to use User State Migration Tool (USMT) to perform specific tasks.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# User State Migration Tool (USMT) how-to articles
-The following table lists articles that describe how to use User State Migration Tool (USMT) 10.0 to perform specific tasks.
+The following table lists articles that describe how to use User State Migration Tool (USMT) to perform specific tasks.
## In this section
| Link | Description |
|------ |----------- |
-|[Exclude files and settings](usmt-exclude-files-and-settings.md)|Create a custom .xml file to exclude files, file types, folders, or registry settings from your migration.|
+|[Exclude files and settings](usmt-exclude-files-and-settings.md)|Create a custom **.xml** file to exclude files, file types, folders, or registry settings from the migration.|
|[Extract files from a compressed USMT migration store](usmt-extract-files-from-a-compressed-migration-store.md)|Recover files from a compressed migration store after installing the operating system.|
-|[Include files and settings](usmt-include-files-and-settings.md)|Create a custom .xml file to include files, file types, folders, or registry settings in your migration.|
-|[Migrate application settings](migrate-application-settings.md)|Migrate the settings of an application that the MigApp.xml file doesn't include by default.|
+|[Include files and settings](usmt-include-files-and-settings.md)|Create a custom **.xml** file to include files, file types, folders, or registry settings in the migration.|
+|[Migrate application settings](migrate-application-settings.md)|Migrate the settings of an application that the `MigApp.xml` file doesn't include by default.|
|[Migrate EFS files and certificates](usmt-migrate-efs-files-and-certificates.md)|Migrate Encrypting File System (EFS) certificates by using USMT.|
-|[Migrate user accounts](usmt-migrate-user-accounts.md)|Specify the users to include and exclude in your migration.|
-|[Reroute files and settings](usmt-reroute-files-and-settings.md)|Create a custom .xml file to reroute files and settings during a migration.|
+|[Migrate user accounts](usmt-migrate-user-accounts.md)|Specify the users to include and exclude in the migration.|
+|[Reroute files and settings](usmt-reroute-files-and-settings.md)|Create a custom **.xml** file to reroute files and settings during a migration.|
|[Verify the condition of a compressed migration store](verify-the-condition-of-a-compressed-migration-store.md)|Determine whether a compressed migration store is intact, or whether it contains corrupt files or a corrupt catalog.|
## Related articles
-- [User State Migration Tool (USMT) overview topics](usmt-topics.md)
-- [User State Migration Tool (USMT) troubleshooting](usmt-troubleshooting.md)
-- [User State Migration Toolkit (USMT) reference](usmt-reference.md)
+- [User State Migration Tool (USMT) overview topics](usmt-topics.md).
+- [User State Migration Tool (USMT) troubleshooting](usmt-troubleshooting.md).
+- [User State Migration Toolkit (USMT) reference](usmt-reference.md).
diff --git a/windows/deployment/usmt/usmt-identify-application-settings.md b/windows/deployment/usmt/usmt-identify-application-settings.md
index 101e8b5666..d76eb75973 100644
--- a/windows/deployment/usmt/usmt-identify-application-settings.md
+++ b/windows/deployment/usmt/usmt-identify-application-settings.md
@@ -1,30 +1,33 @@
---
-title: Identify Applications Settings (Windows 10)
-description: Identify which applications and settings you want to migrate before using the User State Migration Tool (USMT).
+title: Identify Applications Settings
+description: Identify which applications and settings need to be migrated before using the User State Migration Tool (USMT).
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Identify applications settings
-When planning for your migration, you should identify which applications and settings you want to migrate. For more information about how to create a custom .xml file to migrate the settings of another application, see [Customize USMT XML files](usmt-customize-xml-files.md).
+Which applications and settings need to be migrated should be identified when planning a migration. For more information about how to create a custom **.xml** file to migrate the settings of another application, see [Customize USMT XML files](usmt-customize-xml-files.md).
## Applications
-First, create and prioritize a list of applications that need to be migrated. It may be helpful to review the application lists and decide which applications will be redeployed and which applications will be retired. Often, what applications are migrated are prioritized based on a combination of how widely the application is used and how complex the application is.
+First, create and prioritize a list of applications that need to be migrated. It might be helpful to review the application lists and decide which applications need to be redeployed and which applications need to be retired. Often, how the application is used and how complex the application is determines the priority of what applications are migrated.
-Next, identify an application owner to be in charge of each application. Application ownership identification is necessary because the developers won't be experts on all of the applications in the organization. The application owner should have the most experience with an application. The application owner provides insight into how the organization installs, configures, and uses the application.
+Next, identify an application owner to be in charge of each application. Application ownership identification is necessary because the developers aren't be experts on all of the applications in the organization. The application owner should have the most experience with an application. The application owner provides insight into how the organization installs, configures, and uses the application.
## Application settings
-Next, determine and locate the application settings to be migrated. You can acquire much of the information that you need for this step when you're testing the new applications for compatibility with the new operating system.
+Next, determine and locate the application settings to be migrated. Much of the information that is needed for this step can be acquired when testing the new applications for compatibility with the new operating system.
-After completing the list of applications to be migrated, review the list, and work with each application owner on a list of settings to be migrated. For each setting, determine whether it needs to be migrated or if the default settings are adequate. Then, determine where the setting is located, for example, in the registry or in an .ini file. Next, consider the following questions to determine what needs to be done to migrate the setting successfully:
+After completing the list of applications to be migrated, review the list, and work with each application owner on a list of settings to be migrated. For each setting, determine whether it needs to be migrated or if the default settings are adequate. Then, determine where the setting is located, for example, in the registry or in an **.ini** file. Next, consider the following questions to determine what needs to be done to migrate the setting successfully:
- Is the destination version of the application newer than the source version?
@@ -32,9 +35,9 @@ After completing the list of applications to be migrated, review the list, and w
- Do the settings need to be moved or altered?
-- Can the first-run process force the application to appear as if it had run already? If so, does this work correctly, or does it break the application?
+- Can the first-run process force the application to appear as if it ran already? If so, does this work correctly, or does it break the application?
-After answering these questions, create a custom .xml file to migrate settings. Work with the application owner to develop test cases and to determine the file types that need to be migrated for the application.
+After answering these questions, create a custom **.xml** file to migrate settings. Work with the application owner to develop test cases and to determine the file types that need to be migrated for the application.
## Locating where settings are stored
@@ -42,4 +45,4 @@ See [Migrate application settings](migrate-application-settings.md) and follow t
## Related articles
-[Determine what to migrate](usmt-determine-what-to-migrate.md)
+- [Determine what to migrate](usmt-determine-what-to-migrate.md).
diff --git a/windows/deployment/usmt/usmt-identify-file-types-files-and-folders.md b/windows/deployment/usmt/usmt-identify-file-types-files-and-folders.md
index 049a88b921..3f31587cc7 100644
--- a/windows/deployment/usmt/usmt-identify-file-types-files-and-folders.md
+++ b/windows/deployment/usmt/usmt-identify-file-types-files-and-folders.md
@@ -1,40 +1,44 @@
---
-title: Identify File Types, Files, and Folders (Windows 10)
-description: Learn how to identify the file types, files, folders, and settings that you want to migrate when you're planning your migration.
+title: Identify File Types, Files, and Folders
+description: Identify the file types, files, folders, and settings that need to be migrated when planning the migration.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Identify file types, files, and folders
-When planning for your migration, if not using MigDocs.xml, you should identify the file types, files, folders, and settings that you want to migrate. First, you should determine the standard file locations on each computer, such as **My Documents** , `C:\Data` , and company-specified locations, such as `\\EngineeringDrafts`. Next, you should determine and locate the non-standard locations. For non-standard locations, consider the following items:
+When a migration is planned and `MigDocs.xml` isn't being used, the file types, files, folders, and settings that need to be migrated should be identified. First, the standard file locations on each computer, such as the **Documents** folder, `C:\Data` , and organization-specified locations, such as `\\EngineeringDrafts`, should be determined. Next, non-standard locations should be determined and located. For non-standard locations, consider the following items:
-- **File types**. Consider which file types need to be included and excluded from the migration. You can create this list based on common applications used in your organization. Applications normally use specific file name extensions. For example, Microsoft Office Word primarily uses `.doc`, `.docx` and `.dotx` file name extension. However, it also uses other file types, such as templates (`.dot` files), on a less frequent basis.
+- **File types**: Consider which file types need to be included and excluded from the migration. This list can be created based on common applications used in the organization. Applications normally use specific file name extensions. For example, Microsoft Office Word primarily uses `.doc`, `.docx` and `.dotx` file name extension. However, it also uses other file types, such as templates (`.dot` files), on a less frequent basis.
-- **Excluded locations**. Consider the locations on the computer that should be excluded from the migration (for example, `%WINDIR%` and **Program Files**).
+- **Excluded locations**: Consider the locations on the computer that should be excluded from the migration (for example, `%WINDIR%` and **Program Files**).
-- **New locations**. Decide where files should be migrated to on the destination computer, such as **My Documents**, a designated folder, or a folder matching the files' name and location on the source computer. For example, you might have shared data on source machine or you might wish to clean up documents outside the user profiles on the source system. Identify any data that needs to be redirected to a new location in the apply phase. Redirection can be accomplished with location modify rules.
+- **New locations**: Decide where files should be migrated to on the destination computer, such as the **Documents** folder, a designated folder, or a folder matching the files' name and location on the source computer. For example, shared data might exist on the source machine or documents outside the user profiles on the source system might need to be cleaned up. Identify any data that needs to be redirected to a new location in the Apply phase. Redirection can be accomplished with location modify rules.
-Once you've verified which files and file types that the end users work with regularly, you'll need to locate them. Files may be saved to a single folder or scattered across a drive. A good starting point for finding files types to include is to look at the registered file types on the computer.
+Once which files and file types that the end users work with regularly is verified, locate the files and file types. Files might be saved to a single folder or scattered across a drive. A good starting point for finding files types to include is to look at the registered file types on the computer.
-To find the registered file types on a computer running Windows 7, Windows 8, Windows 10, or Windows 11:
+To find the registered file types on a computer running a currently supported version of Windows:
-1. Open **Control Panel**
-2. Make sure **View by:** is set to **Category** and then select **Programs**.
+1. Right-click the **Start Menu** and select **Settings**.
-3. Select **Default Programs**
+1. When the **Settings** window opens, select **Apps**.
-4. select **Associate a file type or protocol with a program**.
+1. Select **Default apps**.
-5. On this screen, the registered file types are displayed.
+1. Scroll down and then select **Choose defaults by file type** or **Choose default apps by file type**.
-For more information about how to change the file types, files, and folders that are migrated when you specify the MigUser.xml file, see [User State Migration Tool (USMT) how-to topics](usmt-how-to.md).
+1. In the window that opens, the registered file types are displayed.
+
+For more information about how to change the file types, files, and folders that are migrated when the `MigUser.xml` file is specified, see [User State Migration Tool (USMT) how-to articles](usmt-how-to.md).
## Related articles
-[Determine what to migrate](usmt-determine-what-to-migrate.md)
+- [Determine what to migrate](usmt-determine-what-to-migrate.md).
diff --git a/windows/deployment/usmt/usmt-identify-operating-system-settings.md b/windows/deployment/usmt/usmt-identify-operating-system-settings.md
index 6781531b60..4810e4528f 100644
--- a/windows/deployment/usmt/usmt-identify-operating-system-settings.md
+++ b/windows/deployment/usmt/usmt-identify-operating-system-settings.md
@@ -1,44 +1,64 @@
---
-title: Identify Operating System Settings (Windows 10)
-description: Identify which system settings you want to migrate, then use the User State Migration Tool (USMT) to select settings and keep the default values for all others.
+title: Identify Operating System Settings
+description: Identify which system settings need to be migrated. The User State Migration Tool (USMT) can then be used to select settings and keep the default values for all others.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Identify operating system settings
-When planning for your migration, you should identify which operating system settings you want to migrate and to what extent you want to create a new standard environment on each of the computers. User State Migration Tool (USMT) 10.0 enables you to migrate select settings and keep the default values for all others. The operating system settings include the following parameters:
+When the migration is being planned, which operating system settings need to be migrated should be identified. Additionally, to what extent a new standard environment should be created on each of the computers should also be identified. User State Migration Tool (USMT) enables migrating select settings and keep the default values for all others. The operating system settings include the following parameters:
- **Appearance**
- The appearance factor includes items such as wallpaper, colors, sounds, and the location of the taskbar.
+ The appearance factor includes items such as wallpaper, colors, sounds, and the location of the taskbar.
- **Action**
- The action factor includes items such as the key-repeat rate, whether double-clicking a folder opens it in a new window or the same window, and whether you need to single-click or double-click an item to open it.
+ The action factor includes items such as:
+
+ - The key-repeat rate.
+ - Whether double-clicking a folder opens it in a new window or the same window.
+ - Whether single-clicking or double-clicking an item opens it.
- **Internet**
- The Internet factor includes the settings that let you connect to the Internet and control how your browser operates. The settings include items such as your home page URL, favorites, bookmarks, cookies, security settings, dial-up connections, and proxy settings.
+ The Internet factor includes the settings needed to connect to the Internet and controls how the browser operates. The settings include items such as the home page URL, favorites, bookmarks, cookies, security settings, and proxy settings. These settings might not be supported in all browsers.
- **Mail**
- The mail factor includes the information that you need to connect to your mail server, your signature file, views, mail rules, local mail, and contacts.
+ The mail factor includes the information needed to connect the mail server, the signature file, views, mail rules, local mail, and contacts. These settings might not be supported in all email applications.
-To help you decide which settings to migrate, you should consider any previous migration experiences and the results of any surveys and tests that you've conducted. You should also consider the number of help-desk calls related to operating-system settings that you've had in the past, and are able to handle in the future. Also decide how much of the new operating-system functionality you want to take advantage of.
+To help determine which settings to migrate, consider any previous migration experiences and the results of any conducted surveys and tests. Also consider the number of help-desk calls related to operating-system settings from the past, and are able to handle in the future. Also decide how much of the new operating-system functionality needs to be taken advantage of.
-You should migrate any settings that users need to get their jobs done, those settings that make the work environment comfortable, and those settings that will reduce help-desk calls after the migration. Although it's easy to dismiss migrating user preferences, you should consider the factor of users spending a significant amount of time restoring items such as wallpaper, screen savers, and other customizable user-interface features. Most users don't remember how these settings were applied. Although these items aren't critical to migration success, migrating these items increases user productivity and overall satisfaction of the migration process.
+Settings that should be migrated include:
+
+- Settings that allow users need to get their jobs done.
+- Settings that make the work environment comfortable.
+- Settings that will reduce help-desk calls after the migration.
+
+Although it's easy to dismiss migrating user preferences, the factor should be considered of users spending time restoring items such as:
+
+- Wallpaper.
+- Screen savers.
+- Other customizable user-interface features.
+
+Most users don't remember how these settings were applied. Although these items aren't critical to migration success, migrating these items increases user productivity and overall satisfaction of the migration process.
> [!NOTE]
-> For more information about how to change the operating-system settings that are migrated, see [User State Migration Tool (USMT) how-to topics](usmt-how-to.md).
+>
+> For more information about how to change the operating-system settings that are migrated, see [User State Migration Tool (USMT) how-to articles](usmt-how-to.md).
For information about the operating-system settings that USMT migrates, see [What does USMT migrate?](usmt-what-does-usmt-migrate.md)
## Related articles
-[Determine What to Migrate](usmt-determine-what-to-migrate.md)
+- [Determine What to Migrate](usmt-determine-what-to-migrate.md).
diff --git a/windows/deployment/usmt/usmt-identify-users.md b/windows/deployment/usmt/usmt-identify-users.md
index 40a4f58cb6..32f38a7d39 100644
--- a/windows/deployment/usmt/usmt-identify-users.md
+++ b/windows/deployment/usmt/usmt-identify-users.md
@@ -1,6 +1,6 @@
---
-title: Identify Users (Windows 10)
-description: Learn how to identify users you plan to migrate, and how to migrate local accounts and domain accounts.
+title: Identify Users
+description: Learn how to identify users that need to be migrated, and how to migrate local accounts and domain accounts.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
@@ -8,25 +8,29 @@ author: frankroj
ms.topic: article
ms.localizationpriority: medium
ms.technology: itpro-deploy
-ms.date: 11/01/2022
+ms.date: 01/03/2024
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Identify users
-It's important to carefully consider how you plan to migrate users. By default, all users are migrated by User State Migration Tool (USMT) 5.0. You must specify which users to include by using the command line. You can't specify users in the .xml files. For instructions on how to migrate users, see [Migrate user accounts](usmt-migrate-user-accounts.md).
+It's important to carefully consider and plan how users are migrated. By default, User State Migration Tool (USMT) migrates all users. Which users to include must be specified by using the command line. Users can't be specified in the **.xml** files. For instructions on how to migrate users, see [Migrate user accounts](usmt-migrate-user-accounts.md).
## Migrating local accounts
Before migrating local accounts, be aware of the following items:
-- **You must explicitly specify that local accounts that are not on the destination computer should be migrated**. If you're migrating local accounts and the local account doesn't exist on the destination computer, you must use the `/lac` option when using the `LoadState.exe` command. If the `/lac` option isn't specified, no local user accounts will be migrated.
+- **Local accounts that aren't on the destination computer must be explicitly specified if they should be migrated.** If migrating local accounts and the local account doesn't exist on the destination computer, the `/lac` option must be specified when using the `LoadState.exe` command. If the `/lac` option isn't specified, no local user accounts are migrated.
-- **Consider whether to enable user accounts that are new to the destination computer.** The `/lae` option enables the account that was created with the `/lac` option. However, if you create a disabled local account by using only the `/lac` option, a local administrator must enable the account on the destination computer.
+- **Consider whether to enable user accounts that are new to the destination computer.** The `/lae` option enables the account that was created with the `/lac` option. However, if a disabled local account is created by using only the `/lac` option, a local administrator must enable the account on the destination computer.
-- **Be careful when specifying a password for local accounts.** If you create the local account with a blank password, anyone could sign in that account on the destination computer. If you create the local account with a password, the password is available to anyone with access to the USMT command-line tools.
+- **Be careful when specifying a password for local accounts.** If the local account is created with a blank password, anyone could sign in that account on the destination computer. If the local account is created with a password, the password is available to anyone with access to the USMT command-line tools.
> [!NOTE]
-> If there are multiple users on a computer, and you specify a password with the `/lac` option, all migrated users will have the same password.
+>
+> If there are multiple users on a computer, and a password is specified with the `/lac` option, all migrated users have the same password.
## Migrating domain accounts
@@ -36,22 +40,24 @@ The source and destination computers don't need to be connected to the domain fo
USMT provides several options to migrate multiple users on a single computer. The following command-line options specify which users to migrate.
-- **Specifying users.** You can specify which users to migrate with the `/all`, `/ui`, `/uel`, and `/ue` options with both the **ScanState** and **LoadState** command-line tools.
+- **Specifying users.** Which users to migrate can be specified with the `/all`, `/ui`, `/uel`, and `/ue` options with both the **ScanState** and **LoadState** command-line tools.
> [!IMPORTANT]
- > The `/uel` option excludes users based on the **LastModified** date of the `Ntuser.dat` file. The `/uel` option is not valid in offline migrations.
+ >
+ > The `/uel` option excludes users based on the **LastModified** date of the `Ntuser.dat` file. The `/uel` option isn't valid in offline migrations.
-- **Moving users to another domain.** You can move user accounts to another domain using the `/md` option with the **LoadState** command-line tool.
+- **Moving users to another domain.** User accounts can be moved to another domain using the `/md` option with the **LoadState** command-line tool.
-- **Creating local accounts.** You can create and enable local accounts using the `/lac` and `/lae` options with the **LoadState** command-line tool.
+- **Creating local accounts.** Local accounts can be created and enabled using the `/lac` and `/lae` options with the **LoadState** command-line tool.
-- **Renaming user accounts.** You can rename user accounts using the `/mu` option.
+- **Renaming user accounts.** User accounts can be renamed using the `/mu` option.
> [!NOTE]
- >By default, if a user name is not specified in any of the command-line options, the user will be migrated.
+ >
+ > By default, if a user name isn't specified in any of the command-line options, the user is migrated.
## Related articles
-- [Determine what to migrate](usmt-determine-what-to-migrate.md)
-- [ScanState syntax](usmt-scanstate-syntax.md)
-- [LoadState syntax](usmt-loadstate-syntax.md)
+- [Determine what to migrate](usmt-determine-what-to-migrate.md).
+- [ScanState syntax](usmt-scanstate-syntax.md).
+- [LoadState syntax](usmt-loadstate-syntax.md).
diff --git a/windows/deployment/usmt/usmt-include-files-and-settings.md b/windows/deployment/usmt/usmt-include-files-and-settings.md
index 8e5821354c..aa295527cb 100644
--- a/windows/deployment/usmt/usmt-include-files-and-settings.md
+++ b/windows/deployment/usmt/usmt-include-files-and-settings.md
@@ -1,22 +1,25 @@
---
-title: Include Files and Settings (Windows 10)
-description: Specify the migration .xml files you want, then use the User State Migration Tool (USMT) 10.0 to migrate the settings and components specified.
+title: Include Files and Settings
+description: Specify the migration .xml files that are needed, then use the User State Migration Tool (USMT) to migrate the settings and components specified.
manager: aaroncz
ms.author: frankroj
ms.prod: windows-client
author: frankroj
-ms.date: 11/01/2022
+ms.date: 01/03/2024
ms.topic: article
ms.technology: itpro-deploy
+appliesto:
+ - ✅ Windows 11
+ - ✅ Windows 10
---
# Include Files and Settings
-When you specify the migration .xml files, User State Migration Tool (USMT) 10.0 migrates the settings and components specified in [What does USMT migrate?](usmt-what-does-usmt-migrate.md). To include additional files and settings, we recommend that you create a custom .xml file, and then include this file when using both the `ScanState.exe` and `LoadState.exe` commands. By creating a custom .xml file, you can keep your changes separate from the default .xml files, which makes it easier to track your modifications.
+When the migration **.xml** files are specified, User State Migration Tool (USMT) migrates the settings and components specified in [What does USMT migrate?](usmt-what-does-usmt-migrate.md). To include additional files and settings, Microsoft recommends creating a custom **.xml** file, and then include this file when using both the `ScanState.exe` and `LoadState.exe` commands. Creating a custom **.xml** file allows changes to be kept separate from the default **.xml** files. Creating a custom **.xml** file makes it easier to track modifications.
## Migrate a single registry key
-The following .xml file migrates a single registry key.
+The following **.xml** file migrates a single registry key.
```xml
@@ -41,7 +44,7 @@ The following examples show how to migrate a folder from a specific drive, and f
### Migrate a folder from a specific drive
-- **Including subfolders.** The following .xml file migrates all files and subfolders from `C:\EngineeringDrafts` to the destination computer.
+- **Including subfolders.** The following **.xml** file migrates all files and subfolders from `C:\EngineeringDrafts` to the destination computer.
```xml
@@ -60,7 +63,7 @@ The following examples show how to migrate a folder from a specific drive, and f
```
-- **Excluding subfolders.** The following .xml file migrates all files from `C:\EngineeringDrafts`, but it doesn't migrate any subfolders within `C:\EngineeringDrafts`.
+- **Excluding subfolders.** The following **.xml** file migrates all files from `C:\EngineeringDrafts`, but it doesn't migrate any subfolders within `C:\EngineeringDrafts`.
```xml
@@ -81,7 +84,7 @@ The following examples show how to migrate a folder from a specific drive, and f
### Migrate a folder from any location
-The following .xml file migrates all files and subfolders of the `EngineeringDrafts` folder from any drive on the computer. If multiple folders exist with the same name, then all files with this name are migrated.
+The following **.xml** file migrates all files and subfolders of the `EngineeringDrafts` folder from any drive on the computer. If multiple folders exist with the same name, then all files with this name are migrated.
```xml
@@ -101,7 +104,7 @@ The following .xml file migrates all files and subfolders of the `EngineeringDra
```
-The following .xml file migrates all files and subfolders of the `EngineeringDrafts` folder from any location on the `C:\` drive. If multiple folders exist with the same name, they're all migrated.
+The following **.xml** file migrates all files and subfolders of the `EngineeringDrafts` folder from any location on the `C:\` drive. If multiple folders exist with the same name, they're all migrated.
```xml
@@ -123,12 +126,12 @@ The following .xml file migrates all files and subfolders of the `EngineeringDra
## Migrate a file type into a specific folder
-The following .xml file migrates `.mp3` files located in the specified drives on the source computer into the `C:\Music` folder on the destination computer.
+The following **.xml** file migrates `.mp3` files located in the specified drives on the source computer into the `C:\Music` folder on the destination computer.
```xml
- All .mp3 files to My Documents
+ All .mp3 files to the Documents folder
@@ -152,7 +155,7 @@ The following .xml file migrates `.mp3` files located in the specified drives on
The following examples show how to migrate a file from a specific folder, and how to migrate a file from any location.
-- **To migrate a file from a folder.** The following .xml file migrates only the `Sample.doc` file from `C:\EngineeringDrafts` on the source computer to the destination computer.
+- **To migrate a file from a folder.** The following **.xml** file migrates only the `Sample.doc` file from `C:\EngineeringDrafts` on the source computer to the destination computer.
```xml