Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este tópico ainda não foi avaliado como - Avalie este tópico

Apêndice C do Guia da Equipe de Recursos de Migração de Perfil do Usuário

Apêndice C: Convertendo arquivos de controle de versões anteriores do USMT

Publicado em: 30/11/2006

As versões anteriores do USMT usavam os arquivos .inf para controlar a coleta e migração de documentos e configurações. Muitas organizações têm gasto tempo e recursos na criação de migrações com base nessa tecnologia. Embora haja diferenças significativas entre os dois formatos de arquivo de controle, uma compreensão de como cada formato controla o USMT pode habilitar os desenvolvedores a criarem arquivos .xml que replicam muito bem os efeitos das migrações anteriores.

Nesta página

Uma prévia dos formatos de arquivo .inf do USMT
Encontrando configurações equivalentes na XML
Criando uma migração completa na XML

Uma prévia dos formatos de arquivo .inf do USMT

Os desenvolvedores de arquivos .inf herdados já devem estar familiarizados com o formato e a função dos comandos desses arquivos. Abaixo temos uma rápida visão geral das seções e da sintaxe do arquivo .inf.

Seções de um arquivo .inf do USMT

Os arquivos .inf do USMT são segmentados com base no tipo de migração realizada. A seguir temos exemplos das seções resultantes:

  • [Applications]. A seção Applications define as configurações de aplicativos que o USMT migrará.

  • [System Settings]. A seção System Settings migra as configurações do sistema, como fontes e acessibilidade.

  • [User Settings]. Esta seção migra as preferências do usuário, como configuração da área de trabalho, configurações de proteção de tela e favoritos.

  • [Files and Folders]. Esta seção migra os arquivos e as pastas. As migrações podem ser especificadas para arquivos e pastas específicas, e para arquivos e pastas com base no padrão ou extensão do arquivo.

Existem ainda outras seções. Consulte a ajuda da versão anterior do USMT para obter uma listagem completa.

Sintaxe do arquivo .inf do USMT

Os arquivos .inf do USMT usam comandos para controlar a operação do USMT. Exemplos desses comandos estão listados abaixo. Alguns exemplos da sintaxe do comando .inf são apresentados após cada comando.

[CopyFiles]

O comando CopyFiles especifica os arquivos que a migração deve copiar. A sintaxe desse comando é:

Path\FileName.ext, NewRootPath

Também é possível utilizar caracteres curinga como variáveis de ambiente. Para migrar os arquivos .doc de Meus Documentos para a mesma pasta do novo sistema, use a sintaxe:

[Copy This State]
CopyFiles=WordDocs
[WordDocs]
%CSIDL_PERSONAL%\*\*.doc, %CSIDL_PERSONAL%
[CopyFilesFiltered]

Este comando copia apenas os arquivos pertinentes ao novo sistema. Por exemplo, se a equipe de recursos de migração de perfil do usuário estiver copiando atalhos de programas na área de trabalho de um novo sistema e um link apontar para um arquivo que não será migrado, CopyFilesFiltered não copiará o arquivo .lnk associado. Este é um exemplo da sintaxe de CopyFilesFiltered:

[Copy This State]
CopyFiles=Shortcuts
[Shortcuts]
%CSIDL_DESKTOP%\*.lnk, %CSIDL_DESKTOP%

Observação   O comando CopyFilesFiltered executa essa ação de filtragem durante a execução do Loadstate.exe.

[AddReg]

A sintaxe do comando AddReg é:

RegRoot\RegKey\RegSubKey [RegValue]

Esse comando migra as entradas do Registro no computador de destino, de acordo com a sintaxe do comando. Para migrar uma entrada que executa automaticamente o Bloco de Notas na inicialização, use a sintaxe:

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

[Copy This User State]
AddReg=RunNotepad AddReg
[RunNotepad AddReg]
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
\Notepad.exe C:\Windows\system32\notepad.exe

Observação   A chave especificada do Registro deve existir no sistema de origem para ser migrada com êxito.

[DelReg]

A sintaxe do comando DelReg é:

RegRoot\RegKey\RegSubKey [RegValue]

Esse comando remove as entradas do Registro no computador de destino, de acordo com a sintaxe do comando. Para criar uma entrada e remover o exemplo AddReg acima, use a sintaxe:

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

[Copy This User State]
DelReg=RunNotepad DelReg
[RunNotepad DelReg]
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
\Notepad.exe C:\Windows\system32\notepad.exe

Observação   Este comando não exclui ativamente a chave do Registro definida; ele apenas a exclui da migração.

