Migrar configurações de aplicativos

Você pode criar um arquivo .xml personalizado para migrar configurações específicas de aplicativos de linha de negócios ou para alterar o comportamento de migração padrão da USMT (Ferramenta de Migração de Estado do Usuário) 5.0. Para que ScanState e LoadState possam usar esse arquivo, é necessário especificar o arquivo .xml personalizado em ambas as linhas de comando.

Este tópico define como criar um arquivo .xml de migração personalizado que faz a migração de um aplicativo que não é migrado por padrão pelo MigApp.xml. Você deve migrar as configurações depois de instalar o aplicativo, mas antes de o usuário executá-lo pela primeira vez.

Este tópico não contém informações sobre como migrar aplicativos que armazenam configurações em um repositório específico de aplicativo, e sim apenas sobre os aplicativos que armazenam as informações em arquivos ou no Registro. Ele também não contém informações sobre como migrar os dados que os usuários criam usando o aplicativo. Por exemplo, se o aplicativo em questão cria arquivos .doc usando um modelo específico, este tópico não discute como migrar os arquivos .doc e os modelos propriamente ditos.

Neste tópico

  • Antes de começar

  • Etapa 1: verifique se o aplicativo está instalado no computador de origem e se a sua versão é igual àquela que será instalada no computador de destino..

  • Etapa 2: identifique configurações para coletar e determine onde cada configuração está armazenada no computador..

  • Etapa 3: identifique como aplicar as configurações coletadas..

  • Etapa 4: crie o componente XML de migração para o aplicativo..

  • Etapa 5: teste a migração das configurações do aplicativo..

Antes de começar

Você deve identificar um computador de teste que contenha o sistema operacional do seu computador de origem, e o aplicativo cujas configurações você deseja migrar. Por exemplo, se estiver planejando migrar do Windows Vista® para o Windows® 8, instale o Windows Vista no computador de teste e depois instale o aplicativo.

Etapa 1: verifique se o aplicativo está instalado no computador de origem e se a sua versão é igual àquela que será instalada no computador de destino.

Antes de a USMT migrar as configurações, é necessário que ela verifique se o aplicativo está instalado no computador de origem e se a sua versão está correta. Se o aplicativo não estiver instalado no computador de origem, você provavelmente não vai querer que a USMT perca tempo procurando as configurações correspondentes. O mais importante é que, se a USMT coletar configurações para um aplicativo que não está instalado, talvez ela migre configurações que podem fazer com que o computador de destino funcione incorretamente. Você também deve investigar se existe mais de uma versão do aplicativo. Isso porque a nova versão talvez não armazene as configurações no mesmo local, podendo gerar resultados inesperados no computador de destino.

Há muitas maneiras de detectar se um aplicativo está instalado. A prática recomendada é procurar uma chave de desinstalação de aplicativo no Registro e depois pesquisar o computador em busca do arquivo executável que instalou o aplicativo. É importante verificar esses dois itens, pois, às vezes, diferentes versões do mesmo aplicativo compartilham a mesma chave de desinstalação. Por isso, mesmo que a chave esteja presente, talvez ela não corresponda à versão desejada do aplicativo.

Verifique o Registro em busca de uma chave de desinstalação do aplicativo.

Quando muitos aplicativos são instalados (principalmente aqueles instalados usando a tecnologia Microsoft® Windows® Installer), uma chave de desinstalação de aplicativos é criada em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Por exemplo, ao ser instalado, o Adobe Acrobat Reader 7 cria uma chave denominada HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \{AC76BA86-7AD7-1033-7B44-A70000000000}. Portanto, se um computador contiver essa chave, significa que o Adobe Acrobat Reader 7 está instalado nele. É possível verificar a existência de uma chave do Registro usando a função auxiliar DoesObjectExist.

Normalmente, você encontra essa chave procurando em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall pelo nome do aplicativo, pelo nome do arquivo executável do aplicativo ou pelo nome da empresa que cria o aplicativo. Você pode usar o Editor do Registro (Regedit.exe que fica em %SystemRoot%) para pesquisar o Registro.

