Compartilhar via


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 estado 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:
  • A inicializar
  • Análise
  • A recolher
  • A guardar
  • A estimar
  • A aplicar
detectedUser
  • Para a ferramenta ScanState , esta chave é o USMT de utilizadores detetado no computador de origem que pode ser migrado.
  • Para a ferramenta LoadState , esta chave é os utilizadores USMT detetados no arquivo que podem ser migrados.
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:
  • O estado do utilizador a ser migrado.
  • Este Computador, ou seja, ficheiros e definições que não estão associados a um utilizador.
detectedComponent Especifica um componente detetado pelo USMT.
  • Para ScanState, esta chave é um componente ou aplicação que está instalado no computador de origem.
  • Para LoadState, esta chave é um componente ou aplicação que foi detetado no arquivo.
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:
  • UnableToCopy: não é possível copiar para armazenar porque o disco no qual o arquivo está localizado está cheio.
  • UnableToOpen: não é possível abrir o ficheiro para migração porque outra aplicação ou serviço tem o ficheiro aberto no modo não partilhado.
  • UnableToCopyCatalog: não é possível copiar porque o arquivo está danificado.
  • UnableToAccessDevice: não é possível aceder ao dispositivo.
  • UnableToApply: não é possível aplicar a definição ao computador de destino.
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:
  • Ignorar: erro não fatal ignorado e a migração continuou porque a opção /c foi especificada na linha de comandos.
  • Abortar: interrompeu a migração porque a opção /c não foi especificada.
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>