O arquivo de ajuda do USMT define muitos outros comandos. Consulte a ajuda da versão anterior do USMT para obter uma listagem completa.

Encontrando configurações equivalentes na XML

Os formatos da linguagem XML são muito diferentes da formatação com base em seção dos arquivos .inf. As seções da XML são definidas por tags <headings> e </headings>. A sintaxe dentro das configurações também é diferente. Uma referência completa foi incluída na pasta de instalação do USMT. Consulte "USMT XML Elements Reference" no USMT.chm para obter detalhes da sintaxe XML. Esta seção converte exemplos da "Sintaxe do arquivo .inf do USMT" (acima) para XML com a finalidade de ilustrar esse processo.

[CopyFiles]

O exemplo a seguir migra todos os arquivos .doc de Meus Documentos de um sistema para Meus Documentos de outro:

<component type="Documents" context="User">
<displayName>User Data</displayName>
 <role role="Data">
  <rules>
  <!-- Migrate all .doc from My Documents to the new system -->
   <include>
    <objectSet>
     <pattern type="File">%CSIDL_PERSONAL%\[*.doc]</pattern>
    </objectSet>
   </include>
  </rules>
 </role>
</component>

[CopyFilesFiltered]

A equipe de recursos de migração de perfil do usuário pode filtrar os arquivos, tentando detectar primeiramente a condição sob a qual os integrantes da equipe migrariam o arquivo. Se a condição for detectada, então as ações de migração subseqüentes ocorrerão; caso contrário, Loadstate.exe ignorará as instruções filha subseqüentes, como mostra a Listagem 5.

Listagem 5. Utilização de CopyFilesFiltered para filtrar arquivos

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

<component type="Documents" context="User">
<displayName>User Data</displayName>
 <role role="Data">
  <detects>
   <detect>
<condition>MigXmlHelper.DoesObjectExist
("File","%CSIDL_PERSONAL%\MyFile.Doc")</condition>
   </detect>
  </detects>
  <rules>
  <!-- Migrate specific .lnk from My Documents to new system -->
   <include>
    <objectSet>
     <pattern type="File">%CSIDL_DESKTOP%\[MyFile.lnk]</pattern>
    </objectSet>
   </include>
  </rules>
 </role>
</component>

Observação   No exemplo acima, a condição Detect deve ser verdadeira para que as instruções Rules subseqüentes sejam processadas.

[AddReg]

O código XML da Listagem 6 migra uma configuração do Registro específica.

Listagem 6. Migrar uma configuração específica do Registro

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/test">
 <component type="Application">
 <displayName>Component to migrate only registry value string</displayName>
  <role role="Settings">
   <rules context="UserAndSystem">
    <include>
     <objectSet>
      <pattern type="Registry">HKCU\Software\Microsoft
      \Windows\CurrentVersion\Run [Notepad.exe]</pattern>
     </objectSet>
    </include>
   </rules>
  </role>
 </component>
</migration>

Observação   Se a chave do Registro especificada pelo script da Listagem 5 não existir no sistema de origem, ela não será criada no sistema de destino.

[DelReg]

O exemplo da Listagem 7 replica a ação DelReg do arquivo .inf anterior. (Observe o par <exclude>...</exclude> .)

Listagem 7. O comando DelReg

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/test">
 <component type="Application">
 <displayName>Component to migrate only registry value string</displayName>
  <role role="Settings">
   <rules context="UserAndSystem">
    <exclude>
     <objectSet>
      <pattern type="Registry">HKCU\Software\Microsoft
      \Windows\CurrentVersion\Run [Notepad.exe]</pattern>
     </objectSet>
    </exclude>
   </rules>
  </role>
 </component>
</migration>

Observação   Em muitos casos, basta não definir um objeto para excluí-lo da migração. O processo acima pode ser necessário quando se migra um pai, mas se exclui determinados filhos.

Criando uma migração completa na XML

Obviamente, a equipe de recursos de migração de perfil do usuário teria que escrever muito código XML para criar uma conversão completa. Assim, é importante tentar migrar a maior parte das configurações usando os arquivos de controle .xml incluídos. A execução do Scanstate com a opção /genconfig cria uma migração bastante completa. Quando essa migração estiver concluída, crie um arquivo custom.xml para os elementos restantes que devem ser migrados. O produto final poderia ser executado com um comando semelhante a este:

Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

Scanstate /config:Migration.xml /i:Migapp.xml 
/i:MigUser.xml /i:CustMigration.xml /l:Migration.log /v:15
Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft. Todos os direitos reservados.