Verifique o sistema de arquivos em busca do arquivo executável do aplicativo.

Também é recomendável verificar os binários do aplicativo em busca do executável que o instalou. Para fazer isso, primeiro é necessário determinar onde o aplicativo está instalado e qual é o nome do executável. A maioria dos aplicativos armazena o local de instalação dos binários no Registro. Você deve pesquisar o Registro em busca do nome do aplicativo, do nome do arquivo executável do aplicativo ou do nome da empresa que desenvolveu o aplicativo, até localizar o valor do Registro que contém o caminho de instalação. Assim que o caminho para o executável do aplicativo for determinado, será possível usar a função auxiliar DoesFileVersionMatch para verificar a versão correta desse executável. Para ver um exemplo de como fazer isso, confira a seção referente ao Windows Live™ Messenger do arquivo MigApp.xml.

Etapa 2: identifique configurações para coletar e determine onde cada configuração está armazenada no computador.

Em seguida, você deve percorrer a interface do usuário e criar uma lista de todas as configurações disponíveis. Será possível reduzir essa lista se houver configurações que você não queira migrar. Para determinar onde cada configuração está armazenada, será necessário alterar cada uma delas e monitorar a atividade no Registro e no sistema de arquivos. Não é preciso migrar os arquivos binários e as configurações do Registro criadas na ocasião em que o aplicativo é instalado. Isso porque você precisará reinstalar esse aplicativo no computador de destino. Apenas as configurações personalizáveis devem ser migradas.

Como determinar onde cada configuração está armazenada

  1. Baixe um ferramenta de monitoramento de arquivos e do Registro, como Regmon e Filemon, pelo site Windows Sysinternals.

  2. Desligue a maior quantidade possível de aplicativos para limitar a atividade do Registro e do sistema de arquivos no computador.

  3. Filtre a saída das ferramentas de forma que ela mostre apenas as alterações que estão sendo feitas por esse aplicativo.

    Dica

    A maioria dos aplicativos armazena suas configurações no perfil do usuário. Ou seja, as configurações armazenadas no sistema de arquivos estão no diretório %UserProfile%, e as configurações armazenadas no Registro estão no hive HKEY_CURRENT_USER. Para esses aplicativos, é possível filtrar a saída das ferramentas de monitoramento de arquivos e do Registro de forma a mostrar apenas as atividades nessas localizações. Isso reduzirá consideravelmente a quantidade de saída que você precisará examinar.

  4. Inicie a(s) ferramenta(s) de monitoramento, altere uma configuração e procure gravações no Registro e no sistema de arquivos que tenham ocorrido no momento em que a configuração foi alterada. Verifique se as alterações feitas estão realmente efetivadas. Por exemplo, se você estiver alterando uma configuração no Microsoft Word marcando uma caixa de seleção na caixa de diálogo Opções, em geral a alteração apenas terá efeito quando você fechar essa caixa de diálogo clicando em OK.

  5. Quando a configuração for alterada, observe as mudanças no sistema de arquivos e no Registro. Pode haver mais de um valor de arquivo ou do Registro para cada configuração. Você deve identificar o conjunto mínimo de alterações em arquivos e no Registro que são necessárias para mudar essa configuração. Esse é o conjunto de arquivos e chaves do Registro necessário que deverá ser migrado para que a migração da configuração possa acontecer.

    Dica

    Alterar a configuração de um aplicativo acaba resultando na gravação das chaves do Registro. Se possível, filtre a saída das ferramentas de monitoramento de arquivos e do Registro de forma a mostrar apenas as gravações em arquivos e valores/chaves do Registro.

Etapa 3: identifique como aplicar as configurações coletadas.

