Migrar configurações de aplicativos
Um ficheiro de.xml personalizado pode ser criado para migrar definições de aplicações de linha de negócio específicas ou para alterar o comportamento de migração predefinido da Ferramenta de Migração de Estado do Utilizador (USMT). Para que ScanState e LoadState utilizem este ficheiro, o ficheiro de.xml personalizado tem de ser especificado em ambas as linhas de comandos.
Este artigo define como criar uma migração personalizada .xml ficheiro que migra as definições de uma aplicação que não é migrada por predefinição com MigApp.xml
. As definições devem ser migradas após a instalação da aplicação, mas antes de o utilizador executar a aplicação pela primeira vez.
Este artigo não contém informações sobre como migrar aplicações que armazenam definições num arquivo específico da aplicação, apenas as aplicações que armazenam as informações em ficheiros ou no registo. Também não contém informações sobre como migrar os dados que os utilizadores criam com a aplicação. Por exemplo, se a aplicação criar .doc ficheiros com um modelo específico, este artigo não aborda como migrar os ficheiros e modelos.doc.
Antes de começar
Deve ser identificado um computador de teste que contenha o sistema operativo dos computadores de origem. O computador de teste também deve ter as aplicações cujas definições têm de ser migradas. Por exemplo, se migrar de Windows 10 para Windows 11, instale Windows 10 no computador de teste e, em seguida, instale as aplicações.
Passo 1: verifique se a aplicação está instalada no computador de origem e se é a mesma versão da versão a ser instalada no computador de destino
Antes de a USMT migrar as definições, marcar se a aplicação está instalada no computador de origem e se é a versão correta. Se a aplicação não estiver instalada no computador de origem, a USMT continuará a gastar tempo a procurar as definições da aplicação. Mais importante ainda, se o USMT recolher definições para uma aplicação que não está instalada, poderá migrar as definições que fazem com que o computador de destino funcione incorretamente. Determine também se existe mais do que uma versão da aplicação porque a nova versão pode armazenar as definições numa localização diferente. As versões de aplicações sem correspondência podem originar resultados inesperados no computador de destino.
Existem várias formas de detetar se uma aplicação está instalada. A melhor prática é marcar para uma chave de desinstalação de aplicações no registo. Em seguida, o computador pode ser procurado pelo ficheiro executável que instalou a aplicação. É importante marcar para ambos os itens, porque, por vezes, versões diferentes da mesma aplicação partilham a mesma chave de desinstalação. Mesmo que a chave esteja lá, pode corresponder a uma versão diferente da aplicação pretendida.
Verificar a existência de uma chave de desinstalação de aplicações no registo
Quando muitas aplicações são instaladas, especialmente as instaladas com a tecnologia Microsoft Windows Installer, é criada uma chave de desinstalação de aplicações em:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Por exemplo, quando o Adobe Acrobat Reader 7 é instalado, cria uma chave com o nome:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \{AC76BA86-7AD7-1033-7B44-A70000000000}
Por conseguinte, se um computador contiver esta chave, o Adobe Acrobat Reader 7 é instalado no computador. A existência de uma chave de registo pode ser verificada com a função auxiliar DoesObjectExist
.
A chave de registo Desinstalar para uma determinada aplicação pode ser encontrada na seguinte chave de registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Para localizar a chave Desinstalar de uma aplicação específica, procure um dos seguintes itens na chave de registo Desinstalar :
- Nome da aplicação.
- Nome do ficheiro executável da aplicação.
- Nome da empresa que faz a aplicação.
Para procurar no registo, utilize o registo Editor Regedit.exe
.
Regedit.exe
está localizado no caminho armazenado em %SystemRoot%
, normalmente C:\Windows
.
Verificar o sistema de ficheiros do ficheiro executável da aplicação
Os binários da aplicação do executável que instalou a aplicação também devem ser verificados. Para marcar para binários de aplicações, determine onde a aplicação está instalada e qual é o nome do executável. A maioria das aplicações armazena a localização de instalação dos binários da aplicação no registo. O registo deve ser procurado num dos seguintes itens até ser encontrado o valor do registo que contém o caminho de instalação:
- O nome da aplicação.
- O nome do executável da aplicação.
- O nome da empresa que faz a aplicação.
Assim que o caminho para o executável da aplicação for determinado, a DoesFileVersionMatch
função auxiliar pode ser utilizada para marcar para a versão correta do executável da aplicação. Para obter um exemplo de como utilizar a DoesFileVersionMatch
função auxiliar, consulte a secção Windows Live™ Messenger do MigApp.xml
ficheiro.
Passo 2: identificar definições para recolher e determinar onde cada definição é armazenada no computador
Em seguida, percorra a interface de utilizador e faça uma lista de todas as definições disponíveis. A lista pode ser reduzida se existirem definições que não precisam de ser migradas. Para determinar onde cada definição é armazenada, altere a definição. À medida que a definição é alterada, monitorize a atividade no registo e no sistema de ficheiros através de uma ferramenta como o Monitor de Processos. Os ficheiros binários e as definições de registo que são criados quando a aplicação é instalada não precisam de ser migradas. Quando a aplicação é reinstalada no computador de destino, recria essas definições. Apenas as definições personalizadas têm de ser migradas.
Como determinar onde cada definição é armazenada
Transfira uma ferramenta de monitorização de ficheiros e registos, como o Monitor de Processos (Procmon), a partir do Web site Sysinternals.
Encerre o maior número possível de aplicações para limitar a atividade do registo e do sistema de ficheiros no computador.
Filtre o resultado das ferramentas para que apenas apresente as alterações que estão a ser feitas pela aplicação.
Observação
A maioria das aplicações armazena as definições no perfil de utilizador. Ou seja, as definições armazenadas no sistema de ficheiros estão no
%UserProfile%
diretório e as definições armazenadas no registo estão sob oHKEY_CURRENT_USER
ramo de registo. Para estas aplicações, a saída das ferramentas de monitorização de ficheiros e registos pode ser filtrada para mostrar atividade apenas nestas localizações. Esta filtragem reduz consideravelmente a quantidade de saída que tem de ser examinada.Inicie as ferramentas de monitorização, altere uma definição e procure escritas no registo e no sistema de ficheiros que ocorreram quando a definição foi alterada. Certifique-se de que as alterações efetuadas têm efeito. Por exemplo, se alterar uma definição no Microsoft Word ao selecionar uma caixa de marcar na caixa de diálogo Opções, a alteração normalmente não entrará em vigor até que a caixa de diálogo seja fechada ao selecionar OK.
Quando a definição for alterada, tenha em atenção as alterações ao sistema de ficheiros e ao registo. Pode haver mais do que um ficheiro ou valores de registo para cada definição. O conjunto mínimo de alterações de ficheiros e registos necessários para alterar esta definição deve ser identificado. Este conjunto de ficheiros e chaves de registo é o que precisa de ser migrado para migrar a definição.
Observação
Alterar uma definição de aplicação leva invariavelmente a escrever em chaves de registo. Se possível, filtre a saída da ferramenta de monitorização de ficheiros e registos para apresentar apenas escritas em ficheiros e chaves/valores de registo.
Passo 3: identificar como aplicar as definições recolhidas
Se a versão da aplicação no computador de origem for a mesma do computador de destino, os ficheiros recolhidos e as chaves de registo não precisam de ser modificados. Por predefinição, o USMT migra os ficheiros e as chaves de registo da localização de origem para a localização correspondente no computador de destino. Por exemplo, se um ficheiro tiver sido recolhido da C:\Users\User1\Documents
pasta e o diretório de perfil no computador de destino estiver localizado em D:\Users\User1
, a USMT migra automaticamente o ficheiro para D:\Users\User1\Documents
. No entanto, a localização de algumas definições poderá ter de ser modificada nos três casos seguintes:
Caso 1: a versão da aplicação no computador de destino é mais recente do que a do computador de origem
Neste caso, a versão mais recente da aplicação poderá conseguir ler as definições do computador de origem sem modificação. Ou seja, os dados recolhidos de uma versão mais antiga da aplicação são, por vezes, compatíveis com a versão mais recente da aplicação. No entanto, a localização da definição poderá ter de ser modificada se uma das seguintes condições for verdadeira:
A versão mais recente da aplicação tem a capacidade de importar definições de uma versão mais antiga. Normalmente, este mapeamento ocorre na primeira vez que um utilizador executa a versão mais recente após a migração das definições. Algumas aplicações importam definições automaticamente após a migração das definições. No entanto, outras aplicações só importam definições se a aplicação tiver sido atualizada a partir da versão mais antiga. Quando a aplicação é atualizada, é instalado um conjunto de ficheiros e/ou chaves de registo que indica que a versão mais antiga da aplicação foi instalada anteriormente. Se for executada uma limpo instalação da versão mais recente, o computador não contém estes ficheiros e chaves de registo. Se os ficheiros e as chaves de registo não estiverem presentes, o mapeamento não ocorre. Para enganar a versão mais recente da aplicação para iniciar este processo de importação, o script de migração poderá ter de criar estes ficheiros e/ou chaves de registo no computador de destino.
Para identificar que ficheiros e/ou chaves/valores de registo têm de ser criados para que a importação funcione:
- Atualize a versão mais antiga da aplicação para a mais recente.
- Monitorize as alterações efetuadas ao sistema de ficheiros e ao registo com o mesmo processo descrito em Como determinar onde cada definição é armazenada.
Assim que o conjunto de ficheiros de que o computador precisa for conhecido, o <elemento addObjects> pode ser utilizado para os adicionar ao computador de destino.
A versão mais recente da aplicação não consegue ler as definições do computador de origem e também não consegue importar as definições para o novo formato. Neste caso, crie um mapeamento para cada definição a partir das localizações antigas para as novas localizações. Para criar o mapeamento, determine onde a versão mais recente armazena cada definição com o processo descrito em Como determinar onde cada definição é armazenada. Depois de criar o mapeamento, aplique as definições à nova localização no computador de destino com o <elemento locationModify> e as
RelativeMove
funções auxiliares eExactMove
.
Caso 2: o computador de destino já contém definições para a aplicação
A Microsoft recomenda a migração das definições após a instalação da aplicação, mas antes de o utilizador executar a aplicação pela primeira vez. A Microsoft recomenda este processo porque este processo garante que não existem definições no computador de destino quando as definições são migradas. Se a aplicação tiver de ser instalada antes da migração, quaisquer definições existentes devem ser eliminadas com o <elemento destinationCleanup> . Se, por algum motivo, as definições tiverem de ser preservadas no computador de destino, pode ser utilizada a<> função auxiliar e DestinationPriority
elemento de intercalação.
Caso 3: a aplicação substitui as definições quando instalada
A Microsoft recomenda a migração das definições após a instalação da aplicação, mas antes de o utilizador executar a aplicação pela primeira vez. A Microsoft recomenda este processo porque este processo garante que não existem definições no computador de destino quando as definições são migradas. Além disso, quando algumas aplicações são instaladas, substituem quaisquer definições existentes que estejam no computador. Neste cenário, se os dados fossem migrados antes da instalação da aplicação, as definições personalizadas seriam substituídas. Este cenário é comum para aplicações que armazenam definições em localizações fora do perfil de utilizador (normalmente, estas definições são definições que se aplicam a todos os utilizadores). Por vezes, estas definições universais são substituídas quando uma aplicação é instalada e são substituídas por valores predefinidos. Para evitar este problema, estas aplicações têm de ser instaladas antes de migrar os ficheiros e definições para o computador de destino. Por predefinição, com a USMT, os dados do computador de origem substituem os dados que já existem na mesma localização no computador de destino.
Passo 4: Criar o componente XML de migração para a aplicação
Depois de concluir os passos 1 a 3, crie um ficheiro de.xml de migração personalizado que migra a aplicação com base nas informações atualizadas. O MigApp.xml
ficheiro pode ser utilizado como modelo porque contém exemplos de muitos dos conceitos abordados neste artigo. Veja também Exemplos XML Personalizados para outro ficheiro de.xml de exemplo.
Observação
A Microsoft recomenda a criação de um ficheiro de.xml separado em vez de adicionar um script ao MigApp.xml
ficheiro.
Recomenda-se um ficheiro de.xml separado porque o MigApp.xml
ficheiro é um ficheiro grande e é difícil de ler e editar. Além disso, se o USMT for reinstalado, o MigApp.xml
ficheiro será substituído pela versão predefinida do ficheiro e a versão personalizada será perdida.
Importante
Algumas aplicações armazenam informações no perfil de utilizador, como caminhos de instalação de aplicações, o nome do computador, etc. As informações da aplicação armazenadas no perfil de utilizador não devem ser migradas e devem ser excluídas da migração.
O script deve efetuar as seguintes ações:
Verifique se está instalada a versão correta da aplicação:
Procure a chave
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
de desinstalação da instalação em com aDoesObjectExist
função auxiliar.Verifique a versão correta do ficheiro executável da aplicação com a função auxiliar
DoesFileVersionMatch
.
Se a versão correta da aplicação estiver instalada, certifique-se de que cada definição é migrada para a localização adequada no computador de destino.
Se as versões das aplicações forem as mesmas nos computadores de origem e de destino, migre cada definição com os <elementos de inclusão> e <exclusão> .
Se a versão da aplicação no computador de destino for mais recente do que a do computador de origem e a aplicação não conseguir importar as definições, o script deve:
- Adicione o conjunto de ficheiros que acionam a importação com o <elemento addObjects> .
- Crie um mapeamento que aplique as definições antigas à localização correta no computador de destino com o <elemento locationModify> e as
RelativeMove
funções auxiliares eExactMove
.
Se a aplicação tiver de ser instalada antes de migrar as definições, elimine as definições que já se encontrem no computador de destino com o <elemento destinationCleanup> .
Para obter informações sobre os elementos .xml e funções auxiliares, veja Biblioteca de Elementos XML.
Passo 5: Testar a migração das definições da aplicação
Num computador de teste, instale o sistema operativo que será instalado nos computadores de destino. Por exemplo, se planear migrar de Windows 10 para Windows 11, instale Windows 11 e, em seguida, instale a aplicação no Windows 11. Em seguida, execute LoadState no computador de teste e verifique se todas as definições migram. Efetue correções se necessário e repita o processo até que todas as definições necessárias sejam migradas corretamente.
Para acelerar o tempo necessário para recolher e migrar os dados, apenas um utilizador pode ser migrado de cada vez. Todos os outros componentes podem ser excluídos da migração, exceto a aplicação que está a ser testada. Para especificar apenas o Utilizador1 na migração, introduza:
/ue:*\* /ui:user1
Para obter mais informações, veja o artigo Excluir ficheiros e definições e a secção Opções do utilizador no artigo Sintaxe ScanState . Para resolver um problema, marcar o registo de progresso, o registo ScanState e o registo LoadState. Os registos contêm avisos e erros que podem apontar para problemas com a migração.