Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve os elementos XML e as funções auxiliares que podem ser empregadas para criar arquivos de.xml de migração a serem usados com a USMT (Ferramenta de Migração de Estado do Usuário). Este artigo pressupõe um conhecimento básico de XML.
Além dos elementos XML e das funções auxiliares, este artigo:
- Descreve como especificar locais codificados e padrões de locais.
- Funções que são apenas para uso interno da USMT.
- As marcas de versão que podem ser usadas com funções auxiliares.
Elementos e funções auxiliares
A tabela a seguir descreve os elementos XML e as funções auxiliares que podem ser usadas com a USMT.
<addObjects>
O <elemento addObjects> emula a existência de um ou mais objetos no computador de origem. Os elementos de objeto> filho< fornecem os detalhes dos objetos emulados. Se o conteúdo for um <elemento de script> , o resultado da invocação será uma matriz de objetos.
Número de ocorrências: ilimitado
Elementos pai:<regras>
Elementos filho necessários:<objeto> Além disso, <o local> e <o atributo> devem ser especificados como elementos filho desse <elemento de objeto> .
Elementos filho opcionais:<condições>, <condição>, <script>
Sintaxe:
<addObjects>
</addObjects>
O exemplo a MigApp.xml seguir é do arquivo:
<addObjects>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [UpgradeVersion]</location>
<attributes>DWORD</attributes>
<bytes>0B000000</bytes>
</object>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [Lang]</location>
<attributes>DWORD</attributes>
<bytes>00000000</bytes>
</object>
</addObjects>
<do sistema>
O <elemento attributes> define os atributos de uma chave ou arquivo do Registro.
Sintaxe:
<attributes>Content</attributes>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| Conteúdo | Sim | O conteúdo depende do tipo de objeto especificado.
|
O exemplo a MigApp.xml seguir é do arquivo:
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [Lang]</location>
<attributes>DWORD</attributes>
<bytes>00000000</bytes>
</object>
<bytes>
O <elemento bytes> só pode ser especificado para arquivos porque, se <o local> corresponder a uma chave do Registro ou a um diretório, os< bytes> serão ignorados.
Número de ocorrências: zero ou uma
Elementos pai:<objeto>
Elementos filho: nenhum
Sintaxe:
<bytes string="Yes|No" expand="Yes|No">Content</bytes>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| string | Não, o padrão é Não | Determina se o Conteúdo deve ser interpretado como uma cadeia de caracteres ou como bytes. |
| expand | Não (padrão = Sim | Quando o parâmetro expand é Yes, o <conteúdo do elemento bytes> é primeiro expandido no contexto do computador de origem e, em seguida, interpretado. |
| Conteúdo | Sim | Depende do valor da cadeia de caracteres.
|
O exemplo a MigApp.xml seguir é do arquivo:
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [Lang]</location>
<attributes>DWORD</attributes>
<bytes>00000000</bytes>
</object>
<commandLine>
O <elemento commandLine> pode ser usado para iniciar ou parar um serviço ou aplicativo antes ou depois de executar as ferramentas ScanState e LoadState .
Número de ocorrências: ilimitado
Elementos pai:<externalProcess>
Elementos filho: nenhum
Sintaxe:
<commandLine>CommandLineString</commandLine>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| CommandLineString | Sim | Uma linha de comando válida. |
<do cluster>
O <elemento de componente> é necessário em um arquivo de.xml personalizado. Esse elemento define a construção mais básica de um arquivo de.xml de migração. Por exemplo, no arquivo, o Microsoft Office 2016 é um componente que contém outro componente, o MigApp.xmlMicrosoft Office Access 2016. Os elementos filho podem ser usados para definir o componente.
Um componente pode ser aninhado dentro de outro componente; ou seja, o <elemento component> pode ser um filho do <elemento role> dentro do <elemento component> em dois casos:
- Quando o elemento de componente> pai< é um contêiner
- Se o elemento de componente> filho< tiver a mesma função que o elemento de componente> pai<.
Número de ocorrências: Ilimitado
Elementos pai:<migração>, <função>
Elementos filho necessários:<role>, <displayName>
Elementos filho opcionais:<fabricante>, <versão>, <descrição>, <caminhos>, <ícone>, <ambiente>, <extensões>
Sintaxe:
<component type="System|Application|Device|Documents" context="User|System|UserAndSystem" defaultSupported="TRUE|FALSE|YES|NO"
hidden="Yes|No">
</component>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| tipo | Sim | Os itens a seguir podem ser usados para agrupar configurações e definir o tipo do componente.
|
| contexto | Não Padrão = UserAndSystem |
Define o escopo deste parâmetro; Ou seja, se esse componente deve ser processado no contexto do usuário específico, em todo o sistema operacional ou em ambos. O maior escopo possível é definido pelo <elemento componente> . Por exemplo, se um <elemento de componente> tiver um contexto de User e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> agirá como se tivesse um contexto de User. Se um <elemento de regras> tiver um contexto de System, ele agirá como se o <elemento de regras> não estivesse lá.
|
| defaultSupported | Não (padrão = TRUE) |
Pode ser VERDADEIRO,FALSO,SIM ou NÃO. Se esse parâmetro for FALSO (ou NO), o componente não será migrado, a menos que haja um componente equivalente no computador de destino. Quando type="System" e defaultSupported="FALSE", as configurações não são migradas, a menos que haja um componente equivalente nos arquivos .xml especificados na LoadState.exe linha de comando. Por exemplo, o arquivo padrão MigSys.xml contém componentes com type="System" e defaultSupported="FALSE". Se esse arquivo for especificado na linha de ScanState.exe comando, ele também deverá ser especificado na LoadState.exe linha de comando para que as configurações sejam migradas. O arquivo deve ser especificado em ambas as linhas de comando porque a ferramenta LoadState deve detectar um componente equivalente. Ou seja, o componente deve ter a mesma urlid de migração do arquivo .xml e um nome de exibição idêntico ou a ferramenta LoadState não migra essas configurações do repositório. Essa configuração é útil porque um repositório pode ser usado para computadores de destino que sejam iguais ou versões diferentes do Windows do computador de origem. |
| oculto | Esse parâmetro é apenas para uso interno da USMT. |
Por exemplo, consulte qualquer um dos arquivos de.xml de migração padrão.
<Condição>
Embora o <elemento condition> nos elementos detect>, objectSet e addObjects ainda tenha suporte, a Microsoft recomenda não usar mais o elemento condition porque ele pode ser preterido em versões futuras da USMT.<<><><> Se o <elemento de condição> for preterido, será necessário reescrever todos os scripts que usam o <elemento de condição> . Em vez disso, se uma condição precisar ser usada nos elementos objectSet> e addObjects, a< Microsoft recomenda usar o elemento conditions> mais poderoso<.>< O <elemento conditions> permite a formulação de instruções booleanas complexas.
O <elemento de condição> tem um resultado booliano. Esse elemento pode ser usado para especificar as condições nas quais o elemento pai é avaliado. Se qualquer uma das condições atuais retornar FALSE, o elemento pai não será avaliado.
Número de ocorrências: ilimitado.
Elementos pai:<conditions>, <detect>, <objectSet>, <addObjects>
Elementos filho: nenhum
Funções auxiliares: As seguintes <funções de condição> podem ser usadas com este elemento:
DoesOSMatch, ,DoesObjectExistIsOSEarlierThanDoesStringContentContainIsSameObjectIsSameContentIsOSLaterThanIsFileVersionAboveIsSameStringContentDoesFileVersionMatchIsFileVersionBelowIsSystemContextDoesStringContentEqualIsNative64Bit()
Sintaxe:
<condition negation="Yes|No">ScriptName</condition>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| negação | Não Padrão = Não |
"Sim" inverte o valor Verdadeiro/Falso da condição. |
| ScriptName | Sim | Um script definido nesta seção de migração. |
Por exemplo, no exemplo de código a seguir, os elementos de <condição>, A e B, são unidos pelo operador AND porque estão em seções de condições> separadas<:
<detection>
<conditions>
<condition>A</condition>
</conditions>
<conditions operation="AND">
<condition>B</condition>
</conditions>
</detection>
No entanto, na amostra de código a seguir, os <elementos de condição> , A e B, são unidos pelo operador OR porque estão na mesma <seção de condições> .
<detection>
<conditions>
<condition>A</condition>
<condition>B</condition>
</conditions>
</detection>
<funções de condição>
As <funções de condição> retornam um valor booliano. Esses elementos podem ser usados em <condições addObjects> .
Funções de versão do sistema operacional
DoesOSMatch
Todas as correspondências não diferenciam maiúsculas de minúsculas.
Sintaxe:
DoesOSMatch("OSType","OSVersion")Configuração Obrigatório? Valor Tipo de sistema operacional Sim O único valor válido para essa configuração é NT. No entanto, essa configuração deve ser definida para que as funções de <condição> funcionem corretamente. OSVersion Sim A versão principal, a versão secundária, o número de compilação e a versão corrigida do disquete de serviço separados por pontos. Por exemplo, 5.0.2600.Service Pack 1. A especificação parcial da versão também pode ser especificada com um padrão como5.0.*.Por exemplo:
<condition>MigXmlHelper.DoesOSMatch("NT","\*")</condition>IsNative64Bit
A função IsNative64Bit retornará TRUE se o processo de migração estiver sendo executado como um processo nativo de 64 bits; ou seja, um processo em execução em um sistema de 64 bits sem Windows no Windows (WOW). Caso contrário, ele retornará FALSE.
IsOSLaterThan
Todas as comparações não diferenciam maiúsculas de minúsculas.
Sintaxe:
IsOSLaterThan("OSType","OSVersion")Configuração Obrigatório? Valor Tipo de sistema operacional Sim Pode ser 9x ou NT. Se OSType não corresponder ao tipo do sistema operacional atual, ele retornará FALSE. Por exemplo, se o sistema operacional atual for baseado em Windows NT e OSType for "9x", o resultado será FALSE. OSVersion Sim A versão principal, a versão secundária, o número da compilação e a versão corrigida do disquete de serviço separados por pontos. Por exemplo, 5.0.2600.Service Pack 1. A especificação parcial da versão também pode ser especificada, mas nenhum padrão é permitido, como5.0.
A função IsOSLaterThan retornará TRUE se o sistema operacional atual for posterior ou igual a OSVersion.Por exemplo:
<condition negation="Yes">MigXmlHelper.IsOSLaterThan("NT","6.0")</condition>IsOSEarlierThan
Todas as comparações não diferenciam maiúsculas de minúsculas.
Sintaxe:
IsOSEarlierThan("OSType","OSVersion")Configuração Obrigatório? Valor Tipo de sistema operacional Sim Pode ser 9x ou NT. Se OSType não corresponder ao tipo do sistema operacional atual, ele retornará FALSE. Por exemplo, se o sistema operacional atual for baseado em Windows NT e OSType for "9x", o resultado será FALSE. OSVersion Sim A versão principal, a versão secundária, o número da compilação e a versão corrigida do disquete de serviço separados por pontos. Por exemplo, 5.0.2600.Service Pack 1. A especificação parcial da versão também pode ser especificada, mas nenhum padrão é permitido, como5.0.
A função IsOSEarlierThan retornará TRUE se o sistema operacional atual for anterior ao OSVersion.
Funções de conteúdo de objeto
DoesObjectExist
A função DoesObjectExist retornará VERDADEIRO se existir algum objeto que corresponda ao padrão de localização. Caso contrário, ele retornará FALSE. O padrão de localização é expandido antes de tentar a enumeração.
Sintaxe:
DoesObjectExist("ObjectType","EncodedLocationPattern")Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser arquivo ou registro. EncodedLocationPattern Sim O padrão de localização. Variáveis de ambiente são permitidas. Para obter um exemplo desse elemento, consulte o
MigApp.xmlarquivo.DoesFileVersionMatch
O padrão marcar não diferencia maiúsculas de minúsculas.
Sintaxe:
DoesFileVersionMatch("EncodedFileLocation","VersionTag","VersionValue")Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do arquivo que está marcado. Variáveis de ambiente são permitidas. Marca de versão Sim O valor da marca de versão que está verificado. VersionValue Sim Um padrão de cadeia de caracteres. Por exemplo, "Microsoft*". Por exemplo:
<condition>MigXmlHelper.DoesFileVersionMatch("%MSNMessengerInstPath%\\msnmsgr.exe","ProductVersion","6.\*")</condition> <condition>MigXmlHelper.DoesFileVersionMatch("%MSNMessengerInstPath%\\msnmsgr.exe","ProductVersion","7.\*")</condition>IsFileVersionAbove
A função IsFileVersionAbove retornará VERDADEIRO se a versão do arquivo for maior que VersionValue.
Sintaxe:
IsFileVersionAbove("EncodedFileLocation","VersionTag","VersionValue")Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do arquivo que está marcado. Variáveis de ambiente são permitidas. Marca de versão Sim O valor da marca de versão que está verificado. VersionValue Sim O valor com o qual comparar. Um padrão não pode ser especificado. IsFileVersionBelow
Sintaxe:
IsFileVersionBelow("EncodedFileLocation","VersionTag","VersionValue")Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do arquivo que está marcado. Variáveis de ambiente são permitidas. Marca de versão Sim O valor da marca de versão que está verificado. VersionValue Sim O valor com o qual comparar. Um padrão não pode ser especificado. IsSystemContext
A função IsSystemContext retornará VERDADEIRO se o contexto atual for "System". Caso contrário, ele retornará FALSE.
Sintaxe:
IsSystemContext()DoesStringContentEqual
A função DoesStringContentEqual retornará VERDADEIRO se a representação de cadeia de caracteres do objeto fornecido for idêntica a
StringContent.Sintaxe:
DoesStringContentEqual("ObjectType","EncodedLocation","StringContent")Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser arquivo ou registro. EncodedLocationPattern Sim O local codificado do objeto examinado. Variáveis de ambiente podem ser especificadas. StringContent Sim A cadeia de caracteres em relação à qual é verificada. Por exemplo:
<condition negation="Yes">MigXmlHelper.DoesStringContentEqual("File","%USERNAME%","")</condition>DoesStringContentContain
A função DoesStringContentContain retornará TRUE se houver pelo menos uma ocorrência de StrToFind na representação de cadeia de caracteres do objeto.
Sintaxe:
DoesStringContentContain("ObjectType","EncodedLocation","StrToFind")Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser arquivo ou registro. EncodedLocationPattern Sim O local codificado do objeto examinado. Variáveis de ambiente podem ser especificadas. StrToFind Sim Uma cadeia de caracteres que é pesquisada dentro do conteúdo de um determinado objeto. IsSameObject
A função IsSameObject retornará TRUE se os locais codificados determinados resolverem para o mesmo objeto físico. Caso contrário, ele retornará FALSE.
Sintaxe:
IsSameObject("ObjectType","EncodedLocation1","EncodedLocation2")Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser arquivo ou registro. EncodedLocation1 Sim O local codificado para o primeiro objeto. Variáveis de ambiente podem ser especificadas. EncodedLocation2 Sim O local codificado para o segundo objeto. Variáveis de ambiente podem ser especificadas. Por exemplo:
<objectSet> <condition negation="Yes">MigXmlHelper.IsSameObject("File","%CSIDL_FAVORITES%","%CSIDL_COMMON_FAVORITES%")</condition> <pattern type="File">%CSIDL_FAVORITES%\* [*]</pattern> </objectSet>IsSameContent
A função IsSameContent retornará TRUE se os objetos fornecidos tiverem o mesmo conteúdo. Caso contrário, ele retornará FALSE. O conteúdo é comparado byte por byte.
Sintaxe:
IsSameContent("ObjectType1","EncodedLocation1","ObjectType2","EncodedLocation2")Configuração Obrigatório? Valor ObjectType1 Sim Define o tipo do primeiro objeto. Pode ser arquivo ou registro. EncodedLocation1 Sim O local codificado para o primeiro objeto. Variáveis de ambiente podem ser especificadas. ObjectType2 Sim Define o tipo do segundo objeto. Pode ser arquivo ou registro. EncodedLocation2 Sim O local codificado para o segundo objeto. Variáveis de ambiente podem ser especificadas. IsSameStringContent
A função IsSameStringContent retornará TRUE se os objetos fornecidos tiverem o mesmo conteúdo. Caso contrário, ele retornará FALSE. O conteúdo é interpretado como uma cadeia de caracteres.
Sintaxe:
IsSameStringContent("ObjectType1","EncodedLocation1","ObjectType2","EncodedLocation2")Configuração Obrigatório? Valor ObjectType1 Sim Define o tipo do primeiro objeto. Pode ser arquivo ou registro. EncodedLocation1 Sim O local codificado para o primeiro objeto. Variáveis de ambiente podem ser especificadas. ObjectType2 Sim Define o tipo do segundo objeto. Pode ser arquivo ou registro. EncodedLocation2 Sim O local codificado para o segundo objeto. Variáveis de ambiente podem ser especificadas.
<Condições>
O <elemento conditions> retorna um resultado booleano que é usado para especificar as condições nas quais o elemento pai é avaliado. A USMT avalia os elementos filho e, em seguida, une seus resultados usando os operadores AND ou OR de acordo com o parâmetro de operação.
Número de ocorrências: Ilimitado dentro de outro <elemento de condições> . Limitado a uma ocorrência em <detecção>, <regras>, <addObjects> e <objectSet>
Elementos pai:<condições>, <detecção>, <ambiente>, <regras>, <addObjects> e <objectSet>
Elementos filho:<condições>, <condição>
Sintaxe:
<conditions operation="AND|OR">
</conditions>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| Operação | Não, padrão = E | Define a operação booleana que é executada nos resultados obtidos dos elementos filho. |
O exemplo a MigApp.xml seguir é do arquivo:
<environment name="GlobalEnv">
<conditions>
<condition negation="Yes">MigXmlHelper.IsNative64Bit()</condition>
</conditions>
<variable name="HklmWowSoftware">
<text>HKLM\Software</text>
</variable>
</environment>
<conteúdo>
O <elemento de conteúdo> pode ser usado para especificar uma lista de padrões de objetos para obter um conjunto de objetos do computador de origem. Cada <objectSet> dentro de um <elemento de conteúdo> é avaliado. Para cada lista de padrão de objeto resultante, os objetos que correspondem a ela são enumerados e seu conteúdo é filtrado pelo parâmetro filter. A matriz de cadeia de caracteres resultante é a saída para o <elemento de conteúdo> . O script de filtro retorna uma matriz de locais. O elemento objectSet> pai< pode conter vários elementos de conteúdo> filho<.
Número de ocorrências: ilimitado
Elementos pai:<objectset>
Elementos filho:<objectSet>
Funções auxiliares: As seguintes <funções de conteúdo> podem ser usadas com este elemento:
ExtractSingleFile,ExtractMultipleFiles, eExtractDirectory.
Sintaxe:
<content filter="ScriptInvocation">
</content>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| filter | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de< inclusão>. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
<Funções de conteúdo>
As funções a seguir geram padrões do conteúdo de um objeto. Essas funções são chamadas para cada objeto que o elemento ObjectSet> pai< está enumerando.
ExtractSingleFile
Se o valor do Registro for um MULTI-SZ, somente o primeiro segmento será processado. O padrão retornado é o local codificado de um arquivo que deve existir no sistema. Se a especificação estiver correta no valor do Registro, mas o arquivo não existir, essa função retornará NULL.
Sintaxe:
ExtractSingleFile(Separators,PathHints)Configuração Obrigatório? Valor Separadores Sim Uma lista de possíveis separadores que podem seguir a especificação de arquivo neste nome de valor do Registro. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador será uma vírgula. NULL pode ser especificado. Dicas de caminho Sim Uma lista de caminhos extras, separados por dois-pontos ( ;), onde a função procura um arquivo que corresponda ao conteúdo atual. Por exemplo, se o conteúdo for "Notepad.exe" e o caminho for a variável de ambiente %Path%, a função localizaráNotepad.exe e%windir%retornará "c:\Windows [Notepad.exe]". NULL pode ser especificado.Por exemplo:
<content filter="MigXmlHelper.ExtractSingleFile(',','%system%')">e
<content filter="MigXmlHelper.ExtractSingleFile(NULL,'%CSIDL_COMMON_FONTS%')">ExtractMultipleFiles
A função ExtractMultipleFiles retorna vários padrões, um para cada arquivo encontrado no conteúdo de determinado valor do Registro. Se o valor do Registro for um MULTI-SZ, o separador MULTI-SZ será considerado um separador por padrão. portanto, para MULTI-SZ, o <argumento Separators> deve ser NULL.
Os padrões retornados são os locais codificados para arquivos que devem existir no computador de origem. Se a especificação estiver correta no valor do registro, mas o arquivo não existir, ele não será incluído na lista resultante.
Sintaxe:
ExtractMultipleFiles(Separators,PathHints)Configuração Obrigatório? Valor Separadores Sim Uma lista de possíveis separadores que podem seguir a especificação de arquivo neste nome de valor do Registro. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador será uma vírgula. Esse parâmetro deve ser NULL ao processar valores do Registro MULTI-SZ . Dicas de caminho Sim Uma lista de caminhos extras, separados por dois-pontos ( ;), onde a função procura um arquivo que corresponda ao conteúdo atual. Por exemplo, se o conteúdo for "Notepad.exe" e o caminho for a variável de ambiente %Path%, a função localizaráNotepad.exe e%windir%retornará "c:\Windows [Notepad.exe]". NULL pode ser especificado.ExtractDirectory
A função ExtractDirectory retorna um padrão que é o local codificado de um diretório que deve existir no computador de origem. Se a especificação estiver correta no valor do Registro, mas o diretório não existir, essa função retornará NULL. Se ele estiver processando um valor do Registro que seja MULTI-SZ, somente o primeiro segmento será processado.
Sintaxe:
ExtractDirectory(Separators,LevelsToTrim,PatternSuffix)Configuração Obrigatório? Valor Separadores Não Uma lista de possíveis separadores que podem seguir a especificação de arquivo neste nome de valor do Registro. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador será uma vírgula. NULL deve ser especificado ao processar valores de Registro MULTI-SZ . LevelsToTrim Sim O número de níveis a serem excluídos do final da especificação do diretório. Use essa função para extrair um diretório raiz quando houver um valor do Registro que aponta para dentro desse diretório raiz em um local conhecido. PatternSuffix Sim O padrão a ser adicionado à especificação do diretório. Por exemplo, * [*].Por exemplo:
<objectSet> <content filter='MigXmlHelper.ExtractDirectory (NULL, "1")'> <objectSet> <pattern type="Registry">%HklmWowSoftware%\Classes\Software\RealNetworks\Preferences\DT_Common []</pattern> </objectSet> </content> </objectSet>
<contentModify>
O <elemento contentModify> modifica o conteúdo de um objeto antes que o objeto seja gravado no computador de destino. Para cada <elemento contentModificar, pode haver vários elementos objectSet>>.< Esse elemento retorna o novo conteúdo do objeto que está sendo processado.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elementos filho necessários:<objectSet>
Funções auxiliares: As seguintes <funções contentModify> podem ser usadas com este elemento: ConvertToDWORD, ConvertToString, ConvertToBinary, KeepExisting, OffsetValue, SetValueByTable, MergeMultiSzContent e MergeDelimitedContent.
Sintaxe:
<contentModify script="ScriptInvocation">
</contentModify>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| script | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de inclusão. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
<Funções contentModify>
As funções a seguir alteram o conteúdo dos objetos à medida que eles são migrados. Essas funções são chamadas para cada objeto que o elemento ObjectSet> pai< está enumerando.
ConvertToDWORD
A função ConvertToDWORD converte o conteúdo dos valores do Registro que são enumerados pelo elemento ObjectSet> pai< em um DWORD. Por exemplo, ConvertToDWORD converte a cadeia de caracteres
"1"em DWORD0x00000001. Se a conversão falhar, o valor de DefaultValueOnError será aplicado.Sintaxe:
ConvertToDWORD(DefaultValueOnError)Configuração Obrigatório? Valor DefaultValueOnError Não O valor que é gravado no nome do valor se a conversão falhar. NULL pode ser especificado e 0será gravado se a conversão falhar.ConvertToString
A função ConvertToString converte o conteúdo dos valores do Registro que correspondem ao elemento ObjectSet> pai< em uma cadeia de caracteres. Por exemplo, ele converte o DWORD
0x00000001na cadeia de caracteres "1". Se a conversão falhar, o valor de DefaultValueOnError será aplicado.Sintaxe:
ConvertToString(DefaultValueOnError)Configuração Obrigatório? Valor DefaultValueOnError Não O valor que é gravado no nome do valor se a conversão falhar. NULL pode ser especificado e 0será gravado se a conversão falhar.Por exemplo:
<contentModify script="MigXmlHelper.ConvertToString('1')"> <objectSet> <pattern type="Registry">HKCU\Control Panel\Desktop [ScreenSaveUsePassword]</pattern> </objectSet> </contentModify>ConvertToBinary
A função ConvertToBinary converte o conteúdo dos valores do Registro que correspondem ao elemento ObjectSet> pai< em um tipo binário.
Sintaxe:
ConvertToBinary ()Valor Deslocamento
A função OffsetValue adiciona ou subtrai o valor do objeto migrado e grava o resultado de volta no valor do Registro no computador de destino. Por exemplo, se o objeto migrado for um DWORD com um valor de , e o valor for "-2", o valor do registro estará
12no computador de14destino.Sintaxe:
OffsetValue(Value)Configuração Obrigatório? Valor Valor Sim A representação de cadeia de caracteres de um valor numérico. Pode ser positivo ou negativo. Por exemplo, OffsetValue(2).SetValueByTable
A função SetValueByTable corresponde ao valor do computador de origem para a tabela de origem. Se o valor estiver presente, o valor equivalente na tabela de destino será aplicado. Se o valor não estiver lá ou se a tabela de destino não tiver nenhum valor equivalente, o DefaultValueOnError será aplicado.
Sintaxe:
SetValueByTable(SourceTable,DestinationTable,DefaultValueOnError)Configuração Obrigatório? Valor SourceTable Sim Uma lista de valores separados por vírgulas que são possíveis para os valores do Registro de origem. DestinationTable Não Uma lista de valores traduzidos separados por vírgulas. DefaultValueOnError Não O valor que será aplicado ao computador de destino, se houver - O valor do computador de origem não corresponde à SourceTable
- DestinationTable não tem valor equivalente.
Se DefaultValueOnError for NULL, o valor não será alterado no computador de destino.KeepExisting
A função KeepExisting pode ser usada quando há conflitos no computador de destino. Essa função mantém (não substitui) os atributos especificados para o objeto que está no computador de destino.
Sintaxe:
KeepExisting("OptionString","OptionString","OptionString",…)Configuração Obrigatório? Valor OptionString Sim OptionString pode ser Security, TimeFields ou FileAttrib:Letter. Um de cada tipo de OptionStrings pode ser especificado. Não especifique várias OptionStrings com o mesmo valor. Se várias OptionStrings com o mesmo valor forem especificadas, a opção mais à direita desse tipo será mantida. Por exemplo, não especifique ("FileAttrib:H", "FileAttrib:R") porque somente Read-only é avaliado. Em vez disso, especifique ("FileAttrib:HR") e os atributos Oculto e Somente leitura serão mantidos no computador de destino. - Segurança: Mantém o descritor de segurança do objeto de destino, se ele existir.
- TimeFields: Mantém os carimbos de data/hora do objeto de destino. Esse parâmetro é apenas para arquivos.
-
FileAttrib:<Letra>: Mantém o valor do atributo do objeto de destino, ATIVADO ou DESATIVADO, para o conjunto especificado de atributos de arquivo. Esse parâmetro é apenas para arquivos. Os itens a seguir não diferenciam maiúsculas de minúsculas, mas a USMT ignorará todos os valores inválidos, repetidos ou se houver um espaço após FileAttrib:. Qualquer combinação dos seguintes atributos pode ser especificada:
- A = Arquivo
- C = Compactado
- E = Criptografado
- H = Oculto
- i = Não indexado por conteúdo
- O = Offline
- R = Read-Only
- S = Sistema
- T = Temporário
MergeMultiSzContent
A função MergeMultiSzContent mescla o conteúdo MULTI-SZ dos valores do Registro que são enumerados pelo elemento ObjectSet> pai< com o conteúdo dos valores do Registro equivalentes que já existem no computador de destino.
InstructioneStringremova ou adicione conteúdo ao MULTI-SZ resultante. Os elementos duplicados são removidos.Sintaxe:
MergeMultiSzContent (Instruction,String,Instruction,String,…)Configuração Obrigatório? Valor Instrução Sim Pode ser um dos seguintes valores: - Adicionar. Adiciona a cadeia de caracteres correspondente ao MULTI-SZ resultante se ele ainda não estiver lá.
- Remover. Remove a cadeia de caracteres correspondente do MULTI-SZ resultante.
String Sim A cadeia de caracteres a ser adicionada ou removida. MergeDelimitedContent
A função MergeDelimitedContent mescla o conteúdo dos valores do Registro que são enumerados pelo elemento ObjectSet> pai< com o conteúdo dos valores do Registro equivalentes que já existem no computador de destino. O conteúdo é considerado uma lista de elementos separados por um dos caracteres no parâmetro Delimitadores. Os elementos duplicados são removidos.
Sintaxe:
MergeDelimitedContent(Delimiters,Instruction,String,…)Configuração Obrigatório? Valor Delimitadores Sim Um único caractere usado para separar o conteúdo do objeto que está sendo processado. O conteúdo é considerado como uma lista de elementos separados pelos Delimitadores.
Por exemplo,"."separa a cadeia de caracteres com base em um ponto.Instrução Sim Pode ser um dos seguintes valores: - Add: Adiciona String ao MULTI-SZ resultante se ele ainda não estiver lá.
- Remover: Remove a cadeia de caracteres do MULTI-SZ resultante.
String Sim A cadeia de caracteres a ser adicionada ou removida.
<Descrição>
O <elemento description> define uma descrição para o componente, mas não afeta a migração.
Número de ocorrências: zero ou uma
elementos pai:<componente>
Elementos filho: nenhum
Sintaxe:
<description>ComponentDescription</description>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| ComponentDescription | Sim | A descrição do componente. |
A amostra de código a seguir mostra como o <elemento description> define a descrição "Meu componente personalizado":
<description>My custom component<description>
<destinationCleanup>
O <elemento destinationCleanup> exclui objetos, como arquivos e chaves do Registro, do computador de destino antes de aplicar os objetos do computador de origem. Esse elemento é avaliado somente quando a ferramenta LoadState é executada no computador de destino. Ou seja, esse elemento é ignorado pela ferramenta ScanState .
Importante
Use essa opção com extremo cuidado, pois ela excluirá objetos do computador de destino.
Para cada <elemento destinationCleanup> , pode haver vários <elementos objectSet> . Um uso comum para esse elemento é se houver uma chave do Registro ausente no computador de origem, mas o componente ainda precisar ser migrado. Nesse caso, todas as chaves do Registro do componente podem ser excluídas antes da migração das chaves do Registro de origem. A exclusão de todas as chaves do Registro do componente garante que, se houver uma chave ausente no computador de origem, ela também estará ausente no computador de destino.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elementos filho:<objectSet> (o computador de destino exclui todos os elementos filho.)
Sintaxe:
<destinationCleanup filter=ScriptInvocation>
</destinationCleanup>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| filter | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de inclusão. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
Por exemplo:
<destinationCleanup>
<objectSet>
<pattern type="Registry">HKCU\Software\Lotus\123\99.0\DDE Preferences\* [*]</pattern>
<pattern type="Registry">HKCU\Software\Lotus\123\99.0\Find Preferences\* [*]</pattern>
</objectSet>
</destinationCleanup>
<detectar>
Embora o elemento detect> ainda tenha suporte, a< Microsoft recomenda não usar mais o <elemento detect> porque ele pode ser preterido em versões futuras da USMT. Se o <elemento detect> estiver preterido, será necessário reescrever todos os scripts que usam o <elemento detect> . Em vez disso, a Microsoft recomenda usar o <elemento de detecção> . O <elemento de detecção> permite instruções booleanas complexas formuladas com mais clareza
O <elemento de detecção> pode ser usado para determinar se o componente está presente em um sistema. Se todos os elementos de detecção> filho< em um <elemento de detecção> resolverem como TRUE, o <elemento de detecção> será resolvido como TRUE. Se algum filho <detectar> elementos resolve a FALSE, o elemento de detecção> pai< será resolvido como FALSE. Se não houver nenhuma <seção de detecção> de elemento, a USMT assumirá que o componente está presente.
Para cada <elemento detect> , pode haver vários elementos children <condition> ou <objectSet> , que são logicamente unidos por um operador OR . Se pelo menos uma <condição> ou <elemento objectSet> for avaliado como TRUE, o <elemento de detecção> será avaliado como TRUE.
Número de ocorrências: ilimitado
Elementos pai:<detects>, <namedElements>
Elementos filho necessários:<condição>
Elementos filho opcionais:<objectSet>
Sintaxe:
<detect name="ID" context="User|System|UserAndSystem">
</detect>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name | Sim, quando <detectar> é filho de <namedElements> Não, quando <detectar> é um filho para <detectar> |
Quando a ID é especificada, nenhum elemento filho é processado. Em vez disso, quaisquer outros <elementos de detecção> com o mesmo nome declarados <no elemento namedElements> são processados. |
| contexto | Não (padrão = UserAndSystem) |
Define o escopo desse parâmetro, que é se esse componente deve ser processado no contexto de um usuário específico, em todo o sistema operacional ou em ambos. O maior escopo possível é definido pelo elemento componente. Por exemplo, se um <elemento de componente> tiver um contexto de User, e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> agirá como se tivesse um contexto de User. Se o <elemento de regras> tivesse um contexto de System, ele agiria como se o <elemento de regras> não estivesse lá.
|
Para obter exemplos, consulte os exemplos para <detecção>.
<detecta>
Embora o elemento detects> ainda tenha suporte, a< Microsoft recomenda não usar mais o <elemento detects> porque ele pode ser preterido em versões futuras da USMT. Se o <elemento detects> for preterido, será necessário reescrever todos os scripts que usam o <elemento detects> . Em vez disso, a Microsoft recomenda usar o <elemento de detecção> se o elemento pai for <role> ou <namedElements>, ou usar o <elemento conditions> se o elemento pai for <rules>. O <elemento de detecção> permite instruções booleanas complexas formuladas com mais clareza e o <elemento conditions> permite a formulação de instruções booleanas complexas.
O <elemento detects> é um contêiner para um ou mais <elementos detect> . Se todos os elementos de detecção<> filho em um <elemento de detecção> resolve a TRUE, a <detecção> será resolvida como TRUE. Se qualquer um dos elementos de detecção> do filho< resolve a FALSE,<a> detecção será resolvida como FALSE. Para evitar que o <elemento detects> seja gravado em um componente, crie o <elemento detects> no <elemento namedElements> e, em seguida, consulte-o Se não houver nenhuma <seção de> elemento de detecção, a USMT supõe que o componente está presente. Os resultados de cada <elemento detects> são unidos pelo operador OR para formar a regra usada para detectar o elemento pai.
Sintaxe:
<detects name="ID" context="User|System|UserAndSystem">
</detects>
Número de ocorrências: Ilimitado.
Elementos pai:<função>, <regras>, <namedElements>
Elementos filho necessários:<detectar>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name | Sim, quando <detects> é um filho de <namedElements> Não, quando <detecta> é um filho para <função> ou <regras> |
Quando a ID é especificada, nenhum elemento de detecção> filho< é processado. Em vez disso, quaisquer outros <elementos detects> com o mesmo nome declarados <no elemento namedElements> são processados. |
| contexto | Não (padrão = UserAndSystem) |
Define o escopo deste parâmetro: se esse componente será processado no contexto do usuário específico, em todo o sistema operacional ou em ambos. O maior escopo possível é definido pelo <elemento componente>. Por exemplo, se um <elemento de componente> tiver um contexto de User e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> agirá como se tivesse um contexto de User. Se o <elemento de regras> tivesse um contexto de System, ele agiria como se o <elemento de regras> não estivesse lá.
O parâmetro context é ignorado para <detectar elementos que estão dentro de> elementosde regras>.< |
O exemplo a MigApp.xml seguir é do arquivo.
<detects>
<detect>
<condition>MigXmlHelper.DoesFileVersionMatch("%Lotus123InstPath%\123w.exe","ProductVersion","9.*")</condition>
</detect>
<detect>
<condition>MigXmlHelper.DoesFileVersionMatch("%SmartSuiteInstPath%\smartctr.exe","ProductVersion","99.*")</condition>
</detect>
</detects>
<de detecção>
O <elemento de detecção> é um contêiner para um <elemento de condições> . O resultado dos elementos de condição> filho<, localizados abaixo do <elemento conditions>, determina o resultado desse elemento. Por exemplo, se todos os elementos de condições> filho< dentro do <elemento de detecção> forem resolvidos como TRUE, o <elemento de detecção> será resolvido como TRUE. Se algum dos elementos de condições> filho< resolve a FALSE, o <elemento de detecção> será resolvido como FALSE.
Além disso, os resultados de cada <seção de detecção> dentro do <elemento de função> são unidos pelo operador OR para formar a regra de detecção do elemento pai. Ou seja, se uma das seções de detecção> for resolvida como TRUE, o elemento de<função> será processado<. Caso contrário, o <elemento role> não será processado.
Use o <elemento de detecção> sob o <elemento namedElements> para não gravar dentro de um componente. Em seguida, inclua uma seção de detecção> correspondente< no <elemento função> para controlar se o componente é migrado. Se não houver uma <seção de detecção> para um componente, a USMT presumirá que o componente está presente.
Número de ocorrências: Ilimitado.
Elementos pai:<role>, <namedElements>
Elementos filho:<condições>
Sintaxe:
<detection name="ID" context="User|System|UserAndSystem">
</detection>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name |
|
Se declarado, o conteúdo do elemento de detecção> é ignorado< e o conteúdo do elemento de detecção> com o mesmo nome declarado<<no elemento namedElements> é avaliado. |
| contexto | No, default = UserAndSystem | Define o escopo deste parâmetro: se esse componente será processado no contexto do usuário específico, em todo o sistema operacional ou em ambos.
|
Por exemplo:
<detection name="AdobePhotoshopCS">
<conditions>
<condition>MigXmlHelper.DoesObjectExist("Registry","HKCU\Software\Adobe\Photoshop\8.0")</condition>
<condition>MigXmlHelper.DoesFileVersionMatch("%PhotoshopSuite8Path%\Photoshop.exe","FileVersion","8.*")</condition>
</conditions>
</detection>
e
<role role="Settings">
<detection>
<conditions>
<condition>MigXmlHelper.DoesFileVersionMatch("%QuickTime5Exe%","ProductVersion","QuickTime 5.*")</condition>
<condition>MigXmlHelper.DoesFileVersionMatch("%QuickTime5Exe%","ProductVersion","QuickTime 6.*")</condition>
</conditions>
</detection>
<displayName>
O <elemento displayName> é um campo obrigatório dentro de cada <elemento componente> .
Número de ocorrências: uma vez para cada componente
elementos pai:<componente>
Elementos filho: nenhum
Sintaxe:
<displayName _locID="ID">ComponentName</displayName>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| locID | Não | Esse parâmetro é para uso interno da USMT. Não use esse parâmetro. |
| ComponentName | Sim | O nome do componente. |
Por exemplo:
<displayName>Command Prompt settings</displayName>
<meio ambiente>
O <elemento de ambiente> é um contêiner para <elementos variáveis> no qual as variáveis podem ser definidas para uso em um arquivo .xml . Todas as variáveis de ambiente definidas dessa maneira são privadas. Ou seja, eles estão disponíveis apenas para seus componentes filho e o componente no qual foram definidos. Para ver dois cenários de exemplo, consulte Exemplos.
Número de ocorrências: ilimitado
Elementos pai:<função>, <componente>, <namedElements>
Elementos filho necessários:<variável>
Elementos filho opcionais:<condições>
Sintaxe:
<environment name="ID" context="User|System|UserAndSystem">
</environment>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name | Sim, quando <o ambiente> é filho de <namedElements> Não, quando <o ambiente> é filho de <uma função> ou <componente> |
Quando declarado como um filho dos elementos de função> ou componente, se a<ID for declarada, a <USMT ignorará o conteúdo do elemento de ambiente> e o conteúdo do elemento de <ambiente> com o mesmo nome declarado no <elemento namedElements> será processado.>< |
| contexto | Não (padrão = UserAndSystem) |
Define o escopo deste parâmetro: se esse componente será processado no contexto do usuário específico, em todo o sistema operacional ou em ambos. O maior escopo possível é definido pelo <elemento componente> . Por exemplo, se um <elemento de componente> tiver um contexto de User e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> agirá como se tivesse um contexto de User. Se o <elemento de regras> tivesse um contexto de System, ele agiria como se <as regras> não existissem.
|
Exemplos
Exemplo de cenário 1
Nesse cenário, gere o local dos objetos em tempo de execução, dependendo da configuração do computador de destino. Por exemplo, se um aplicativo grava dados no diretório em que está instalado e os usuários podem instalar o aplicativo em qualquer lugar do computador. Se o aplicativo gravar um valor hklm\software\companyname\install [path\] do Registro e, em seguida, atualizar esse valor com o local em que o aplicativo está instalado, a única maneira de migrar os dados necessários corretamente será definir uma variável de ambiente. Por exemplo:
<environment>
<variable name="INSTALLPATH">
<script>MigXmlHelper.GetStringContent("Registry","\software\companyname\install [path]")</script>
</variable>
</environment>
Em seguida, uma regra de inclusão pode ser usada da seguinte maneira. Qualquer uma das <funções de script> pode ser usada para realizar tarefas semelhantes.
<include>
<objectSet>
<pattern type="File">%INSTALLPATH%\ [*.xyz]</pattern>
</objectSet>
</include>
Em segundo lugar, os valores do Registro podem ser filtrados para conter os dados necessários. O exemplo a seguir extrai a primeira cadeia de caracteres (antes do separador ",") no valor do registro Hklm\software\companyname\application\ [Path\].
<environment>
<variable name="APPPATH">
<objectSet>
<content filter='MigXmlHelper.ExtractDirectory (",", "1")'>
<objectSet>
<pattern type="Registry">Hklm\software\companyname\application\ [Path]</pattern>
</objectSet>
</content>
</objectSet>
</variable>
</environment>
Exemplo de cenário 2
Nesse cenário, cinco arquivos chamados File1.txt, File2.txte assim por diante precisam ser migrados do %SYSTEMDRIVE%\data\userdata\dir1\dir2\. Para migrar esses arquivos, a seguinte <regra de inclusão> deve estar em um arquivo .xml :
<include>
<objectSet>
<pattern type="File">%SYSTEMDRIVE%\data\userdata\dir1\dir2 [File1.txt]</pattern>
<pattern type="File">%SYSTEMDRIVE%\data\userdata\dir1\dir2 [File2.txt]</pattern>
<pattern type="File">%SYSTEMDRIVE%\data\userdata\dir1\dir2 [File3.txt]</pattern>
<pattern type="File">%SYSTEMDRIVE%\data\userdata\dir1\dir2 [File4.txt]</pattern>
<pattern type="File">%SYSTEMDRIVE%\data\userdata\dir1\dir2 [File5.txt]</pattern>
</objectSet>
</include>
Em vez de digitar o caminho cinco vezes, crie uma variável para o local da seguinte maneira:
<environment>
<variable name="DATAPATH">
<text>%SYSTEMDRIVE%\data\userdata\dir1\dir2 </text>
</variable>
</environment>
Em seguida, especifique a variável em uma <regra de inclusão> da seguinte maneira:
<include>
<objectSet>
<pattern type="File">%DATAPATH% [File1.txt]</pattern>
<pattern type="File">%DATAPATH% [File2.txt]</pattern>
<pattern type="File">%DATAPATH% [File3.txt]</pattern>
<pattern type="File">%DATAPATH% [File4.txt]</pattern>
<pattern type="File">%DATAPATH% [File5.txt]</pattern>
</objectSet>
</include>
<exclude>
O <elemento exclude> determina quais objetos não são migrados, a menos que haja um elemento include> mais específico< que migre um objeto. Se houver um <elemento include> e <exclude> para o mesmo objeto, o objeto será incluído. Para cada <elemento exclude>, pode haver vários elementos objectSet> filho<.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elementos filho:<objectSet>
Funções auxiliares: As seguintes <funções de filtro de exclusão> podem ser usadas com este elemento:
CompareStringContent,IgnoreIrrelevantLinks,AnswerNoNeverRestore, eSameRegContent.
Sintaxe:
<exclude filter="ScriptInvocation">
</exclude>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| filter | Não (padrão = Não) |
Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de inclusão. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
Por exemplo, no MigUser.xml arquivo:
<exclude>
<objectSet>
<pattern type="File">%CSIDL_MYMUSIC%\* [*]</pattern>
<pattern type="File">%CSIDL_MYPICTURES%\* [*]</pattern>
<pattern type="File">%CSIDL_MYVIDEO%\* [*]</pattern>
</objectSet>
</exclude>
<excludeAttributes>
O <elemento excludeAttributes> pode ser usado para determinar quais parâmetros associados a um objeto não são migrados. Se houver conflitos entre os <elementos includeAttributes> e <excludeAttributes> , o padrão mais específico determinará os padrões que não serão migrados. Se um objeto não tiver um <elemento includeAttributes> ou <excludeAttributes> , todos os seus parâmetros serão migrados.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elementos filho:<objectSet>
Sintaxe:
<excludeAttributes attributes="Security|TimeFields|Security,TimeFields">
</excludeAttributes>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| do sistema | Sim | Especifica os atributos a serem excluídos. Um dos seguintes ou ambos podem ser especificados. Se especificar ambos, eles precisam ser separados por aspas. Por exemplo: "Security","TimeFields"
|
Exemplo:
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/miguser">
<!-- This component migrates the files in the Video folder -->
<component type="System" context="System">
<displayName>System Data</displayName>
<role role="Data">
<rules>
<!-- Include all of the text files, which are immediately in the drive where the operating system is installed -->
<include>
<objectSet>
<pattern type="File">%SYSTEMDRIVE%\ [*.txt]</pattern>
</objectSet>
</include>
<!-- Exclude the time stamps from the text file starting with the letter a -->
<excludeAttributes attributes="TimeFields">
<objectSet>
<pattern type="File">%SYSTEMDRIVE%\ [a*.txt]</pattern>
</objectSet>
</excludeAttributes>
<!-- include the time stamps from the text file aa.txt -->
<includeAttributes attributes="TimeFields">
<objectSet>
<pattern type="File">%SYSTEMDRIVE%\ [aa.txt]</pattern>
</objectSet>
</includeAttributes>
<!-- Logoff the user after LoadState successfully completed. -->
<externalProcess when="post-apply">
<commandLine>
logoff
</commandLine>
</externalProcess>
</rules>
</role>
<!-- Migrate
all doc files from the system
all power point files
all visio design files
all my c++ program files -->
<extensions>
<extension>DOC</extension>
<extension>PPT</extension>
<extension>VXD</extension>
<extension>PST</extension>
<extension>CPP</extension>
</extensions>
</component>
</migration>
<extensões>
O <elemento extensions> é um contêiner para um ou mais <elementos de extensão> .
Número de ocorrências: zero ou uma
elementos pai:<componente>
Elementos filho necessários:<extensão>
Sintaxe:
<extensions>
</extensions>
<extensão>
O <elemento de extensão> pode ser usado para especificar documentos de uma extensão específica.
Número de ocorrências: ilimitado
Elementos pai:<extensões>
Elementos filho: nenhum
Sintaxe:
<extension>FilenameExtension</extension>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| Extensão de nome de arquivo | Sim | Uma extensão de nome de arquivo. |
Por exemplo, para migrar todos os arquivos *.doc do computador de origem, especificando o seguinte código no <elemento component> :
<extensions>
<extension>doc</extension>
<extensions>
é o mesmo que especificar o seguinte código abaixo do <elemento rules> :
<include>
<objectSet>
<script>MigXmlHelper.GenerateDrivePatterns ("* [*.doc]", "Fixed")</script>
</objectSet>
</include>
Para obter outro exemplo de como usar o <elemento de extensão> , consulte o exemplo de <excludeAttributes>.
<externalProcess>
O <elemento externalProcess> pode ser usado para executar uma linha de comando durante o processo de migração. Por exemplo, executar um comando pode precisar ser executado após a conclusão do processo LoadState .
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elementos filho necessários:<commandLine>
Sintaxe:
<externalProcess when="pre-scan|scan-success|post-scan|pre-apply|apply-success|post-apply">
</externalProcess>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| quando | Sim | Indica quando a linha de comando deve ser executada. Esse valor pode ser um dos seguintes valores:
|
Para obter um exemplo de como usar o <elemento externalProcess> , consulte o exemplo de <excludeAttributes>.
<ícone>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<include>
O <elemento include> determina o que migrar, a menos que haja uma regra de exclusão> mais específica<. Um script pode ser especificado para ser mais específico para estender a definição do que precisa ser coletado. Para cada <elemento de inclusão> , pode haver vários <elementos objectSet> .
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elemento filho necessário:<objectSet>
Funções auxiliares: As seguintes <funções de filtro de inclusão> podem ser usadas com este elemento:
CompareStringContent,IgnoreIrrelevantLinks,AnswerNoeNeverRestore.
Sintaxe:
<include filter="ScriptInvocation">
</include>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| filter | Não. Se esse parâmetro não for especificado, todos os padrões que estão dentro do elemento objectSet> filho< serão processados. |
Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de< inclusão>. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
O exemplo a MigUser.xml seguir é do arquivo:
<component type="Documents" context="User">
<displayName _locID="miguser.myvideo">My Video</displayName>
<paths>
<path type="File">%CSIDL_MYVIDEO%</path>
</paths>
<role role="Data">
<detects>
<detect>
<condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYVIDEO%")</condition>
</detect>
</detects>
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<pattern type="File">%CSIDL_MYVIDEO%\* [*]</pattern>
</objectSet>
</include>
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_MYVIDEO% [desktop.ini]</pattern>
</objectSet>
</merge>
</rules>
</role>
</component>
<Incluir> e <excluir> funções de filtro
As funções a seguir retornam um valor booliano. Eles podem ser usados para migrar determinados objetos com base em quando certas condições são atendidas.
RespostaNão
Esse filtro sempre retorna FALSE.
Sintaxe:
AnswerNo ()CompareStringContent
Sintaxe:
CompareStringContent("StringContent","CompareType")Configuração Obrigatório? Valor StringContent Sim A cadeia de caracteres a ser marcada. CompareType Sim Uma cadeia de caracteres. Use um dos seguintes valores: -
Igual (não diferencia maiúsculas de minúsculas). A função retornará VERDADEIRO se a representação de cadeia de caracteres do objeto atual que é processado pelo mecanismo de migração for idêntica a
StringContent. -
NULLou qualquer outro valor. A função retornará TRUE se a representação de cadeia de caracteres do objeto atual que é processado pelo mecanismo de migração não corresponder a
StringContent.
-
Igual (não diferencia maiúsculas de minúsculas). A função retornará VERDADEIRO se a representação de cadeia de caracteres do objeto atual que é processado pelo mecanismo de migração for idêntica a
IgnoreIrrelevantLinks
Esse filtro filtra os arquivos .lnk que apontam para um objeto que não é válido no computador de destino. A triagem ocorre no computador de destino, portanto, todos os arquivos .lnk são salvos no armazenamento durante o ScanState. Em seguida, eles são excluídos quando a ferramenta LoadState é executada.
Sintaxe:
IgnoreIrrelevantLinks ()Por exemplo:
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'> <objectSet> <pattern type="File">%CSIDL_COMMON_VIDEO%\* [*]</pattern> </objectSet> </include>NeverRestore
Essa função pode ser usada para coletar os objetos especificados do computador de origem, mas não pode migrar os objetos para o computador de destino. Quando executada com a ferramenta ScanState, essa função é avaliada como TRUE. Quando executada com a ferramenta LoadState, essa função é avaliada como FALSE. Essa função pode ser usada para marcar o valor de um objeto no computador de destino, mas não há intenção de migrar o objeto para o destino.
Sintaxe:
NeverRestore()No exemplo a seguir, HKCU\Painel de Controle\Internacional [Localidade] está incluído no repositório, mas não é migrado para o computador de destino:
<include filter="MigXmlHelper.NeverRestore()"> <objectSet> <pattern type="Registry">HKCU\Control Panel\International [Locale]</pattern> </objectSet> </include>
<includeAttributes>
O <elemento includeAttributes> pode ser usado para determinar se determinados parâmetros associados a um objeto são migrados junto com o próprio objeto. Se houver conflitos entre os <elementos includeAttributes> e <excludeAttributes> , o padrão mais específico determinará quais parâmetros serão migrados. Se um objeto não tiver um <elemento includeAttributes> ou <excludeAttributes> , todos os seus parâmetros serão migrados.
Número de ocorrências: ilimitado
Elementos pai:<regras>
Elementos filho:<objectSet>
Sintaxe:
<includeAttributes attributes="Security|TimeFields|Security,TimeFields">
</includeAttributes>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| do sistema | Sim | Especifica os atributos a serem incluídos em um objeto migrado. Um dos seguintes ou ambos podem ser especificados. Se especificar ambos, eles precisam ser separados por aspas. Por exemplo: "Security","TimeFields"
|
Para obter um exemplo de como usar o <elemento includeAttributes> , consulte o exemplo de <excludeAttributes>.
<biblioteca>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<Localização>
O <elemento location> define o local do <elemento object.>
Sintaxe:
<location type="typeID">ObjectLocation</location>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| tipo | Sim | typeID pode ser Registro ou Arquivo. |
| ObjectLocation | Sim | O local do objeto. |
O exemplo a MigApp.xml seguir é do arquivo:
<addObjects>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [UpgradeVersion]</location>
<attributes>DWORD</attributes>
<bytes>0B000000</bytes>
</object>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [Lang]</location>
<attributes>DWORD</attributes>
<bytes>00000000</bytes>
</object>
</addObjects>
<locationModify>
O <elemento locationModify> pode ser usado para alterar o local e o nome de um objeto antes que ele seja migrado para o computador de destino. O <elemento locationModify> é processado somente quando a ferramenta LoadState é executada no computador de destino. Em outras palavras, esse elemento é ignorado pela ferramenta ScanState . O <elemento locationModify> cria a pasta apropriada no computador de destino, se ela ainda não existir.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elemento filho necessário:<objectSet>
Funções auxiliares: As seguintes <funções locationModify> podem ser usadas com este elemento:
ExactMove,RelativeMoveeMove.
Sintaxe:
<locationModify script="ScriptInvocation">
</locationModify>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| script | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de inclusão. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
O exemplo a MigApp.xml seguir é do arquivo:
<locationModify script="MigXmlHelper.RelativeMove('%CSIDL_APPDATA%\Microsoft\Office','%CSIDL_APPDATA%')">
<objectSet>
<pattern type="File">%CSIDL_APPDATA%\Microsoft\Office\ [Access10.pip]</pattern>
</objectSet>
</locationModify>
<Funções locationModify>
As funções a seguir alteram a localização dos objetos à medida que eles são migrados ao usar o <elemento locationModificar> . Essas funções são chamadas para cada objeto que o elemento objectSet> pai< está enumerando. O <elemento locationModify> cria a pasta apropriada no computador de destino, se ela ainda não existir.
ExactMove
A função ExactMove move todos os objetos que são correspondidos pelo elemento objectSet> pai< para o ObjectEncodedLocation fornecido. Esta função pode ser usada para mover um único arquivo para um local diferente no computador de destino. Se o local de destino for um nó, todos os objetos de origem correspondentes serão gravados no nó sem nenhum subdiretório. Se o local de destino for uma folha, o mecanismo de migração migrará todos os objetos de origem correspondentes para o mesmo local. Se ocorrer uma colisão, os algoritmos de colisão normais serão aplicados.
Sintaxe:
ExactMove(ObjectEncodedLocation)Configuração Obrigatório? Valor ObjectEncodedLocation Sim O local de destino para todos os objetos de origem. Por exemplo:
<locationModify script="MigXmlHelper.ExactMove('HKCU\Keyboard Layout\Toggle [HotKey]')"> <objectSet> <pattern type="Registry">HKCU\Keyboard Layout\Toggle []</pattern> </objectSet> </locationModify>Mover
A função Move move objetos para um local diferente no computador de destino. Além disso, essa função cria subdiretórios que estavam acima do CSIDL mais longo no nome do objeto de origem.
Sintaxe:
Move(DestinationRoot)Configuração Obrigatório? Valor Raiz de destino Sim O local para onde os objetos de origem são movidos. Se necessário, essa função criará todos os subdiretórios que estavam acima do CSIDL mais longo no nome do objeto de origem. RelativeMove
A função RelativeMove pode ser usada para coletar e mover dados. As variáveis de ambiente podem ser usadas nas raízes de origem e de destino, mas podem ser definidas de forma diferente nos computadores de origem e de destino.
Sintaxe:
RelativeMove(SourceRoot,DestinationRoot)Configuração Obrigatório? Valor Raiz de origem Sim O local de onde os objetos são movidos. Todos os objetos de origem enumerados pelo elemento objectSet> pai< que não estão nesse local não são movidos. Raiz de destino Sim O local para onde os objetos de origem são movidos no computador de destino. Se necessário, esta função cria todos os subdiretórios que estavam acima de SourceRoot.
Por exemplo:
<include>
<objectSet>
<pattern type="File">%CSIDL_COMMON_FAVORITES%\* [*]</pattern>
<objectSet>
</include>
<locationModify script="MigXmlHelper.RelativeMove('%CSIDL_COMMON_FAVORITES%','%CSIDL_COMMON_FAVORITES%')">
<objectSet>
<pattern type="File">%CSIDL_COMMON_FAVORITES%\* [*]</pattern>
</objectSet>
</locationModify>
<_locDefinition>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<fabricante>
O <elemento manufacturer> define o fabricante do componente, mas não afeta a migração.
Número de ocorrências: zero ou uma
elementos pai:<componente>
Elementos filho: nenhum
Sintaxe:
<manufacturer>Name</manufacturer>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| Nome | Sim | O nome do fabricante do componente. |
<mesclar>
O <elemento de mesclagem> determina o que acontece quando ocorre uma colisão. Uma colisão ocorre quando um objeto migrado já está presente no computador de destino. Se esse elemento não for especificado, o comportamento padrão do Registro será que o objeto de origem substitua o objeto de destino. O comportamento padrão para arquivos é o arquivo de origem a ser renomeado para OriginalFileName(1).OriginalExtension. Esse elemento especifica apenas o que deve ser feito quando ocorre uma colisão. Não inclui objetos. Portanto, para que os objetos migrem, <as regras de inclusão> devem ser especificadas junto com o <elemento merge> . Quando um objeto é processado e uma colisão é detectada, a USMT seleciona a regra de mesclagem mais específica. Em seguida, aplica a regra para resolver o conflito. Por exemplo, se uma <regra de mesclagem> for definida como <sourcePriority> e uma <regra de mesclagem> for definida como <destinationPriority>, a USMT usará a <regra destinationPriority> porque ela é a mais específica.C:\subfolder\* [*]C:\* [*]
Para ver um exemplo desse elemento, consulte Conflitos e precedência.
Número de ocorrências: Ilimitado
Elementos pai:<regras>
Elemento filho necessário:<objectSet>
Funções auxiliares: As seguintes <funções de mesclagem> podem ser usadas com este elemento:
SourcePriority,DestinationPriority,NewestVersionHigherValue()FindFilePlaceByPatternLeafPattern, e .LowerValue()
Sintaxe:
<merge script="ScriptInvocation">
</merge>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| script | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de< inclusão>. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. |
O exemplo a MigUser.xml seguir é do arquivo:
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<pattern type="File">%CSIDL_MYVIDEO%\* [*]</pattern>
</objectSet>
</include>
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_MYVIDEO% [desktop.ini]</pattern>
</objectSet>
</merge>
</rules>
< > Mesclar funções
Essas funções controlam como as colisões são resolvidas.
DestinationPriority
Especifica manter o objeto que está no computador de destino e não migrar o objeto do computador de origem.
Por exemplo:
<merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKCU\Software\Microsoft\Office\16.0\PhotoDraw\ [MyPictures]</pattern> <pattern type="Registry">HKCU\Software\Microsoft\Office\16.0\PhotoDraw\Settings\ [PicturesPath]</pattern> <pattern type="Registry">HKCU\Software\Microsoft\Office\16.0\PhotoDraw\Settings\ [AdditionalPlugInPath]</pattern> </objectSet> </merge>FindFilePlaceByPattern
A função FindFilePlaceByPattern salva arquivos com um contador incremental quando ocorre uma colisão. É uma cadeia de caracteres que contém um de cada constructo: <F>, <E>, <N> em qualquer ordem.
Sintaxe:
FindFilePlaceByPattern(FilePattern)Configuração Obrigatório? Valor Padrão de arquivo Sim - <F> é substituído pelo nome do arquivo original.
- <N> é substituído por um contador incremental até que não haja colisão com os objetos no computador de destino.
- <E> é substituído pela extensão de nome de arquivo original.
Por exemplo,<F> (<N>).<E>altera o arquivoMyDocument.docde origem paraMyDocument (1).docno computador de destino.Versão mais recente
A função NewestVersion resolve conflitos no computador de destino com base na versão do arquivo.
Sintaxe:
NewestVersion(VersionTag)Configuração Obrigatório? Valor Marca de versão Sim O campo de versão que está marcado. Este campo pode ser FileVersionouProductVersion. O arquivo com a versão mais alta do VersionTag determina quais conflitos são resolvidos com base na versão do arquivo. Por exemplo, seMyfile.txtcontiver FileVersion 1 e o mesmo arquivo no computador de destino contiver FileVersion 2, o arquivo no destino permanecerá.HigherValue()
Esta função pode ser usada para mesclar valores do Registro. Os valores do Registro são avaliados como valores numéricos, e aquele com o valor mais alto determina quais valores do Registro são mesclados.
LowerValue()
Esta função pode ser usada para mesclar valores do Registro. Os valores do Registro são avaliados como valores numéricos, e o valor mais baixo determina quais valores do Registro são mesclados.
SourcePriority
Especifica a migração do objeto do computador de origem e a exclusão do objeto que está no computador de destino.
Por exemplo:
<merge script="MigXmlHelper.SourcePriority()"> <objectSet> <pattern type="Registry">%HklmWowSoftware%\Microsoft\Office\14.0\Common\Migration\Publisher [UpgradeVersion]</pattern> <pattern type="Registry">%HklmWowSoftware%\Microsoft\Office\15.0\Common\Migration\Publisher [UpgradeVersion]</pattern> <pattern type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Publisher [UpgradeVersion]</pattern> </objectSet> </merge>
<de banco de dados>
O <elemento de migração> é o único elemento raiz de um arquivo de.xml de migração e é obrigatório. Cada arquivo .xml deve ter uma urlid de migração exclusiva. A superfície de cada arquivo especificado na linha de comando deve ser exclusiva. Os urlids devem ser exclusivos porque a USMT usa o urlid para definir os componentes dentro do arquivo.
Número de ocorrências: uma
Elementos pai: nenhum
Elementos filho necessários:<componente>
Elementos filho opcionais:<library>, <namedElements>
Sintaxe:
<migration urlid="*UrlID/*Name">
</migration>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| URLID | Sim | UrlID é um identificador de cadeia de caracteres que identifica exclusivamente este arquivo .xml . Esse parâmetro deve ser um nome sem dois-pontos, conforme definido pela especificação de Namespaces XML. Cada arquivo de.xml de migração deve ter um urlid exclusivo. Se dois arquivos de.xml de migração tiverem o mesmo urlid, o segundo arquivo .xml especificado na linha de comando não será processado. Para obter mais informações sobre namespaces XML, consulte Usar namespaces XML. |
| Nome | Não | Embora não seja obrigatório, é uma boa prática usar o nome do arquivo .xml . |
O exemplo a MigApp.xml seguir é do arquivo:
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/migapp">
</migration>
MigXMLHelper.FileProperties
Essa função auxiliar de filtro pode ser usada para filtrar a migração de arquivos com base no tamanho do arquivo e nos atributos de data.
| Função auxiliar | MigXMLHelper.FileProperties (property, operator, valueToCompare) |
|---|---|
| Propriedade | filesize, dateCreated, dateModified, dateAccessed |
| Operador | alcance, NEQ, LTE, LT, EQ, GTE, GT |
| valueToCompare | O valor que está sendo comparado. Por exemplo: Data: "15/05/2023-17/05/2020", "15/05/2023" Tamanho: um numeral com B, KB, MB ou GB no final. "5GB", "1KB-1MB" |
<component context="System" type="Application">
<displayName>File_size</displayName>
<role role="Data">
<rules>
<include filter='MigXmlHelper.FileProperties("dateAccessed","range","2023/05/15-2020/05/17")'>
<objectSet>
<pattern type="File">%SYSTEMDRIVE%\DOCS\* [*]</pattern>
</objectSet>
</include>
</rules>
</role>
</component>
<namedElements>
O <elemento namedElements> pode ser usado para definir elementos nomeados. Esses elementos podem ser usados em qualquer componente em todo o arquivo.xml . Para obter um exemplo de como usar esse elemento, consulte o MigApp.xml arquivo.
Sintaxe:
<namedElements>
</namedElements>
Número de ocorrências: Ilimitado
Elementos pai:<migração>
Elementos filho:<ambiente>, <regras>, <condições>, <detecção>, <detecta, detecta>><
Para obter um exemplo desse elemento, consulte o MigApp.xml arquivo.
<object>
O <elemento de objeto> representa um arquivo ou uma chave do Registro.
Número de ocorrências: Ilimitado
Elementos pai:<addObjects>
Elementos filho necessários:<localização>, <atributos>
Elementos filho opcionais:<bytes>
Sintaxe:
<object>
</object>
O exemplo a MigApp.xml seguir é do arquivo:
<addObjects>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [UpgradeVersion]</location>
<attributes>DWORD</attributes>
<bytes>0B000000</bytes>
</object>
<object>
<location type="Registry">%HklmWowSoftware%\Microsoft\Office\16.0\Common\Migration\Office [Lang]</location>
<attributes>DWORD</attributes>
<bytes>00000000</bytes>
</object>
</addObjects>
<objectSet>
O <elemento objectSet> contém uma lista de padrões de objeto; por exemplo, caminhos de arquivo, locais do Registro e assim por diante. Todos os elementos de condições> filho< são avaliados primeiro. Se todos os elementos de condições> filho< retornarem FALSE, o <elemento objectSet> será avaliado como um conjunto vazio. Para cada elemento pai, pode haver apenas vários <elementos objectSet> .
Número de ocorrências: Ilimitado
Elementos pai:<variável>, <conteúdo>, <incluir>, <excluir>, <mesclar>, <contentModify>, <locationModify>, <destinationCleanup>, <includeAttributes>, <excludeAttributes>, <unconditionalExclude>, <detectar>
Elementos filho opcionais:<conteúdo>, <condições>, <condição>
Sintaxe:
<objectSet>
</objectSet>
O exemplo a MigUser.xml seguir é do arquivo:
<component type="Documents" context="User">
<displayName _locID="miguser.mymusic">My Music</displayName>
<paths>
<path type="File">%CSIDL_MYMUSIC%</path>
</paths>
<role role="Data">
<detects>
<detect>
<condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYMUSIC%")</condition>
</detect>
</detects>
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<pattern type="File">%CSIDL_MYMUSIC%\* [*]</pattern>
</objectSet>
</include>
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_MYMUSIC%\ [desktop.ini]</pattern>
</objectSet>
</merge>
</rules>
</role>
</component>
<path>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<caminhos>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<padrão>
Esse elemento pode ser usado para especificar vários objetos. Vários <elementos de padrão> podem ser usados para cada <elemento objectSet> e eles são combinados. Se estiver especificando arquivos, a Microsoft recomenda usar GenerateDrivePatterns com <script> .
GenerateDrivePatterns é basicamente o mesmo que uma <regra padrão> , sem a especificação da letra da unidade. Por exemplo, as duas linhas de código a seguir são semelhantes:
<pattern type="File">C:\Folder\* [Sample.doc]</pattern>
<script>MigXmlHelper.GenerateDrivePatterns("\Folder\* [Sample.doc]","Fixed"</script>
Número de ocorrências: Ilimitado
Elementos pai:<objectset>
Elementos filho: nenhum além de Path [object] deve ser válido.
Sintaxe:
<pattern type="typeID">Path [object]</pattern>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| tipo | Sim |
typeID pode ser Registry, File ou Ini. Se typeId for Ini, um espaço entre Path e object não será permitido. Por exemplo, o seguinte formato está correto quando type="Ini": <pattern type="Ini">%WinAmp5InstPath%\Winamp.ini|WinAmp[keeponscreen]</pattern> |
| Caminho [objeto] | Sim | Um padrão válido de caminho de arquivo ou registro, seguido por pelo menos um espaço, seguido por colchetes [] que contêm o objeto a ser migrado.
|
Por exemplo:
Para migrar uma única chave do Registro:
<pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache [Persistent]</pattern>Para migrar a
C:\EngineeringDraftspasta e quaisquer subpastas da unidade C::<pattern type="File">C:\EngineeringDrafts\* [*]</pattern>Para migrar apenas a
C:\EngineeringDraftspasta, excluindo subpastas, da unidade C::Para migrar o
Sample.docarquivo deC:\EngineeringDrafts:<pattern type="File"> C:\EngineeringDrafts\ [Sample.doc]</pattern>Para migrar o
Sample.docarquivo de onde ele existe na unidade C:, use o padrão da seguinte maneira. Se existirem vários arquivos com o mesmo nome na unidade C:, todos esses arquivos serão migrados.<pattern type="File"> C:\* [Sample.doc] </pattern>Para obter mais exemplos de como usar esse elemento, consulte Excluir arquivos e configurações, Redirecionar arquivos e configurações, Incluir arquivos e configurações e Exemplos de XML personalizado.
<em processamento>
Esse elemento pode ser usado para executar um script durante um ponto específico no processo de migração. Não são esperados valores retornados dos scripts especificados. Se houver valores retornados, eles serão ignorados.
Sintaxe:
<processing when="pre-scan|scan-success|post-scan|pre-apply|apply-success|post-apply">
</processing>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| quando | Sim | Indica quando o script deve ser executado. Esse valor pode ser um dos seguintes valores:
|
<plug-in>
Esse elemento é um elemento interno da USMT. Não use este elemento.
<do Power BI>
O <elemento de função> é necessário em um arquivo de.xml personalizado. Quando o <elemento de função> é especificado, um componente concreto pode ser criado. O componente é definido pelos parâmetros especificados no nível do <componente> e com a função especificada aqui.
Número de ocorrências: Cada <componente> pode ter um, dois ou três elementos de função> filho<.
Elementos pai:<componente>, <função>
Elementos filho necessários:<regras>
Elementos filho opcionais:<ambiente>, <detecção>, <componente>, <função>, <detecção>, <plug-in>
Sintaxe:
<role role="Container|Binaries|Settings|Data">
</role>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| do Power BI | Sim | Define a função do componente. A função pode ser uma das:
|
O exemplo a MigUser.xml seguir é do arquivo. Para obter mais exemplos, consulte o MigApp.xml arquivo:
<component type="System" context="User">
<displayName _locID="miguser.startmenu">Start Menu</displayName>
<paths>
<path type="File">%CSIDL_STARTMENU%</path>
</paths>
<role role="Settings">
<detects>
<detect>
<condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_STARTMENU%")</condition>
</detect>
</detects>
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<pattern type="File">%CSIDL_STARTMENU%\* [*]</pattern>
</objectSet>
</include>
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_STARTMENU% [desktop.ini]</pattern>
<pattern type="File">%CSIDL_STARTMENU%\* [*]</pattern>
</objectSet>
</merge>
</rules>
</role>
</component>
<regras>
O <elemento rules> é necessário em um arquivo de.xml personalizado. Esse elemento contém regras que são executadas durante a migração se o elemento de componente> pai< for selecionado, a menos que o elemento de condições> filho<, se presente, seja avaliado como FALSE. Para cada <elemento de regras>, pode haver vários elementos de regras> filho<.
Número de ocorrências: ilimitado
Elementos pai:<função>, <regras>, <namedElements>
Elementos filho necessários:<include>
Elementos filho opcionais:<regras>, <excluir>, <incondicionalExclude,merge><>, <contentModify>, <locationModify>, <destinationCleanup>, <addObjects>, <externalProcess>, <processing>, <includeAttributes>, <excludeAttributes>, condições, <detecta>
Sintaxe:
<rules name="ID" context="User|System|UserAndSystem">
</rules>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name | Sim, quando <rules> é filho de <namedElements> Não, quando <as regras> são filhas de qualquer outro elemento |
Quando a ID é especificada, nenhum elemento filho é processado. Em vez disso, quaisquer outros <elementos de regras> com o mesmo nome declarados em <namedElements> são processados. |
| contexto | Não (padrão = UserAndSystem) |
Define o escopo desse parâmetro - se esse componente deve ser processado no contexto de um usuário específico, em todo o sistema operacional ou em ambos. O maior escopo possível é definido pelo elemento componente. Por exemplo, se um <elemento de componente> tiver um contexto de User e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> agirá como se tivesse um contexto de User. Se <as regras> tivessem um contexto de System, ele agiria como se <as regras> não existissem.
|
O exemplo a MigUser.xml seguir é do arquivo:
<component type="Documents" context="User">
<displayName _locID="miguser.mymusic">My Music</displayName>
<paths>
<path type="File">%CSIDL_MYMUSIC%</path>
</paths>
<role role="Data">
<detects>
<detect>
<condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYMUSIC%")</condition>
</detect>
</detects>
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<pattern type="File">%CSIDL_MYMUSIC%\* [*]</pattern>
</objectSet>
</include>
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_MYMUSIC%\ [desktop.ini]</pattern>
</objectSet>
</merge>
</rules>
</role>
</component>
<script>
O valor retornado exigido pelo <script> depende do elemento pai.
Número de ocorrências: Uma vez para <variável>, ilimitado para <objectSet> e <processamento>
Elementos pai:<objectSet>, <variável>, <processamento>
Elementos filho: nenhum
Sintaxe e funções auxiliares:
Sintaxe geral:
<script>ScriptWithArguments</script>GetStringContent pode ser usado quando <o script> está dentro da <variável>.
Sintaxe:
<script>MigXmlHelper.GetStringContent("ObjectType","EncodedLocationPattern", "ExpandContent")</script>Exemplo:
<script>MigXMLHelper.GetStringContent("Registry","HKLM\Software\MyApp\Installer [EXEPATH]")</script>GenerateUserPatterns pode ser usado quando <o script> está dentro do< objectSet>.
Sintaxe:
<script>MigXmlHelper.GenerateUserPatterns("ObjectType","EncodedLocationPattern","ProcessCurrentUser")</script>Exemplo:
<script>MigXmlHelper.GenerateUserPatterns ("File","%USERPROFILE%\* [*.doc]", "FALSE")</script>GenerateDrivePatterns pode ser usado quando <o script> está dentro do< objectSet>.
Sintaxe:
<script>MigXmlHelper.GenerateDrivePatterns("PatternSegment","DriveType")</script>Exemplo:
<script>MigXmlHelper.GenerateDrivePatterns("* [sample.doc]", "Fixed")</script>Os scripts de execução simples podem ser usados com <elementos de script> que estão dentro <dos elementos de processamento> : AskForLogoff, ConvertToShortFileName, KillExplorer, RemoveEmptyDirectories, RestartExplorer, RegisterFonts, StartService, StopService, SyncSCM.
Sintaxe:
<script>MigXmlHelper.ExecutingScript</script>Exemplo:
<script>MigXmlHelper.KillExplorer()</script>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| ScriptWithArguments | Sim | Um script seguido por qualquer número de argumentos de cadeia de caracteres separados por uma vírgula e colocados entre parênteses. Por exemplo, MyScripts.AScript ("Arg1","Arg2").O script é chamado para cada objeto enumerado pelos conjuntos de objetos na regra de< inclusão>. O script de filtro retorna um valor booliano. Se o valor retornado for TRUE, o objeto será migrado. Se for FALSE, não será migrado. O valor retornado exigido pelo <script> depende do elemento pai.
|
Exemplos:
Para migrar o arquivo Sample.doc de qualquer unidade no computador de origem, use <o script> da seguinte maneira. Se existirem vários arquivos com o mesmo nome, todos esses arquivos serão migrados.
<script>MigXmlHelper.GenerateDrivePatterns("* [sample.doc]", "Fixed")</script>
Para obter mais exemplos de como usar esse elemento, consulte Excluir Files e configurações, Redirecionar Files e configurações e Exemplos de XML personalizado.
<Funções de script>
As funções a seguir podem ser usadas com o <elemento script>
Funções geradoras de cadeias de caracteres e padrões
Essas funções retornam uma cadeia de caracteres ou um padrão.
GetStringContent
GetStringContent pode ser usado com <elementos de script> que estão dentro de <elementos variáveis> . Se possível, esta função retorna a representação da cadeia de caracteres do objeto fornecido. Caso contrário, ele retornará NULL. Para objetos de arquivo, essa função sempre retorna NULL.
Sintaxe:
GetStringContent("ObjectType","EncodedLocationPattern", "ExpandContent")Configuração Obrigatório? Valor ObjectType Sim O tipo de objeto. Pode ser Registry ou Ini (para um arquivo .ini ). EncodedLocationPattern Sim - Se o tipo de objeto for Registry, EncodedLocationPattern deverá ser um caminho do Registro válido. Por exemplo,
HKLM\SOFTWARE\MyKey[]. - Se o tipo de objeto for Ini, EncodedLocationPattern deverá estar no seguinte formato:
IniFilePath|SectionName[SettingName]
ExpandContent Não (default=TRUE) Pode ser VERDADEIRO ou FALSO. Se for FALSE, o local fornecido não será expandido antes de ser retornado. Por exemplo:
<variable name="MSNMessengerInstPath"> <script>MigXmlHelper.GetStringContent("Registry","%HklmWowSoftware%\Microsoft\MSNMessenger [InstallationDirectory]")</script> </variable>- Se o tipo de objeto for Registry, EncodedLocationPattern deverá ser um caminho do Registro válido. Por exemplo,
GenerateDrivePatterns
A
GenerateDrivePatternsfunção itera todas as unidades disponíveis e seleciona aquelas que correspondem ao tipo de unidade solicitado. Em seguida, ele concatena as unidades selecionadas com a parte final de PatternSegment para formar um padrão de arquivo codificado completo. Por exemplo, se PatternSegment forPath [file.txt]e DriveType forFixed, a função geraráC:\Path [file.txt], e outros padrões se houver unidades fixas diferentes de C:. Variáveis de ambiente não podem ser especificadas com esta função.GenerateDrivePatternspode ser usado com <elementos de script> que estão dentro <de objectSet> que estão dentro de <include>/<exclude>.Sintaxe:
GenerateDrivePatterns("PatternSegment","DriveType")Configuração Obrigatório? Valor PatternSegment Sim O sufixo de um padrão codificado. O valor é concatenado com uma especificação de unidade, como "c:", para formar um padrão de arquivo codificado completo. Por exemplo, "* [*.doc]". PatternSegment não pode ser uma variável de ambiente. DriveType Sim O tipo de unidade para o qual os padrões devem ser gerados. Um dos seguintes itens pode ser especificado: - Fixo
- CD-ROM
- Removível
- Remoto
Consulte o último componente no
MigUser.xmlarquivo para obter um exemplo desse elemento.GenerateUserPatterns
A
GenerateUserPatternsfunção itera em todos os usuários que estão sendo migrados, excluindo o usuário processado no momento se <ProcessCurrentUser> for FALSE e expande o padrão especificado no contexto de cada usuário. Por exemplo, se os usuários A, B e C tiverem perfis emC:\Users, chamandoGenerateUserPattens('File','%userprofile% [*.doc]','TRUE'), a função auxiliar gerará os três padrões a seguir:"C:\Users\A\* [*.doc]"
"C:\Users\B\* [*.doc]"
"C:\Users\C\* [*.doc]"
Sintaxe:
GenerateUserPatterns("ObjectType","EncodedLocationPattern","ProcessCurrentUser")Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser arquivo ou registro. EncodedLocationPattern Sim O padrão de localização. Variáveis de ambiente são permitidas. ProcessCurrentUser Sim Pode ser VERDADEIRO ou FALSO. Indica se os padrões devem ser gerados para o usuário atual.
Exemplo:
Se GenerateUserPattens('File','%userprofile% [*.doc]','FALSE') for chamada enquanto a USMT estiver processando o usuário A, essa função só gerará padrões para os usuários B e C. Essa função auxiliar pode ser usada para criar regras complexas. Por exemplo, para migrar todos os .doc arquivos do computador de origem, mas se o .doc usuário X não for migrado, não migre nenhum dos arquivos do perfil do usuário X.
O exemplo a seguir é um código de exemplo para este cenário. O primeiro <elemento de regras> migra todos os .doc arquivos no computador de origem, exceto aqueles dentro C:\Usersdo . Os elementos da C:\Users segunda <regra> migram todos os .doc arquivos, exceto os .doc arquivos nos perfis dos outros usuários. Como o segundo <elemento de regras> é processado em cada contexto de usuário migrado, o resultado final é o comportamento desejado. O resultado final é o que esperávamos.
<rules context="System">
<include>
<objectSet>
<script>MigXmlHelper.GenerateDrivePatterns ("* [*.doc]", "Fixed")</script>
</objectSet>
</include>
<exclude>
<objectSet>
<pattern type="File">%ProfilesFolder%\* [*.doc]</pattern>
</objectSet>
</exclude>
</rules>
<rules context="User">
<include>
<objectSet>
<pattern type="File">%ProfilesFolder%\* [*.doc]</pattern>
</objectSet>
</include>
<exclude>
<objectSet>
<script>MigXmlHelper.GenerateUserPatterns ("File","%userprofile%\* [*.doc]", "FALSE")</script>
</objectSet>
</exclude>
</rules>
MigXmlHelper.GenerateDocPatterns
A MigXmlHelper.GenerateDocPatterns função auxiliar invoca o localizador de documentos para verificar o sistema em busca de todos os arquivos que podem ser migrados. Ela pode ser invocada no contexto do Sistema ou do Usuário para focalizar a verificação.
| Configuração | Obrigatório? | Valor |
|---|---|---|
| ScanProgramFiles | Não (padrão = FALSE) | Pode ser VERDADEIRO ou FALSO. O parâmetro ScanProgramFiles determina se o localizador de documentos examina ou não o diretório Program Files para coletar extensões de arquivo registradas para aplicativos conhecidos. Por exemplo, quando definido como TRUE , ele descobre e migra arquivos.jpg no diretório do Photoshop, se .jpg for uma extensão de arquivo registrada no Photoshop. |
| IncludePatterns | Não (padrão = TRUE) | Pode ser VERDADEIRO ou FALSO. VERDADEIRO gera padrões de inclusão e pode ser adicionado sob o <elemento de inclusão> . FALSO gera padrões de exclusão e pode ser adicionado sob o <elemento exclude> . |
| SystemDrive | Não (padrão = FALSE) | Pode ser VERDADEIRO ou FALSO. Se for TRUE, restringe todos os padrões à unidade do sistema. |
<!-- This component migrates data in user context -->
<component type="Documents" context="User">
<displayName>MigDocUser</displayName>
<role role="Data">
<rules>
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
<objectSet>
<script>MigXmlHelper.GenerateDocPatterns ("false")</script>
</objectSet>
</include>
<exclude>
<objectSet>
<script>MigXmlHelper.GenerateDocPatterns ("false", "false", "false")</script>
</objectSet>
</exclude>
</rules>
</role>
</component>
Execução simples de scripts
Os scripts a seguir não têm valor de retorno. Os erros a seguir podem ser usados com <elementos de script> que estão dentro <de elementos de processamento>
AskForLogoff(). Prompts para que o usuário saia ao final da migração. Por exemplo:
<processing when="apply-success"> <script>MigXmlHelper.AskForLogoff()</script> </processing>ConvertToShortFileName(RegistryEncodedLocation). Se RegistryEncodedLocation for o caminho completo de um arquivo existente, essa função converterá o arquivo em seu nome de arquivo curto e atualizará o valor do Registro.
KillExplorer(). Interrompe Explorer.exe para o contexto de usuário atual. Parar Explorer.exe permite o acesso a determinadas chaves e arquivos que são mantidos abertos quando Explorer.exe está em execução. Por exemplo:
<processing when="pre-apply"> <script>MigXmlHelper.KillExplorer()</script> </processing>RegisterFonts(FileEncodedLocation). Registra a fonte determinada ou todas as fontes no diretório fornecido. Por exemplo:
<processing when="apply-success">
<script>MigXmlHelper.RegisterFonts("%CSIDL_COMMON_FONTS%")</script>
</processing>
RemoveEmptyDirectories (DirectoryEncodedPattern). Exclui todos os diretórios vazios que correspondam a DirectoryEncodedPattern no computador de destino.
RestartExplorer(). Reinicia Explorer.exe no final da migração. Por exemplo:
<processing when="post-apply"> <script>MigXmlHelper.RestartExplorer()</script> </processing>StartService (ServiceName, OptionalParam1, OptionalParam2,...). Inicia o serviço identificado pelo ServiceName. ServiceName é a subchave
HKLM\System\CurrentControlSet\Servicesque contém os dados de um determinado serviço. Os parâmetros opcionais, se houver, são passados para a API StartService. Para obter mais informações, consulte o artigo da função StartServiceA (winsvc.h).StopService (ServiceName). Interrompe o serviço identificado pelo ServiceName. ServiceName é a subchave
HKLM\System\CurrentControlSet\Servicesque contém os dados de um determinado serviço.SyncSCM(ServiceShortName). Lê o valor do tipo Start do registro
(HKLM\System\CurrentControlSet\Services\ServiceShortName [Start])depois que o valor é alterado pelo mecanismo de migração e sincroniza o SCM (Service Control Manager) com o novo valor.
<texto>
O <elemento de texto> pode ser usado para definir um valor para quaisquer variáveis de ambiente que estejam dentro de um dos arquivos de .xml de migração.
Número de ocorrências: Uma vez em cada <elemento variável> .
Elementos pai:<variável>
Elementos filho: Nenhum.
Sintaxe:
<text>NormalText</text>
| Configuração | Valor |
|---|---|
| NormalText | Esse texto é interpretado como texto normal. |
Por exemplo:
<variable name="QuickTime5or6DataSys">
<text>%CSIDL_COMMON_APPDATA%\QuickTime</text>
</variable>
<unconditionalExclude>
O <elemento unconditionalExclude> exclui os arquivos especificados e os valores do Registro da migração, independentemente das outras regras de inclusão em qualquer um dos arquivos .xml migração ou no Config.xml arquivo. Os objetos declarados aqui não são migrados porque esse elemento tem precedência sobre todas as outras regras. Por exemplo, mesmo que haja regras de inclusão> explícitas< para incluir .mp3 arquivos, se elas forem excluídas com essa opção, elas não serão migradas.
Use esse elemento para excluir todos os .mp3 arquivos do computador de origem. Ou, se estiver fazendo o backup C:\UserData usando outro método, a pasta inteira poderá ser excluída da migração. Use esse elemento com cuidado. Se um aplicativo precisar de um arquivo excluído, talvez o aplicativo não funcione corretamente no computador de destino.
Número de ocorrências: Ilimitado.
Elementos pai:<regras>
Elementos filho:<objectSet>
Sintaxe:
<unconditionalExclude></unconditionalExclude>
O arquivo .xml a seguir exclui todos os .mp3 arquivos da migração. Para obter exemplos adicionais de como usar esse elemento, consulte Excluir Files e Configurações.
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/excludefiles">
<component context="System" type="Documents">
<displayName>Test</displayName>
<role role="Data">
<rules>
<unconditionalExclude>
<objectSet>
<script>MigXmlHelper.GenerateDrivePatterns ("* [*.mp3]", "Fixed")</script>
</objectSet>
</unconditionalExclude>
</rules>
</role>
</component>
</migration>
<variável>
O <elemento variable> é necessário em um <elemento de ambiente> . Para cada <elemento variável> , deve haver um <objectSet>, <script> ou <elemento de texto> . O conteúdo do elemento variável> atribui um valor de< texto à variável de ambiente. Esse elemento tem as três opções a seguir:
Se o <elemento variável> contiver um <elemento de texto> , o valor do elemento variável será o valor do <elemento de texto> .
Se o <elemento variable> contiver um <elemento script> e a invocação do script produzir uma cadeia de caracteres não nula, o valor do <elemento variable> será o resultado da invocação do script.
Se o <elemento variável> contiver um <elemento objectSet> e a avaliação do <elemento objectSet> produzir pelo menos um padrão de objeto, o valor do primeiro objeto a corresponder ao padrão de objeto resultante será o valor do elemento variável.
Número de ocorrências: Ilimitado
Elementos pai:<ambiente>
Elementos filho necessários:<text>, <script> ou <objectSet>
Sintaxe:
<variable name="ID" remap=TRUE|FALSE>
</variable>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| name | Sim |
ID é um valor de cadeia de caracteres que é o nome usado para fazer referência à variável de ambiente. A Microsoft recomenda que a ID comece com o nome do componente para evitar colisões de namespace. Por exemplo, se o nome do componente for MyComponent e uma variável for desejada que seja o caminho de instalação do componente, MyComponent.InstallPathpoderá ser especificada. |
| remapear | Não, padrão = FALSE | Especifica se essa variável de ambiente deve ser avaliada como uma variável de ambiente de remapeamento. Os objetos que estão localizados em um caminho que está abaixo do valor dessa variável de ambiente são movidos automaticamente para onde a variável de ambiente aponta para o computador de destino. |
O exemplo a MigApp.xml seguir é do arquivo:
<environment>
<variable name="HklmWowSoftware">
<text>HKLM\Software</text>
</variable>
<variable name="WinZip8or9or10Exe">
<script>MigXmlHelper.GetStringContent("Registry","%HklmWowSoftware%\Microsoft\Windows\CurrentVersion\App Paths\winzip32.exe []")</script>
</variable>
</environment>
<version>
O <elemento version> define a versão do componente, mas não afeta a migração.
Número de ocorrências: zero ou uma
elementos pai:<componente>
Elementos filho: nenhum
Sintaxe:
<version>ComponentVersion</version>
| Configuração | Obrigatório? | Valor |
|---|---|---|
| Versão do Componente | Sim | A versão do componente, que pode conter padrões. |
Por exemplo:
<version>4.*</version>
<windowsObjects>
O <elemento windowsObjects> é apenas para uso interno da USMT. Não use este elemento.
Apêndice
Especificando locais
Especificar locais codificados. O local codificado usado em todas as funções auxiliares é uma representação inequívoca de cadeia de caracteres para o nome de um objeto. O local codificado é composto pela parte do nó, opcionalmente seguida pela folha entre colchetes. Esse formato faz uma distinção clara entre nós e folhas.
Por exemplo, especifique o arquivo
C:\Windows\Notepad.exeassim:c:\Windows[Notepad.exe]. Da mesma forma, especifique o diretórioC:\Windows\System32assim:c:\Windows\System32. (Observe a ausência da[]construção.)A representação do Registro é semelhante. O valor padrão de uma chave do Registro é representado como uma construção vazia
[]. Por exemplo, o valor padrão para aHKLM\SOFTWARE\MyKeychave do Registro éHKLM\SOFTWARE\MyKey[].Especificando padrões de localização. Especificar um padrão de localização é semelhante a especificar uma localização real. A exceção é que tanto o nó quanto a parte folha aceitam padrões. No entanto, um padrão do nó não se estende até a folha.
Por exemplo, o padrão
c:\Windows\*corresponde ao diretório do Windows e a todos os subdiretórios, mas não corresponde a nenhum dos arquivos nesses diretórios. Para corresponder aos arquivos também,c:\Windows\*[*]deve ser especificado.
Funções internas da USMT
As funções a seguir são apenas para uso interno da USMT. Não as use em um arquivo .xml .
AntiAlias
ConvertScreenSaver
ConvertShowIEOnDesktop
ConvertToOfficeLangID
MigrateActiveDesktop
MigrateAppearanceUPM
MigrateDisplayCS
MigrateDisplaySS
MigrateIEAutoSearch
MigrateMouseUPM
MigrateSoundSysTray
MigrateTaskBarSS
SetPstPathInMapiStruc
Marcas de versão válidas
As marcas de versão a seguir podem ser usadas com várias funções auxiliares:
"CompanyName"
"FileDescription"
"FileVersion"
"InternalName"
"Direitos autorais legais"
"OriginalFilename"
"ProductName"
"ProductVersion"
As marcas de versão a seguir contêm valores que podem ser comparados:
"FileVersion"
"ProductVersion"