Se a versão do aplicativo no computador de origem for igual à versão no computador de destino, não será necessário modificar os arquivos coletados e as chaves do Registro. Por padrão, a USMT migra os arquivos e as chaves do Registro a partir da localização de origem até a localização correspondente no computador de destino. Por exemplo, se um arquivo tiver sido coletado da pasta C:\Documents and Settings\Usuário1\Meus Documentos, e o diretório de perfil no computador de destino estiver localizado em D:\Usuários\Usuário1, a USMT fará a migração automática desse arquivo para D:\Usuários\Usuário1\Meus Documentos. Entretanto, talvez seja necessário modificar a localização de algumas configurações nos três casos a seguir:

Caso 1: a versão do aplicativo no computador de destino é mais recente que a versão no computador de origem.

Neste caso, a versão mais recente do aplicativo talvez consiga ler as configurações do computador de origem sem nenhuma modificação. Ou seja, os dados coletados de uma versão mais antiga do aplicativo são às vezes compatíveis com a versão mais recente desse aplicativo. Entretanto, talvez seja necessário modificar a localização da configuração se qualquer uma das condições a seguir for verdadeira:

  • A versão mais recente do aplicativo pode importar configurações de uma versão mais antiga. Esse mapeamento geralmente acontece na primeira vez em que um usuário executa a versão mais recente após a migração das configurações. Alguns aplicativos fazem isso automaticamente após a migração das configurações, mas outros apenas o farão se tiverem sido atualizados da versão mais antiga. Quando o aplicativo é atualizado, um conjunto de arquivos e/ou chaves do Registro é instalado indicando que a versão mais antiga do aplicativo já foi instalada. Se você realizar uma instalação limpa da versão mais recente (o que é o caso na maioria das migrações), o computador não terá esse conjunto de arquivos e chaves do Registro e, portanto, o mapeamento não ocorrerá. Para induzir a versão mais recente do aplicativo a iniciar esse processo de importação, talvez o seu script de migração precise criar esses arquivos e/ou chaves do Registro no computador de destino.

    Para identificar quais arquivos e/ou chaves/valores do Registro precisam ser criados para causar a importação, atualize a versão anterior do aplicativo para a mais recente e monitore as alterações feitas no sistema de arquivos e no Registro usando o mesmo processo descrito em Como determinar onde cada configuração está armazenada. Assim que você souber o conjunto de arquivos necessários para o computador, poderá usar o elemento <addObjects> para adicioná-lo ao computador de destino.

  • A versão mais recente do aplicativo não pode ler configurações do computador de origem e também não pode importar as configurações para o novo formato. Nesse caso, será necessário criar um mapeamento para cada configuração dos locais antigos para os novos locais. Para fazer isso, determine onde a versão mais recente armazena cada configuração, usando o processo descrito em Como determinar onde cada configuração está armazenada. Depois de criar o mapeamento, aplique as configurações ao novo local no computador de destino usando o elemento <locationModify> e as funções auxiliares RelativeMove e ExactMove.

Caso 2: o computador de destino já contém configurações para o aplicativo.

Convém migrar as configurações depois de instalar o aplicativo, mas antes de o usuário executá-lo pela primeira vez. Esse processo é recomendável, pois garante que não haverá configurações no computador de destino quando você migrar suas configurações. Se for necessário instalar o aplicativo antes da migração, você precisará excluir todas as configurações existentes usando o elemento <destinationCleanup>. Se, por algum motivo, você quiser preservar as configurações que estão no computador de destino, poderá usar o elemento <merge> e a função auxiliar DestinationPriority.

Caso 3: o aplicativo substitui configurações ao ser instalado.

Convém migrar as configurações depois de instalar o aplicativo, mas antes de o usuário executá-lo pela primeira vez. Esse processo é recomendável, pois garante que não haverá configurações no computador de destino quando você migrar suas configurações. Além disso, quando alguns aplicativos são instalados, eles substituem as configurações existentes que estão no computador. Nesse cenário, se você tiver migrado os dados antes de instalar o aplicativo, suas configurações personalizadas serão substituídas. Isso é comum para aplicativos que armazenam configurações em locais fora do perfil do usuário (em geral, essas configurações se aplicam a todos os usuários). Essas configurações universais são, às vezes, substituídas por valores padrão quando um aplicativo é instalado. Para evitar isso, é necessário instalar esses aplicativos antes de migrar os arquivos e as configurações para o computador de destino. Por padrão, com a USMT, os dados do computador de origem substituem os dados já existentes no mesmo local do computador de destino.

