Файлы журнала USMT
Журналы средства миграции пользовательской среды (USMT) можно использовать для мониторинга миграции и устранения ошибок и неудачных миграций. В этой статье описываются доступные параметры командной строки для включения журналов USMT. В ней также описываются новые XML-элементы, которые можно использовать для настройки:
- Какие типы ошибок являются неустранимыми и должны остановить миграцию.
- Какие типы не являются неустранимыми и должны быть пропущены, чтобы продолжить миграцию.
Параметры командной строки журнала
В следующей таблице описаны все параметры командной строки, связанные с журналами, а также имя журнала и описание типа информации, содержащейся в каждом журнале.
Параметр командной строки | Имя файла | Описание |
---|---|---|
/l"[путь]Имя_файла |
ScanState.exe.log или LoadState.log |
Указывает путь и имя файла журнала ScanState или LoadState . |
/progress:[Path]Имя_файла | Указывает путь и имя файла журнала хода выполнения. | Предоставляет сведения о состоянии миграции по проценту завершения. |
/v:[VerbosityLevel] | Неприменимо | См . раздел Параметры мониторинга в синтаксисе ScanState. |
/listfiles:[путь]Имя_файла | Указывает путь и имя файла журнала Listfiles. | Предоставляет список перенесенных файлов. |
Задайте для переменной среды MIG_ENABLE_DIAG путь к XML-файлу. | USMTDiag.xml |
Журнал диагностики содержит подробные сведения о системной среде, сведения о пользовательской среде, а также сведения о собираемых единицах миграции (migunits) и их содержимом. |
Примечание.
Файлы журнала не могут храниться в StorePath. Если файлы журнала хранятся в StorePath, файлы журнала перезаписываются при запуске USMT.
Журналы ScanState и LoadState
Журналы ScanState и LoadState — это текстовые файлы, которые создаются при запуске средств ScanState и LoadState. Эти журналы можно использовать для мониторинга миграции. Содержимое журнала зависит от используемых параметров командной строки и заданного уровня детализации. Дополнительные сведения об уровнях детализации см. в разделе Параметры мониторинга в синтаксисе ScanState.
Журнал выполнения
Журнал выполнения можно создать с помощью /progress
параметра . Внешние средства, такие как Microsoft System Center Operations Manager, могут анализировать журнал выполнения для обновления систем мониторинга. Первые три поля в каждой строке фиксируются следующим образом:
Дата: Date в формате dayshortNameOfTheMonthyear. Например: 08 июня 2023 г.
Местное время: Время в формате hrs:minutes:seconds (с использованием 24-часовых часов). Например: 13:49:13.
Время миграции: Продолжительность выполнения USMT в формате hrs:minutes:seconds. Например: 00:00:20.
Остальные поля являются парами "ключ-значение", как показано в следующей таблице.
Раздел | Значение |
---|---|
программа |
ScanState.exe или LoadState.exe . |
productVersion | Полный номер версии продукта USMT. |
computerName | Имя исходного или целевого компьютера, на котором был запущен USMT. |
commandLine | Полная команда, используемая для запуска USMT. |
ФАЗА | Сообщает о начале нового этапа миграции. Этот ключ может быть одним из следующих значений:
|
detectedUser |
|
includedInMigration | Определяет, включен ли профиль пользователя или компонент для миграции. Допустимые значения: Да или Нет. |
forUser | Задает одно из следующих значений:
|
detectedComponent | Указывает компонент, обнаруженный с помощью USMT.
|
totalSizeInMBToTransfer | Общий размер файлов и параметров для миграции в мегабайтах (МБ). |
totalPercentageCompleted | Общий процент миграции, завершенной с помощью ScanState или LoadState. |
collectingUser | Указывает, для какого пользователя ScanState собирает файлы и параметры. |
totalMinutesRemaining | Оценка времени (в минутах) для завершения миграции. |
ошибка | Тип неустранимой ошибки. Этот ключ может быть одним из следующих значений:
|
objectName | Имя файла или параметра, вызвавшего неустранимую ошибку. |
действие | Действие, выполняемое USMT для неустранимой ошибки. Ниже приведены следующие значения:
|
errorCode | Значение errorCode или возвращаемое значение. |
numberOfIgnoredErrors | Общее количество неустранимых ошибок, пропущенных USMT. |
Сообщение* | Сообщение, соответствующее errorCode. |
Журнал файлов списка
Журнал списка файлов (Listfiles.txt
) содержит список перенесенных файлов. Этот список можно использовать для устранения проблем с XML или сохранить в виде записи файлов, собранных в хранилище миграции. Журнал файлов списка доступен только для ScanState.exe
.
Журнал диагностики
Журнал диагностики можно получить, задав переменную среды MIG_ENABLE_DIAG пути к XML-файлу.
Журнал диагностики содержит:
Подробные сведения о системной среде.
Подробные сведения о пользовательской среде.
Сведения о собираемых единицах миграции (migunits) и их содержимом.
Использование журнала диагностики
Журнал диагностики по сути представляет собой отчет обо всех единицах миграции (мигунитах), включенных в миграцию. Migunit — это коллекция данных. В XML-файлах компонент определяет migunit, с которым связан migunit. Хранилище миграции состоит из всех migunits в миграции. Журнал диагностики можно использовать для проверки того, какие migunitы были включены в миграцию, а также для устранения неполадок при создании XML-файлов миграции.
В следующих примерах описаны распространенные сценарии, в которых можно использовать журнал диагностики.
Почему этот файл не переносится, когда я создал для него правило включения?
Предположим, что у нас есть следующая структура каталогов и что мы хотим, чтобы каталог данных был включен в миграцию вместе с файлом New Text Document.txt в новой папке. Каталог C:\data
содержит:
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM <DIR> New Folder
12/21/2023 01:19 PM 13 test (1).txt
12/21/2023 01:19 PM 13 test.txt
2 File(s) 26 bytes
Каталог C:\data\New Folder
содержит:
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM 0 New Text Document.txt
1 File(s) 0 bytes
Для переноса этих файлов создается следующий XML-код миграции:
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\ [*]</pattern>
</objectSet>
</include>
</rules>
</role>
</component>
</migration>
Однако при тестировании миграции файл new text Document.txt замечается, что он не был включен в миграцию. Чтобы устранить эту ошибку, миграцию можно повторить с переменной среды , MIG_ENABLE_DIAG задать таким образом, чтобы был создан журнал диагностики. При поиске компонента DATA1 в журнале диагностики отображается следующий раздел XML:
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data [*]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
Анализ этого раздела XML показывает migunit, созданный при обработке правила миграции. В <разделе Выполнение> подробно описаны фактические файлы, которые были запланированы для сбора, и результат операции сбора. Файл New Text Document.txt не отображается в этом разделе, что подтверждает неправильное создание правила миграции.
Анализ справочной статьи по библиотеке XML-элементов показывает, что <тег шаблона> необходимо изменить следующим образом:
<pattern type="File">c:\data\* [*]</pattern>
При повторном выполнении миграции с измененным тегом журнал диагностики отображает следующие сведения:
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
Этот журнал диагностики подтверждает, что измененное <значение шаблона> позволяет перенести файл.
Почему этот файл переносится, когда я создал правило исключения, исключающее его?
В этом сценарии существует следующая структура каталогов, и все файлы в каталоге Данных должны быть перенесены, за исключением текстовых файлов. Папка C:\Data
содержит:
Directory of C:\Data
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM <DIR> New Folder
12/21/2023 01:19 PM 13 test (1).txt
12/21/2023 01:19 PM 13 test.txt
2 File(s) 26 bytes
Содержит C:\Data\New Folder\
:
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM 0 New Text Document.txt
1 File(s) 0 bytes
Создается следующий XML-код миграции:
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\* [*]</pattern>
</objectSet>
</include>
</rules>
<rules>
<exclude>
<objectSet>
<pattern type="File">c:\* [*.txt]</pattern>
</objectSet>
</exclude>
</rules>
</role>
</component>
Однако при тестировании миграции все текстовые файлы замечаются, что они по-прежнему включены в миграцию. Чтобы устранить эту проблему, миграцию можно выполнить с переменной среды , MIG_ENABLE_DIAG задать для создания журнала диагностики. При поиске компонента DATA1 в журнале диагностики отображается следующий раздел XML:
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
<Patterns Type="Exclude">
<Pattern Type="File" Path="C:\* [*.txt]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
При проверке журнала диагностики подтверждается, что файлы по-прежнему переносятся, и что это проблема с созданным правилом XML миграции. Для XML-скрипта миграции создается обновление следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\* [*]</pattern>
</objectSet>
</include>
</rules>
<rules>
<exclude>
<objectSet>
<pattern type="File">c:\data\* [*.txt]</pattern>
</objectSet>
</exclude>
</rules>
</role>
</component>
</migration>
Измененный XML-скрипт миграции исключает файлы из миграции, как указано в журнале диагностики:
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
<Patterns Type="Exclude">
<Pattern Type="File" Path="C:\data\* [*.txt]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>