Compartilhar via


Arquivos de log

Você pode usar os logs da USMT (Ferramenta de Migração de Estado do Usuário) 5.0 para monitorar a migração e solucionar erros e falhas. Este tópico descreve as opções de linha de comando disponíveis para habilitar os logs da USMT. Além disso, aborda novos elementos XML que configuram quais tipos de erros são fatais e interrompem a migração, e quais tipos não são fatais e devem ser ignorados para que a migração continue.

Opções de linha de comando dos logs

Logs de ScanState e LoadState

Log de progresso

Log de lista de arquivos

Log de diagnóstico

Opções de linha de comando dos logs

A tabela a seguir descreve cada opção de linha de comando relacionada aos logs. Ela inclui o nome do log e uma descrição do tipo de informação que ele contém.

Opção da linha de comando Nome do arquivo Descrição

/l: [Caminho\]NomeDoArquivo

Scanstate.log ou LoadState.log

Especifica o caminho e o nome de arquivo do log ScanState.log ou LoadState.log.

/progress: [Caminho\]NomeDoArquivo

Especifica o caminho e o nome de arquivo do log de progresso.

Fornece informações sobre o status da migração, mostrando a porcentagem concluída.

/v: [NívelDeDetalhamento]

Não aplicável

Veja a seção "Opções de monitoramento" em Sintaxe de ScanState.

/listfiles [Caminho\]NomeDoArquivo

Especifica o caminho e o nome de arquivo do log de lista de arquivos.

Fornece uma lista dos arquivos que foram migrados.

Defina a variável de ambiente MIG_ENABLE_DIAG para um caminho em um arquivo XML.

USMTDiag.xml

O log de diagnóstico contém informações detalhadas sobre o ambiente do sistema, o ambiente do usuário, as unidades de migração (migunits) que estão sendo reunidas e o respectivo conteúdo.

Dica

Não armazene nenhum dos arquivos de log no CaminhoDoRepositório. Caso contrário, o log será substituído quando a USMT for executada.

Logs de ScanState e LoadState

Os logs de ScanState e LoadState são arquivos de texto criados quando você executa as ferramentas ScanState e LoadState. Eles podem ser usados para monitorar a migração. O conteúdo do log depende das opções de linha de comando utilizadas e do nível de detalhamento especificado. Para saber mais sobre os níveis de detalhamento, veja "Opções de monitoramento" em Sintaxe de ScanState.

Log de progresso

Você pode criar um log de progresso usando a opção /progress. Ferramentas externas, como o Microsoft System Center Operations Manager 2007, podem analisar o log de progresso para atualizar os sistemas de monitoramento. Os três primeiros campos de cada linha são fixos:

  • Data: data, no formato diaNomeAbreviadoDoMêsano. Por exemplo: 08 Jun 2006.

  • Hora local: hora, no formato horas:minutos:segundos (usando um relógio de 24 horas). Por exemplo: 13:49:13.

  • Tempo de migração: duração da execução da USMT, no formato horas:minutos:segundos. Por exemplo: 00:00:10.

Os demais campos são pares de chave/valor, conforme indicado na tabela abaixo.

Chave Valor

program

ScanState.exe ou LoadState.exe.

productVersion

O número da versão completa do produto da USMT.

computerName

O nome do computador de origem ou de destino em que a USMT foi executada.

commandLine

O comando completo usado para executar a USMT.

PHASE

Comunica que uma nova fase da migração está começando. Pode ser uma das seguintes opções:

  • Inicialização

  • Verificação

  • Coleta

  • Salvamento

  • Estimativa

  • Aplicação

detectedUser

  • Para a ferramenta ScanState, esses são os usuários detectados pela USMT no computador de origem que podem ser migrados.

  • Para a ferramenta LoadState, esses são os usuários detectados pela USMT no repositório que podem ser migrados.

includedInMigration

Define se o perfil/componente do usuário está incluído para migração. Os valores válidos são Sim ou Não.

forUser

Especifica uma das seguintes opções:

  • O estado do usuário que está sendo migrado.

  • Este computador, ou seja, arquivos e configurações que não estão associados a um usuário.

detectedComponent

Especifica um componente detectado pela USMT.

  • No caso do ScanState, é um componente ou aplicativo instalado no computador de origem.

  • No caso do LoadState, é um componente ou aplicativo que foi detectado no repositório.

totalSizeInMBToTransfer

Tamanho total dos arquivos e das configurações a serem migrados, em megabytes (MB).

totalPercentageCompleted

Porcentagem total da migração que foi concluída pelo ScanState ou pelo LoadState.

collectingUser

Especifica de qual usuário o ScanState está coletando arquivos e configurações.

totalMinutesRemaining

Tempo estimado, em minutos, para a migração ser concluída.

error

Tipo de erro não fatal que ocorreu. Pode ser uma das seguintes opções:

  • UnableToCopy: não foi possível copiar no repositório porque o disco em que ele se encontra está cheio.

  • UnableToOpen: não foi possível abrir o arquivo para migração porque ele foi aberto por outro aplicativo ou serviço no modo não compartilhado.

  • UnableToCopyCatalog: não foi possível copiar porque o repositório está corrompido.

  • UnableToAccessDevice: não foi possível acessar o dispositivo.

  • UnableToApply: não foi possível aplicar a configuração ao computador de destino.

objectName

O nome do arquivo ou da configuração que causou o erro não fatal.

action

A ação executada pela USMT com relação ao erro não fatal. Os valores são:

  • Ignore: o erro não fatal foi ignorado e a migração continuou porque a opção /c foi especificada na linha de comando.

  • Abort: a migração foi interrompida porque a opção /c não foi especificada.

