Ficheiros de registo USMT
Os registos da Ferramenta de Migração de Estado do Utilizador (USMT) podem ser utilizados para monitorizar a migração e resolver erros e migrações falhadas. Este artigo descreve as opções de linha de comandos disponíveis para ativar os registos USMT. Também descreve novos elementos XML que podem ser utilizados para configurar:
- Que tipos de erros são fatais e devem parar a migração.
- Que tipos não são fatais e devem ser ignorados para que a migração possa continuar.
Registar opções da linha de comandos
A tabela seguinte descreve cada opção de linha de comandos relacionada com os registos e fornece o nome do registo e uma descrição do tipo de informações que cada registo contém.
Opção da linha de comandos | Nome do Ficheiro | Descrição |
---|---|---|
/l"[Path]FileName |
ScanState.exe.log ou LoadState.log |
Especifica o caminho e o nome do ficheiro do registo ScanState ou do registo LoadState . |
/progress:[Path]FileName | Especifica o caminho e o nome do ficheiro do Registo de progresso. | Fornece informações sobre o status da migração, por percentagem concluída. |
/v:[VerbosityLevel] | Não aplicável | Veja Opções de monitorização na sintaxe ScanState. |
/listfiles:[Path]FileName | Especifica o caminho e o nome de ficheiro do registo Listfiles. | Fornece uma lista dos ficheiros que foram migrados. |
Defina a variável de ambiente MIG_ENABLE_DIAG para um caminho para um ficheiro XML. | USMTDiag.xml |
O registo de diagnóstico contém informações detalhadas do ambiente do sistema, informações do ambiente do utilizador e informações sobre as unidades de migração (migunits) que estão a ser recolhidas e os respetivos conteúdos. |
Observação
Os ficheiros de registo não podem ser armazenados no StorePath. Se os ficheiros de registo estiverem armazenados no StorePath, os ficheiros de registo são substituídos quando o USMT é executado.
Registos ScanState e LoadState
Os registos ScanState e LoadState são ficheiros de texto que são criados quando as ferramentas ScanState e LoadState são executadas. Estes registos podem ser utilizados para ajudar a monitorizar a migração. O conteúdo do registo depende das opções da linha de comandos utilizadas e do nível de verbosidade especificado. Para obter mais informações sobre os níveis de verbosidade, veja Opções de monitorização na sintaxe ScanState.
Registo de progresso
Um registo de progresso pode ser criado com a opção /progress
. As ferramentas externas, como o Microsoft System Center Operations Manager, podem analisar o registo de progresso para atualizar os sistemas de monitorização. Os primeiros três campos em cada linha são fixos da seguinte forma:
Data: Data, no formato do diashortNameOfTheMonthyear. Por exemplo: 08 de junho de 2023.
Hora local: Tempo, no formato hrs:minutes:seconds (utilizando um relógio de 24 horas). Por exemplo: 13:49:13.
Tempo de migração: Duração do tempo em que o USMT foi executado, no formato hrs:minutes:seconds. Por exemplo: 00:00:20.
Os restantes campos são pares chave/valor, conforme indicado na tabela seguinte.
Chave | Valor |
---|---|
programa |
ScanState.exe ou LoadState.exe . |
productVersion | O número completo da versão do produto do USMT. |
computerName | O nome do computador de origem ou destino no qual a USMT foi executada. |
commandLine | O comando completo utilizado para executar o USMT. |
FASE | Comunica que está a iniciar-se uma nova fase da migração. Esta chave pode ser um dos seguintes valores:
|
detectedUser |
|
includedInMigration | Define se o perfil/componente do utilizador está incluído para migração. Os valores válidos são Sim ou Não. |
forUser | Especifica um dos seguintes valores:
|
detectedComponent | Especifica um componente detetado pelo USMT.
|
totalSizeInMBToTransfer | Tamanho total dos ficheiros e definições a migrar em megabytes (MB). |
totalPercentageCompleted | Percentagem total da migração concluída por ScanState ou LoadState. |
collectingUser | Especifica para que utilizador o ScanState está a recolher ficheiros e definições. |
totalMinutesRemaining | Estimativa de tempo, em minutos, para que a migração seja concluída. |
erro | Tipo de erro não fatal que ocorreu. Esta chave pode ser um dos seguintes valores:
|
objectName | O nome do ficheiro ou definição que causou o erro não fatal. |
ação | Ação tomada pela USMT para o erro não fatal. Os valores são:
|
errorCode | O errorCode ou o valor devolvido. |
numberOfIgnoredErrors | O número total de erros não fatais que a USMT ignorou. |
Mensagem* | A mensagem correspondente ao errorCode. |
Listar registo de ficheiros
O registo Listar ficheiros (Listfiles.txt
) fornece uma lista dos ficheiros que foram migrados. Esta lista pode ser utilizada para resolver problemas de XML ou pode ser mantida como um registo dos ficheiros que foram recolhidos no arquivo de migração. O registo Listar Ficheiros só está disponível para ScanState.exe
.
Registo de diagnósticos
O registo de diagnósticos pode ser obtido ao definir a variável de ambiente MIG_ENABLE_DIAG para um caminho para um ficheiro XML.
O registo de diagnósticos contém:
Informações detalhadas sobre o ambiente do sistema.
Informações detalhadas sobre o ambiente do utilizador.
Informações sobre as unidades de migração (migunits) que estão a ser recolhidas e os respetivos conteúdos.
Utilizar o Registo de Diagnósticos
O registo de diagnósticos é essencialmente um relatório de todas as unidades de migração (migunits) incluídas na migração. Um migunit é uma coleção de dados. Nos ficheiros XML, o componente identifica o migunit ao qual o migunit está associado. O arquivo de migração é composto por todos os migunits na migração. O registo de diagnósticos pode ser utilizado para verificar que migunits foram incluídos na migração e pode ser utilizado para resolução de problemas durante a criação de ficheiros XML de migração.
Os exemplos seguintes descrevem cenários comuns nos quais o registo de diagnósticos pode ser utilizado.
Porque é que este ficheiro não está a ser migrado quando criei uma regra de "inclusão" para o mesmo?
Imaginemos que temos a seguinte estrutura de diretórios e que queremos que o diretório de dados seja incluído na migração juntamente com o ficheiro Novo Texto Document.txt na Nova Pasta. O diretório de C:\data
contém:
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
O diretório de C:\data\New Folder
contém:
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
Para migrar estes ficheiros, é criado o seguinte XML de migração:
<?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>
No entanto, ao testar a migração, o ficheiro new text Document.txt é notado que não foi incluído na migração. Para resolver esta falha, a migração pode ser repetida com a variável de ambiente MIG_ENABLE_DIAG definida de forma a que o registo de diagnósticos seja gerado. A pesquisa no registo de diagnósticos do componente DATA1 revela a seguinte secção 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>
A análise desta secção XML revela o migunit que foi criado quando a regra de migração foi processada. A <secção Executar> detalha os ficheiros reais agendados para recolha e o resultado da operação de recolha. O ficheiro novo Document.txtde texto não aparece nesta secção, o que confirma que a regra de migração não foi criada corretamente.
Uma análise do artigo de referência da biblioteca de elementos XML revela que a <etiqueta de padrão> tem de ser modificada da seguinte forma:
<pattern type="File">c:\data\* [*]</pattern>
Quando a migração for efetuada novamente com a etiqueta modificada, o registo de diagnósticos revela as seguintes informações:
<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>
Este registo de diagnóstico confirma que o valor do padrão> modificado< permite a migração do ficheiro.
Porque é que este ficheiro está a migrar quando criei uma regra de exclusão excluindo-a?
Neste cenário, existe a seguinte estrutura de diretório e todos os ficheiros no diretório Dados devem ser migrados, exceto para ficheiros de texto. A C:\Data
pasta contém:
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
O C:\Data\New Folder\
contém:
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
É criado o seguinte XML de migração:
<?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>
No entanto, ao testar a migração, todos os ficheiros de texto são notados de que ainda estão incluídos na migração. Para resolver este problema, a migração pode ser efetuada com a variável de ambiente MIG_ENABLE_DIAG definida para que o registo de diagnósticos seja gerado. A pesquisa no registo de diagnósticos do componente DATA1 revela a seguinte secção 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>
Quando o registo de diagnósticos é revisto, os ficheiros continuam a ser migrados e é um problema com a regra XML de migração criada. É criada uma atualização para o script XML de migração da seguinte forma:
<?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>
O script XML de migração revista exclui a migração dos ficheiros, conforme confirmado no registo de diagnósticos:
<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>