Etapa 4: crie o componente XML de migração para o aplicativo.

Depois de concluir as etapas de 1 a 3, você precisará criar um arquivo .xml de migração personalizado capaz de migrar o aplicativo com base nas informações obtidas. É possível usar o arquivo MigApp.xml como modelo, pois ele contém exemplos de muitos dos conceitos discutidos neste tópico. Consulte também Exemplos de XML personalizados para conhecer outro arquivo .xml de amostra.

Dica

Nós recomendamos que você crie um arquivo .xml separado em vez de adicionar seu script ao arquivo MigApp.xml. A razão disso é que o arquivo MigApp.xml é muito grande e difícil de se ler e editar. Se você reinstalar a USMT por algum motivo, o arquivo MigApp.xml será substituído pela versão padrão do arquivo, e você perderá a sua versão personalizada.

Importante

Alguns aplicativos armazenam no perfil do usuário informações que não devem ser migradas (por exemplo, caminhos de instalação de aplicativo, nome do computador, etc.). Lembre-se de excluir esses arquivos e chaves do Registro da migração.

Seu script deve fazer o seguinte:

  1. Verificar se o aplicativo com a versão correta está instalado:

    • Procurando a chave de desinstalação da instalação em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall usando a função auxiliar DoesObjectExist.

    • Verificando a versão correta do arquivo executável do aplicativo com o uso da função auxiliar DoesFileVersionMatch.

  2. Se a versão correta do aplicativo estiver instalada, verifique se cada configuração foi migrada para o local apropriado no computador de destino.

    • Se as versões dos aplicativos forem idênticas no computador de origem e no computador de destino, migre cada configurando usando os elementos <include> e <exclude>.

    • Se a versão do aplicativo no computador de destino for mais recente que aquela no computador de origem, e o aplicativo não puder importar as configurações, seu script deverá 1) adicionar o conjunto de arquivos que acionam a importação usando o elemento <addObjects> ou 2) criar um mapeamento que aplique as configurações antigas ao local correto no computador de destino usando o elemento <locationModify> e as funções auxiliares RelativeMove e ExactMove.

    • Se for necessário instalar o aplicativo antes de migrar as configurações, exclua todas as configurações que já estejam no computador de destino usando o elemento <destinationCleanup>.

Para saber mais sobre os elementos .xml e as funções auxiliares, veja Biblioteca de elementos XML.

Etapa 5: teste a migração das configurações do aplicativo.

Em um computador de teste, instale o sistema operacional que será instalado nos computadores de destino. Por exemplo, se estiver planejando migrar do Windows® 7 para o Windows 8, instale o Windows 8 e o aplicativo. Em seguida, execute LoadState no computador de teste e verifique se todas as configurações foram migradas. Faça correções, se necessário, e repita o processo até que todas as configurações necessárias sejam migradas corretamente.

Para agilizar o tempo necessário para coletar e migrar os dados, você pode migrar apenas um usuário de cada vez e excluir todos os outros componentes da migração, com exceção do aplicativo que está sendo testado. Para especificar apenas o Usuário1 na migração, digite: /ue:*\* /ui:user1. Para saber mais, veja Excluir arquivos e configurações e as opções de Usuário no tópico Sintaxe de ScanState. Para solucionar um problema, verifique o log de andamento e os logs de ScanState e LoadState contendo avisos e erros que podem apontar para problemas com a migração.

Consulte também

Outros Recursos

Referência XML da USMT
Conflitos e precedência
Biblioteca de elementos XML
Arquivos de log