errorCode

O código de erro ou valor retornado.

numberOfIgnoredErrors

O número total de erros não fatais ignorados pela USMT.

message

A mensagem correspondente ao errorCode.

Log de lista de arquivos

O log de lista de arquivos (Listfiles.txt) fornece uma lista dos arquivos que foram migrados. Essa lista pode ser usada para solucionar problemas de XML ou pode ser guardada como um registro dos arquivos que foram reunidos no repositório da migração. O log de lista de arquivos só está disponível para a ferramenta ScanState.exe.

Log de diagnóstico

Você pode obter o log de diagnóstico definindo a variável de ambiente MIG_ENABLE_DIAG para um caminho em um arquivo XML.

O log de diagnóstico contém:

  • Informações detalhadas do ambiente do sistema

  • Informações detalhadas do ambiente do usuário

  • Informações sobre as unidades de migração (migunits) que estão sendo reunidas e o respectivo conteúdo

Usando o log de diagnóstico

O log de diagnóstico é, essencialmente, um relatório de todas as unidades de migração (migunits) incluídas na migração. Uma migunit é uma coleção de dados identificados pelo componente ao qual estão associados nos arquivos XML. O repositório da migração é composto de todas as migunits da migração. O log de diagnóstico pode ser usado para verificar quais migunits foram incluídas na migração, bem como para solucionar problemas durante a criação de arquivos XML de migração.

Os exemplos a seguir descrevem cenários comuns de uso do log de diagnóstico.

Por que este arquivo não está migrando se eu criei uma regra "include" para ele?

Vamos imaginar que temos a estrutura de diretórios a seguir e que queremos que o diretório “data” seja incluído na migração, juntamente com o arquivo “New Text Document.txt”, na pasta “New Folder”. O diretório C:\data contém:

01/21/2009  10:08 PM    <DIR>          .
01/21/2009  10:08 PM    <DIR>          ..
01/21/2009  10:08 PM    <DIR>          New Folder
01/21/2009  09:19 PM                13 test (1).txt
01/21/2009  09:19 PM                13 test.txt
               2 File(s)             26 bytes

O diretório C:\data\New Folder contém:

01/21/2009  10:08 PM    <DIR>          .
01/21/2009  10:08 PM    <DIR>          ..
01/21/2009  10:08 PM                 0 New Text Document.txt
               1 File(s)              0 bytes

Para migrar esses arquivos, você escreve o seguinte XML de migração:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="https://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>

Porém, ao testar a migração, você nota que o arquivo “New Text Document.txt” não foi incluído. Para solucionar esse problema, a migração pode ser repetida com a variável de ambiente MIG_ENABLE_DIAG definida de tal modo que o log de diagnóstico seja gerado. Procurando pelo componente “DATA1” no log de diagnóstico, você descobre a seguinte seção do XML:

<MigUnitList>
<MigUnit Name="&lt;System&gt;\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="&lt;System&gt;\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 dessa seção do XML revela a migunit que foi criada quando a regra de migração foi processada. A seção <Perform> mostra em detalhes os arquivos que estavam programados para ser reunidos e o resultado dessa operação. O arquivo “New Text Document.txt” não aparece nessa seção, o que confirma que a regra de migração não foi redigida corretamente.

Uma análise do tópico de referência dos elementos XML revela que a marca <pattern> precisa ser modificada, da seguinte forma:

<pattern type="File">c:\data\* [*]</pattern>

Quando a migração é executada novamente com a marca modificada, o log de diagnóstico revela o seguinte:

<MigUnitList>
<MigUnit Name="&lt;System&gt;\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="&lt;System&gt;\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>

Esse log de diagnóstico confirma que o valor modificado de <pattern> possibilita a migração do arquivo.

Por que este arquivo está migrando se eu criei uma regra "exclude" para excluí-lo?

Neste cenário, você tem a estrutura de diretórios a seguir e quer migrar todos os arquivos do diretório “data”, exceto os arquivos de texto. A pasta C:\Data contém:

Directory of C:\Data

01/21/2009  10:08 PM    <DIR>          .
01/21/2009  10:08 PM    <DIR>          ..
01/21/2009  10:08 PM    <DIR>          New Folder
01/21/2009  09:19 PM                13 test (1).txt
01/21/2009  09:19 PM                13 test.txt
               2 File(s)             26 bytes

A pasta C:\Data\New Folder contém:

01/21/2009  10:08 PM    <DIR>          .
01/21/2009  10:08 PM    <DIR>          ..
01/21/2009  10:08 PM                 0 New Text Document.txt
               1 File(s)              0 bytes

Você escreve o seguinte XML de migração:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="https://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>

Porém, ao testar a migração, você nota que todos os arquivos de texto ainda estão incluídos. Para solucionar esse problema, a migração pode ser executada com a variável de ambiente MIG_ENABLE_DIAG definida de tal modo que o log de diagnóstico seja gerado. Procurando pelo componente “DATA1” no log de diagnóstico, você descobre a seguinte seção do XML:

<MigUnitList>
<MigUnit Name="&lt;System&gt;\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="&lt;System&gt;\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>

Examinando o log de diagnóstico, você confirma que os arquivos ainda estão migrando e que o problema está na forma como a regra do XML foi redigida. Você então faz a seguinte atualização no script do XML de migração:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="https://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 revisado exclui os arquivos da migração, como é confirmado no log de diagnóstico:

<MigUnitList>
<MigUnit Name="&lt;System&gt;\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="&lt;System&gt;\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>

Consulte também

Outros Recursos

Biblioteca de elementos XML
Sintaxe de ScanState
Sintaxe de LoadState