Biblioteca de elementos XML
Este artigo descreve os elementos XML e as funções auxiliares que podem ser utilizadas para criar ficheiros de migração.xml a utilizar com a Ferramenta de Migração de Estado do Utilizador (USMT). Este artigo pressupõe um conhecimento básico do XML.
Para além dos elementos XML e das funções auxiliares, este artigo:
- Descreve como especificar padrões de localizações e localizações codificadas.
- As funções que se destinam apenas à utilização interna do USMT.
- As etiquetas de versão que podem ser utilizadas com funções auxiliares.
Elementos e funções auxiliares
A tabela seguinte descreve os elementos XML e as funções auxiliares que podem ser utilizadas com USMT.
<addObjects>
O <elemento addObjects> emula a existência de um ou mais objetos no computador de origem. Os elementos do objeto> subordinado< fornecem os detalhes dos objetos emulados. Se o conteúdo for um <elemento de script> , o resultado da invocação é uma matriz de objetos.
Número de ocorrências: ilimitadas
Elementos principais:<regras>
Elementos subordinados necessários:<objeto> Além disso, <a localização> e <o atributo> têm de ser especificados como elementos subordinados deste <elemento de objeto> .
Elementos subordinados opcionais:<condições>, <condição>, <script>
Sintaxe:
<addObjects>
</addObjects>
O exemplo seguinte é do MigApp.xml
ficheiro:
<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>
<atributos>
O <elemento atributos> define os atributos de um ficheiro ou chave de registo.
Número de ocorrências: uma vez para cada <objeto>
Elementos principais:<objeto>
Elementos subordinados: nenhum
Sintaxe:
<attributes>Content</attributes>
Configuração | Obrigatório? | Valor |
---|---|---|
Conteúdo | Sim | O conteúdo depende do tipo de objeto especificado.
|
O exemplo seguinte é do MigApp.xml
ficheiro:
<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 ficheiros porque, se <a localização> corresponder a uma chave de registo ou a um diretório, <os bytes são ignorados> .
Número de ocorrências: zero ou um
Elementos principais:<objeto>
Elementos subordinados: nenhum
Sintaxe:
<bytes string="Yes|No" expand="Yes|No">Content</bytes>
Configuração | Obrigatório? | Valor |
---|---|---|
string | Não, a predefinição é Não | Determina se o Conteúdo deve ser interpretado como uma cadeia ou como bytes. |
expand | Não (predefinição = Sim | Quando o parâmetro de expansão é Sim, o <conteúdo do elemento bytes> é expandido primeiro no contexto do computador de origem e, em seguida, interpretado. |
Conteúdo | Sim | Depende do valor da cadeia.
|
O exemplo seguinte é do MigApp.xml
ficheiro:
<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 utilizado para iniciar ou parar um serviço ou aplicação antes ou depois de executar as ferramentas ScanState e LoadState .
Número de ocorrências: ilimitadas
Elementos principais:<externalProcess>
Elementos subordinados: nenhum
Sintaxe:
<commandLine>CommandLineString</commandLine>
Configuração | Obrigatório? | Valor |
---|---|---|
CommandLineString | Sim | Uma linha de comandos válida. |
<componente>
O <elemento de componente> é necessário num ficheiro de.xml personalizado. Este elemento define a construção mais básica de um ficheiro de.xml de migração. Por exemplo, no ficheiro, o MigApp.xml
Microsoft Office 2016 é um componente que contém outro componente, o Microsoft Office Access 2016. Os elementos subordinados podem ser utilizados para definir o componente.
Um componente pode ser aninhado dentro de outro componente; ou seja, o <elemento de componente> pode ser subordinado do <elemento de função> no elemento do< componente> em dois casos:
- Quando o elemento componente> principal< é um contentor
- Se o elemento componente> subordinado< tiver a mesma função que o elemento de componente> principal<.
Número de ocorrências: Ilimitado
Elementos principais:<migração, função>><
Elementos subordinados necessários:<função>, <displayName>
Elementos subordinados 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 seguintes itens podem ser utilizados para agrupar definições e definir o tipo de componente.
|
contexto | Não Predefinição = UserAndSystem |
Define o âmbito deste parâmetro; ou seja, se pretende processar este componente no contexto do utilizador específico, em todo o sistema operativo ou ambos. O maior âmbito possível é definido pelo <elemento de componente> . Por exemplo, se um <elemento de componente> tiver um contexto de Utilizador e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> funcionará como se tivesse um contexto de Utilizador. Se um <elemento de regras> tiver um contexto de Sistema, funcionará como se o <elemento de regras> não estivesse lá.
|
defaultSupported | Não (predefinição = VERDADEIRO) |
Pode ser qualquer uma das opções VERDADEIRO, FALSO, SIM ou NÃO. Se este parâmetro for FALSO (ou NÃO), o componente não será migrado, a menos que exista um componente equivalente no computador de destino. Quando type="System" e defaultSupported="FALSE", as definições não são migradas, a menos que exista um componente equivalente no .xml ficheiros especificados na LoadState.exe linha de comandos. Por exemplo, o ficheiro predefinido MigSys.xml contém componentes com type="System" e defaultSupported="FALSE". Se este ficheiro for especificado na ScanState.exe linha de comandos, o ficheiro também tem de ser especificado na LoadState.exe linha de comandos para que as definições sejam migradas. O ficheiro tem de ser especificado em ambas as linhas de comandos porque a ferramenta LoadState tem de detetar um componente equivalente. Ou seja, o componente tem de ter o mesmo urlid de migração do ficheiro .xml e um nome a apresentar idêntico ou a ferramenta LoadState não migra essas definições a partir do arquivo. Esta definição é útil porque um arquivo pode ser utilizado para computadores de destino com a mesma versão ou versão diferente do Windows que o computador de origem. |
oculto | Este parâmetro destina-se apenas à utilização interna do USMT. |
Por exemplo, veja qualquer um dos ficheiros de migração.xmlpredefinidos .
<condição>
Embora o <elemento de condição> nos <elementos de deteção>, <objectSet> e <addObjects> ainda seja suportado, a Microsoft recomenda que deixe de utilizar o <elemento de condição> , uma vez que poderá ser preterido em versões futuras do USMT. Se o elemento da <condição> for preterido, será necessária uma reescrita de todos os scripts que utilizem o elemento condition<>. Em vez disso, se uma condição precisar de ser utilizada nos <elementos objectSet> e <addObjects>, a Microsoft recomenda a utilização do elemento de condições> mais potente<. O <elemento conditions> permite a formulação de instruções booleanas complexas.
O <elemento condition> tem um resultado Booleano. Este elemento pode ser utilizado para especificar as condições em que o elemento principal é avaliado. Se alguma das condições atuais devolver FALSO, o elemento principal não será avaliado.
Número de ocorrências: ilimitadas.
Elementos principais:<condições>, detetar<>, <objectSet>, <addObjects>
Elementos subordinados: nenhum
Funções auxiliares: As seguintes <funções condicionais> podem ser utilizadas com este elemento:
DoesOSMatch
,IsNative64Bit()
,IsOSLaterThan
,IsOSEarlierThan
,DoesObjectExist
,DoesFileVersionMatch
,IsFileVersionAbove
,IsFileVersionBelow
,IsSystemContext
, ,DoesStringContentEqual
,DoesStringContentContain
, ,IsSameObject
, , eIsSameContent
IsSameStringContent
.
Sintaxe:
<condition negation="Yes|No">ScriptName</condition>
Configuração | Obrigatório? | Valor |
---|---|---|
negação | Não Predefinição = Não |
"Sim" inverte o valor Verdadeiro/Falso da condição. |
ScriptName | Sim | Um script definido nesta secção de migração. |
Por exemplo, no seguinte exemplo de código, os elementos da <condição>, A e B, são unidos pelo operador AND porque estão em secções de condições> separadas<:
<detection>
<conditions>
<condition>A</condition>
</conditions>
<conditions operation="AND">
<condition>B</condition>
</conditions>
</detection>
No entanto, no seguinte exemplo de código, os elementos da <condição>, A e B, são unidos pelo operador OR porque estão na mesma <secçã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> devolvem um valor Booleano. Estes elementos podem ser utilizados em <condições addObjects> .
Funções de versão do sistema operativo
DoesOSMatch
Todas as correspondências não são sensíveis a maiúsculas e minúsculas.
Sintaxe:
DoesOSMatch("OSType","OSVersion")
Configuração Obrigatório? Valor OSType Sim O único valor válido para esta definição é NT. No entanto, esta definição tem de 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 de diskette do serviço corrigida separada por períodos. 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 devolve TRUE se o processo de migração estiver em execução como um processo nativo de 64 bits; ou seja, um processo em execução num sistema de 64 bits sem o Windows no Windows (WOW). Caso contrário, devolve FALSO.
IsOSLaterThan
Todas as comparações não são sensíveis a maiúsculas e minúsculas.
Sintaxe:
IsOSLaterThan("OSType","OSVersion")
Configuração Obrigatório? Valor OSType Sim Pode ser 9x ou NT. Se OSType não corresponder ao tipo do sistema operativo atual, devolve FALSO. Por exemplo, se o sistema operativo atual for baseado em Windows NT e OSType for "9x", o resultado será FALSO. OSVersion Sim A versão principal, a versão secundária, o número de compilação e a versão de diskette do serviço corrigida separada por períodos. Por exemplo, 5.0.2600.Service Pack 1
. A especificação parcial da versão também pode ser especificada, mas não é permitido nenhum padrão, como5.0
.
A função IsOSLaterThan devolve TRUE se o sistema operativo 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 são sensíveis a maiúsculas e minúsculas.
Sintaxe:
IsOSEarlierThan("OSType","OSVersion")
Configuração Obrigatório? Valor OSType Sim Pode ser 9x ou NT. Se OSType não corresponder ao tipo do sistema operativo atual, devolve FALSO. Por exemplo, se o sistema operativo atual for baseado em Windows NT e OSType for "9x", o resultado será FALSO. OSVersion Sim A versão principal, a versão secundária, o número de compilação e a versão de diskette do serviço corrigida separada por períodos. Por exemplo, 5.0.2600.Service Pack 1
. A especificação parcial da versão também pode ser especificada, mas não é permitido nenhum padrão, como5.0
.
A função IsOSEarlierThan devolve TRUE se o sistema operativo atual for anterior a OSVersion.
Funções de conteúdo de objeto
DoesObjectExist
A função DoesObjectExist devolve VERDADEIRO se existir algum objeto que corresponda ao padrão de localização. Caso contrário, devolve FALSO. 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 Ficheiro ou Registo. EncodedLocationPattern Sim O padrão de localização. As variáveis de ambiente são permitidas. Para obter um exemplo deste elemento, veja o
MigApp.xml
ficheiro .DoesFileVersionMatch
O padrão marcar não é sensível a maiúsculas e minúsculas.
Sintaxe:
DoesFileVersionMatch("EncodedFileLocation","VersionTag","VersionValue")
Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do ficheiro que está verificado. As variáveis de ambiente são permitidas. VersionTag Sim O valor da etiqueta de versão que está selecionado. VersionValue Sim Um padrão de cadeia. 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 devolve TRUE se a versão do ficheiro for superior a VersionValue.
Sintaxe:
IsFileVersionAbove("EncodedFileLocation","VersionTag","VersionValue")
Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do ficheiro que está verificado. As variáveis de ambiente são permitidas. VersionTag Sim O valor da etiqueta de versão que está selecionado. VersionValue Sim O valor a comparar. Não é possível especificar um padrão. IsFileVersionBelow
Sintaxe:
IsFileVersionBelow("EncodedFileLocation","VersionTag","VersionValue")
Configuração Obrigatório? Valor EncodedFileLocation Sim O padrão de localização do ficheiro que está verificado. As variáveis de ambiente são permitidas. VersionTag Sim O valor da etiqueta de versão que está selecionado. VersionValue Sim O valor a comparar. Não é possível especificar um padrão. IsSystemContext
A função IsSystemContext devolve VERDADEIRO se o contexto atual for "Sistema". Caso contrário, devolve FALSO.
Sintaxe:
IsSystemContext()
DoesStringContentEqual
A função DoesStringContentEqual devolve TRUE se a representação da cadeia do objeto especificado for idêntica a
StringContent
.Sintaxe:
DoesStringContentEqual("ObjectType","EncodedLocation","StringContent")
Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser Ficheiro ou Registo. EncodedLocationPattern Sim A localização codificada para o objeto que é examinado. As variáveis de ambiente podem ser especificadas. StringContent Sim A cadeia que está selecionada. Por exemplo:
<condition negation="Yes">MigXmlHelper.DoesStringContentEqual("File","%USERNAME%","")</condition>
DoesStringContentContain
A função DoesStringContentContain devolve TRUE se existir, pelo menos, uma ocorrência de StrToFind na representação de cadeia do objeto.
Sintaxe:
DoesStringContentContain("ObjectType","EncodedLocation","StrToFind")
Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser Ficheiro ou Registo. EncodedLocationPattern Sim A localização codificada para o objeto que é examinado. As variáveis de ambiente podem ser especificadas. StrToFind Sim Uma cadeia que é pesquisada dentro do conteúdo do objeto especificado. IsSameObject
A função IsSameObject devolve VERDADEIRO se as localizações codificadas especificadas resolve para o mesmo objeto físico. Caso contrário, devolve FALSO.
Sintaxe:
IsSameObject("ObjectType","EncodedLocation1","EncodedLocation2")
Configuração Obrigatório? Valor ObjectType Sim Define o tipo de objeto. Pode ser Ficheiro ou Registo. CodificaçãoLocation1 Sim A localização codificada para o primeiro objeto. As variáveis de ambiente podem ser especificadas. EncodedLocation2 Sim A localização codificada para o segundo objeto. As 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 devolve VERDADEIRO se os objetos especificados tiverem o mesmo conteúdo. Caso contrário, devolve FALSO. O conteúdo é comparado com byte byte.
Sintaxe:
IsSameContent("ObjectType1","EncodedLocation1","ObjectType2","EncodedLocation2")
Configuração Obrigatório? Valor ObjectType1 Sim Define o tipo do primeiro objeto. Pode ser Ficheiro ou Registo. CodificaçãoLocation1 Sim A localização codificada para o primeiro objeto. As variáveis de ambiente podem ser especificadas. ObjectType2 Sim Define o tipo do segundo objeto. Pode ser Ficheiro ou Registo. EncodedLocation2 Sim A localização codificada para o segundo objeto. As variáveis de ambiente podem ser especificadas. IsSameStringContent
A função IsSameStringContent devolve VERDADEIRO se os objetos especificados tiverem o mesmo conteúdo. Caso contrário, devolve FALSO. O conteúdo é interpretado como uma cadeia.
Sintaxe:
IsSameStringContent("ObjectType1","EncodedLocation1","ObjectType2","EncodedLocation2")
Configuração Obrigatório? Valor ObjectType1 Sim Define o tipo do primeiro objeto. Pode ser Ficheiro ou Registo. CodificaçãoLocation1 Sim A localização codificada para o primeiro objeto. As variáveis de ambiente podem ser especificadas. ObjectType2 Sim Define o tipo do segundo objeto. Pode ser Ficheiro ou Registo. EncodedLocation2 Sim A localização codificada para o segundo objeto. As variáveis de ambiente podem ser especificadas.
<condições>
O <elemento conditions> devolve um resultado booleano que é utilizado para especificar as condições em que o elemento principal é avaliado. O USMT avalia os elementos subordinados e, em seguida, associa os respetivos resultados com os operadores E ou OU 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 na <deteção>, <regras>, <addObjects> e <objectSet>
Elementos principais:<condições>, <deteção>, <ambiente>, <regras>, <addObjects> e <objectSet>
Elementos subordinados:<condições>, <condição>
Sintaxe:
<conditions operation="AND|OR">
</conditions>
Configuração | Obrigatório? | Valor |
---|---|---|
operação | Não, predefinição = E | Define a operação Booleana que é executada nos resultados obtidos a partir dos elementos subordinados. |
O exemplo seguinte é do MigApp.xml
ficheiro:
<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 utilizado para especificar uma lista de padrões de objetos para obter um conjunto de objetos a partir do computador de origem. Cada <objectSet> dentro de um <elemento de conteúdo> é avaliado. Para cada lista de padrões de objeto resultante, os objetos correspondentes são enumerados e os respetivos conteúdos são filtrados pelo parâmetro de filtro. A matriz de cadeia resultante é a saída do <elemento de conteúdo> . O script de filtro devolve uma matriz de localizações. O elemento objectSet> principal< pode conter vários elementos de conteúdo> subordinado<.
Número de ocorrências: ilimitadas
Elementos principais:<objectSet>
Elementos subordinados:<objectSet>
Funções auxiliares: As seguintes <funções de conteúdo> podem ser utilizadas com este elemento:
ExtractSingleFile
,ExtractMultipleFiles
eExtractDirectory
.
Sintaxe:
<content filter="ScriptInvocation">
</content>
Configuração | Obrigatório? | Valor |
---|---|---|
filter | Sim | Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
<funções de conteúdo>
As seguintes funções geram padrões a partir do conteúdo de um objeto. Estas funções são chamadas para cada objeto que o elemento objectSet> principal< está a enumerar.
ExtractSingleFile
Se o valor do registo for multi-SZ, apenas o primeiro segmento é processado. O padrão devolvido é a localização codificada para um ficheiro que tem de existir no sistema. Se a especificação estiver correta no valor do registo, mas o ficheiro não existir, esta função devolve NULO.
Sintaxe:
ExtractSingleFile(Separators,PathHints)
Configuração Obrigatório? Valor Separadores Sim Uma lista de possíveis separadores que podem seguir a especificação de ficheiro neste nome de valor de registo. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador é uma vírgula. É possível especificar NULL. PathHints Sim Uma lista de caminhos adicionais, separados por dois pontos ( ;
), onde a função procura um ficheiro 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 localiza Notepad.exe em%windir%
e devolve "c:\Windows [Notepad.exe]". É possível especificar NULL.Por exemplo:
<content filter="MigXmlHelper.ExtractSingleFile(',','%system%')">
e
<content filter="MigXmlHelper.ExtractSingleFile(NULL,'%CSIDL_COMMON_FONTS%')">
ExtractMultipleFiles
A função ExtractMultipleFiles devolve vários padrões, um para cada ficheiro que é encontrado no conteúdo do valor de registo especificado. Se o valor do registo for multi-SZ, o separador MULTI-SZ é considerado um separador por predefinição. Por conseguinte, para MULTI-SZ, o <argumento Separadores> tem de ser NULO.
Os padrões devolvidos são as localizações codificadas para ficheiros que têm de existir no computador de origem. Se a especificação estiver correta no valor do registo, mas o ficheiro não existir, 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 ficheiro neste nome de valor de registo. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador é uma vírgula. Este parâmetro tem de ser NULL ao processar valores de registo MULTI-SZ . PathHints Sim Uma lista de caminhos adicionais, separados por dois pontos ( ;
), onde a função procura um ficheiro 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 localiza Notepad.exe em%windir%
e devolve "c:\Windows [Notepad.exe]". É possível especificar NULL.ExtractDirectory
A função ExtractDirectory devolve um padrão que é a localização codificada para um diretório que tem de existir no computador de origem. Se a especificação estiver correta no valor do registo, mas o diretório não existir, esta função devolve NULO. Se estiver a processar um valor de registo que seja multi-SZ, apenas o primeiro segmento é 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 ficheiro neste nome de valor de registo. Por exemplo, se o conteúdo for "C:\Windows\Notepad.exe,-2", o separador é uma vírgula. É necessário especificar NULL ao processar valores de registo MULTI-SZ. LevelsToTrim Sim O número de níveis a eliminar do final da especificação do diretório. Utilize esta função para extrair um diretório de raiz quando existir um valor de registo que aponte para dentro desse diretório de raiz numa localização conhecida. PatternSuffix Sim O padrão a adicionar à 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 de o objeto ser escrito no computador de destino. Para cada <elemento contentModify> , pode haver vários <elementos objectSet> . Este elemento devolve o novo conteúdo do objeto que está a ser processado.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elementos subordinados necessários:<objectSet>
Funções auxiliares: as seguintes <funções contentModify> podem ser utilizadas 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 de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
<contentModify functions (funções contentModify> )
As seguintes funções alteram o conteúdo dos objetos à medida que são migrados. Estas funções são chamadas para cada objeto que o elemento objectSet> principal< está a enumerar.
ConverterToDWORD
A função ConvertToDWORD converte o conteúdo dos valores de registo enumerados pelo elemento ObjectSet> principal< num DWORD. Por exemplo, ConverterToDWORD converte a cadeia
"1"
em DWORD0x00000001
. Se a conversão falhar, será aplicado o valor DefaultValueOnError .Sintaxe:
ConvertToDWORD(DefaultValueOnError)
Configuração Obrigatório? Valor DefaultValueOnError Não O valor que é escrito no nome do valor se a conversão falhar. É possível especificar NULL e 0
é escrito se a conversão falhar.ConverterToString
A função ConvertToString converte o conteúdo dos valores de registo que correspondem ao elemento ObjectSet> principal< numa cadeia. Por exemplo, converte o DWORD
0x00000001
na cadeia "1". Se a conversão falhar, será aplicado o valor DefaultValueOnError .Sintaxe:
ConvertToString(DefaultValueOnError)
Configuração Obrigatório? Valor DefaultValueOnError Não O valor que é escrito no nome do valor se a conversão falhar. É possível especificar NULL e 0
é escrito se a conversão falhar.Por exemplo:
<contentModify script="MigXmlHelper.ConvertToString('1')"> <objectSet> <pattern type="Registry">HKCU\Control Panel\Desktop [ScreenSaveUsePassword]</pattern> </objectSet> </contentModify>
ConverterToBinary
A função ConvertToBinary converte o conteúdo dos valores de registo que correspondem ao elemento objectSet> principal< para um tipo binário.
Sintaxe:
ConvertToBinary ()
OffsetValue
A função OffsetValue adiciona ou subtrai Valor ao valor do objeto migrado e, em seguida, escreve o resultado novamente no valor de registo no computador de destino. Por exemplo, se o objeto migrado for um DWORD com um valor de
14
e o Valor for "-2", o valor do registo estará12
no computador de destino.Sintaxe:
OffsetValue(Value)
Configuração Obrigatório? Valor Valor Sim A representação de cadeia de carateres 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 à tabela de origem. Se o valor estiver lá, será aplicado o valor equivalente na tabela de destino. Se o valor não estiver lá ou se a tabela de destino não tiver um valor equivalente, será aplicado DefaultValueOnError .
Sintaxe:
SetValueByTable(SourceTable,DestinationTable,DefaultValueOnError)
Configuração Obrigatório? Valor Tabela De Origem Sim Uma lista de valores separados por vírgulas que são possíveis para os valores do registo de origem. DestinationTable Não Uma lista de valores traduzidos separados por vírgulas. DefaultValueOnError Não O valor que é aplicado ao computador de destino se um dos dois - O valor do computador de origem não corresponde a SourceTable
- DestinationTable não tem um valor equivalente.
Se DefaultValueOnError for NULL, o valor não será alterado no computador de destino.KeepExisting
A função KeepExisting pode ser utilizada quando existem conflitos no computador de destino. Esta 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 Segurança, TimeFields ou FileAttrib:Letter. Pode especificar um de cada tipo de OptionStrings . Não especifique várias OptionStrings com o mesmo valor. Se forem especificadas múltiplas OptionStrings com o mesmo valor, é mantida a opção mais à direita desse tipo. Por exemplo, não especifique ("FileAttrib:H", "FileAttrib:R") porque apenas o Só de Leitura é avaliado. Em vez disso, especifique ("FileAttrib:HR") e os atributos Ocultos e Só de Leitura são mantidos no computador de destino. - Segurança: mantém o descritor de segurança do objeto de destino, se existir.
- TimeFields: mantém os carimbos de data/hora do objeto de destino. Este parâmetro destina-se apenas a ficheiros.
-
FileAttrib:<Letra>: mantém o valor do atributo do objeto de destino, ativado ou DESATIVADO, para o conjunto especificado de atributos de ficheiro. Este parâmetro destina-se apenas a ficheiros. As seguintes opções não são sensíveis a maiúsculas e minúsculas, mas a USMT irá ignorar quaisquer valores inválidos, repetidos ou se existir um espaço depois de FileAttrib:. Qualquer combinação dos seguintes atributos pode ser especificada:
- A = Arquivo
- C = Comprimido
- E = Encriptado
- H = Oculto
- I = Não Indexado por Conteúdo
- O = Offline
- R = Read-Only
- S = Sistema
- T = Temporário
MergeMultiSzContent
A função MergeMultiSzContent intercala o conteúdo MULTI-SZ dos valores de registo enumerados pelo elemento objectSet> principal< com o conteúdo dos valores de registo equivalentes que já existem no computador de destino.
Instruction
eString
remova 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 correspondente ao MULTI-SZ resultante, se ainda não estiver lá.
- Remover. Remove a Cadeia correspondente do MULTI-SZ resultante.
String Sim A cadeia a adicionar ou remover. MergeDelimitedContent
A função MergeDelimitedContent intercala o conteúdo dos valores de registo enumerados pelo elemento ObjectSet> principal< com o conteúdo dos valores de registo equivalentes que já existem no computador de destino. O conteúdo é considerado uma lista de elementos separados por um dos carateres no parâmetro Delimitadores. Os elementos duplicados são removidos.
Sintaxe:
MergeDelimitedContent(Delimiters,Instruction,String,…)
Configuração Obrigatório? Valor Delimitadores Sim Um único caráter que é utilizado para separar o conteúdo do objeto que está a ser processado. O conteúdo é considerado uma lista de elementos separados pelos Delimitadores.
Por exemplo,"."
separa a cadeia com base num ponto final.Instrução Sim Pode ser um dos seguintes valores: - Adicionar: adiciona Cadeia ao MULTI-SZ resultante se ainda não estiver lá.
- Remover: remove Cadeia do MULTI-SZ resultante.
String Sim A cadeia a adicionar ou remover.
<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 um
Elementos principais:<componente>
Elementos subordinados: nenhum
Sintaxe:
<description>ComponentDescription</description>
Configuração | Obrigatório? | Valor |
---|---|---|
ComponentDescription | Sim | A descrição do componente. |
O seguinte exemplo de código mostra como o <elemento de descrição> define a descrição "O meu componente personalizado":
<description>My custom component<description>
<destinationCleanup>
O <elemento destinationCleanup> elimina objetos, como ficheiros e chaves de registo, do computador de destino antes de aplicar os objetos do computador de origem. Este elemento só é avaliado quando a ferramenta LoadState é executada no computador de destino. Ou seja, este elemento é ignorado pela ferramenta ScanState .
Importante
Utilize esta opção com muito cuidado, uma vez que irá eliminar objetos do computador de destino.
Para cada <elemento destinationCleanup> , pode haver vários <elementos objectSet> . Uma utilização comum para este elemento é se existir uma chave de registo em falta no computador de origem, mas o componente ainda precisar de ser migrado. Neste caso, todas as chaves de registo do componente podem ser eliminadas antes de migrar as chaves do registo de origem. A eliminação de todas as chaves de registo do componente garante que, se existir uma chave em falta no computador de origem, também estará em falta no computador de destino.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elementos subordinados:<objectSet> (O computador de destino elimina todos os elementos subordinados.)
Sintaxe:
<destinationCleanup filter=ScriptInvocation>
</destinationCleanup>
Configuração | Obrigatório? | Valor |
---|---|---|
filter | Sim | Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, 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>
<detetar>
Embora o <elemento de deteção> ainda seja suportado, a Microsoft recomenda que deixe de utilizar o<> elemento de deteção, uma vez que poderá ser preterido em versões futuras do USMT. Se o <elemento de deteção> for preterido, será necessária uma reescrita de todos os scripts que utilizem o elemento de deteção<>. Em vez disso, a Microsoft recomenda a utilização do< elemento de deteção>. O <elemento de deteção> permite instruções booleanas complexas mais claramente formuladas
O <elemento de deteção> pode ser utilizado para determinar se o componente está presente num sistema. Se todos os elementos de deteção subordinados<> dentro de um elemento dedeteção> resolve como VERDADEIRO, o elemento de deteção é resolvido como< VERDADEIRO.<> Se qualquer elemento subordinado< detetar> elementos resolve como FALSO, o elemento principal <de deteção> será resolvido como FALSO. Se não existir nenhuma <secção de elemento de deteção> , a USMT pressupõe que o componente está presente.
Para cada <elemento de deteção> , podem existir várias <condições> subordinadas ou <elementos objectSet> , que são logicamente associados por um operador OR . Se, pelo menos, uma <condição> ou <elemento objectSet> for avaliado como VERDADEIRO, o elemento de deteção<> é avaliado como VERDADEIRO.
Número de ocorrências: ilimitadas
Elementos principais:<deteta>, <com o nomeElements>
Elementos subordinados necessários:<condição>
Elementos subordinados opcionais:<objectSet>
Sintaxe:
<detect name="ID" context="User|System|UserAndSystem">
</detect>
Configuração | Obrigatório? | Valor |
---|---|---|
name | Sim, quando <detetar> um subordinado com <o nomeElements> Não, quando <detetar> um subordinado a <detetar> |
Quando o ID é especificado, os elementos subordinados não são processados. Em vez disso, todos os outros <elementos de deteção> com o mesmo nome que são declarados no< elemento namedElements são processados>. |
contexto | Não (predefinição = UserAndSystem) |
Define o âmbito deste parâmetro, que consiste em processar este componente no contexto do utilizador específico, em todo o sistema operativo ou ambos. O maior âmbito possível é definido pelo elemento de componente. Por exemplo, se um <elemento de componente> tiver um contexto de Utilizador e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento rules> funcionaria como se tivesse um contexto de Utilizador. Se o <elemento de regras> tivesse um contexto de Sistema, funcionaria como se o <elemento de regras> não estivesse lá.
|
Para obter exemplos, veja os exemplos de deteção<>.
<deteta>
Embora o <elemento detects> ainda seja suportado, a Microsoft recomenda que deixe de utilizar o <elemento detects> , uma vez que poderá ser preterido em versões futuras do USMT. Se o <elemento detetar> for preterido, será necessária uma reescrita de todos os scripts que utilizem o <elemento detects> . Em vez disso, a Microsoft recomenda a utilização do< elemento de deteção> se o elemento principal for <role> ou <namedElements>, ou utilizar o <elemento conditions> se o elemento principal for <regras>. O <elemento de deteção> permite instruções booleanas complexas mais claramente formuladas e o <elemento conditions> permite a formulação de instruções booleanas complexas.
O <elemento detecta> é um contentor para um ou mais <elementos de deteção> . Se todos os <elementos de deteção subordinados> dentro de um <elemento detetar> resolve como VERDADEIRO, o <deteta> como VERDADEIRO. Se algum dos elementos de deteção subordinados<> resolve como FALSO, o <deteta> resolve para FALSO. Para impedir que o <elemento detete> a escrita num componente, crie o <elemento detects> no <elemento namedElements> e, em seguida, veja-o. Se não existir nenhuma <secção de elemento deteção> , a USMT pressupõe que o componente está presente. Os resultados de cada <elemento deteta> são unidos pelo operador OR para formar a regra utilizada para detetar o elemento principal.
Sintaxe:
<detects name="ID" context="User|System|UserAndSystem">
</detects>
Número de ocorrências: Ilimitado.
Elementos principais:<função>, <regras>, <denominadasElements>
Elementos subordinados necessários:<detetar>
Configuração | Obrigatório? | Valor |
---|---|---|
name | Sim, quando <deteta> é um subordinado com <o nomeElements> Não, quando <deteta> é um subordinado para função<> ou <regras> |
Quando o ID é especificado, não <são processados elementos de deteção> subordinados. Em vez disso, todos os outros <elementos detetados> com o mesmo nome que são declarados no< elemento namedElements são processados>. |
contexto | Não (predefinição = UserAndSystem) |
Define o âmbito deste parâmetro: se pretende processar este componente no contexto do utilizador específico, em todo o sistema operativo ou ambos. O maior âmbito possível é definido pelo <elemento> de componente. Por exemplo, se um <elemento de componente> tiver um contexto de Utilizador e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> funcionaria como se tivesse um contexto de Utilizador. Se o <elemento de regras> tivesse um contexto de Sistema, funcionaria como se o <elemento de regras> não estivesse lá.
O parâmetro de contexto é ignorado para <detetar> elementos que estão dentro <de elementos de regras> . |
O exemplo seguinte é do MigApp.xml
ficheiro .
<detects>
<detect>
<condition>MigXmlHelper.DoesFileVersionMatch("%Lotus123InstPath%\123w.exe","ProductVersion","9.*")</condition>
</detect>
<detect>
<condition>MigXmlHelper.DoesFileVersionMatch("%SmartSuiteInstPath%\smartctr.exe","ProductVersion","99.*")</condition>
</detect>
</detects>
<deteção>
O <elemento de deteção> é um contentor para um <elemento de condições> . O resultado dos elementos da condição> subordinada<, localizados abaixo do <elemento conditions>, determina o resultado deste elemento. Por exemplo, se todos os elementos das condições> subordinadas< no <elemento de deteção> resolve para VERDADEIRO, o <elemento de deteção> será resolvido como VERDADEIRO. Se algum dos elementos de condições> subordinadas< resolve como FALSO, o <elemento de deteção> é resolvido como FALSO.
Além disso, os resultados de cada secção de deteção< no elemento de função> são unidos pelo operador OR para formar a regra de deteção do elemento principal.>< Ou seja, se uma das secções de deteção<> resolve para VERDADEIRO, o <elemento de função> é processado. Caso contrário, o <elemento de função> não é processado.
Utilize o <elemento de deteção> no <elemento namedElements> para não escrever num componente. Em seguida, inclua uma secção de deteção> correspondente< no <elemento de função> para controlar se o componente é migrado. Se não existir uma <secção de deteção> para um componente, a USMT pressupõe que o componente está presente.
Número de ocorrências: Ilimitado.
Elementos principais:<role>, <namedElements>
Elementos subordinados:<condições>
Sintaxe:
<detection name="ID" context="User|System|UserAndSystem">
</detection>
Configuração | Obrigatório? | Valor |
---|---|---|
name |
|
Se for declarado, o conteúdo do elemento de deteção<> é ignorado e o conteúdo do elemento de deteção<> com o mesmo nome declarado no <elemento namedElements> é avaliado. |
contexto | Não, predefinição = UserAndSystem | Define o âmbito deste parâmetro: se pretende processar este componente no contexto do utilizador específico, em todo o sistema operativo ou 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 de componente> .
Número de ocorrências: uma vez para cada componente
Elementos principais:<componente>
Elementos subordinados: nenhum
Sintaxe:
<displayName _locID="ID">ComponentName</displayName>
Configuração | Obrigatório? | Valor |
---|---|---|
locID | Não | Este parâmetro destina-se à utilização interna do USMT. Não utilize este parâmetro. |
ComponentName | Sim | O nome do componente. |
Por exemplo:
<displayName>Command Prompt settings</displayName>
<ambiente>
O <elemento de ambiente> é um contentor para <elementos variáveis> nos quais as variáveis podem ser definidas para utilização num ficheiro .xml . Todas as variáveis de ambiente definidas desta forma são privadas. Ou seja, só estão disponíveis para os componentes subordinados e para o componente em que foram definidos. Para obter dois cenários de exemplo, veja Exemplos.
Número de ocorrências: ilimitadas
Elementos principais:<função>, <componente>, <namedElements>
Elementos subordinados necessários:<variável>
Elementos subordinados opcionais:<condições>
Sintaxe:
<environment name="ID" context="User|System|UserAndSystem">
</environment>
Configuração | Obrigatório? | Valor |
---|---|---|
name | Sim, quando <o ambiente> é subordinado de <namedElements> Não, quando <o ambiente> é subordinado da função> ou componente<>< |
Quando declarado subordinado dos elementos de <função> ou <componente>, se o ID for declarado, o USMT ignora o conteúdo do elemento de< ambiente> e o conteúdo do elemento de <ambiente> com o mesmo nome declarado no elemento namedElements> é processado.< |
contexto | Não (predefinição = UserAndSystem) |
Define o âmbito deste parâmetro: se pretende processar este componente no contexto do utilizador específico, em todo o sistema operativo ou ambos. O maior âmbito possível é definido pelo <elemento de componente> . Por exemplo, se um <elemento de componente> tiver um contexto de Utilizador e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> funcionaria como se tivesse um contexto de Utilizador. Se o <elemento de regras> tivesse um contexto de Sistema, funcionaria como <se as regras> não estivessem lá.
|
Exemplos
Cenário de exemplo 1
Neste cenário, gere a localização dos objetos no tempo de execução, consoante a configuração do computador de destino. Por exemplo, se uma aplicação escrever dados no diretório onde a aplicação está instalada e os utilizadores puderem instalar a aplicação em qualquer lugar do computador. Se a aplicação escrever um valor hklm\software\companyname\install [path\]
de registo e, em seguida, atualizar este valor com a localização onde a aplicação está instalada, a única forma de migrar corretamente os dados necessários é 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 utilizada da seguinte forma. Qualquer uma das funções de< script> pode ser utilizada para realizar tarefas semelhantes.
<include>
<objectSet>
<pattern type="File">%INSTALLPATH%\ [*.xyz]</pattern>
</objectSet>
</include>
Em segundo lugar, os valores do registo podem ser filtrados para conter os dados necessários. O exemplo seguinte extrai a primeira cadeia (antes do separador ",
") no valor do registo 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>
Cenário de exemplo 2
Neste cenário, cinco ficheiros denominados File1.txt
, File2.txt
e assim por diante, têm de ser migrados do %SYSTEMDRIVE%\data\userdata\dir1\dir2\
. Para migrar estes ficheiros, a seguinte <regra de inclusão> tem de estar num ficheiro .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 escrever o caminho cinco vezes, crie uma variável para a localização da seguinte forma:
<environment>
<variable name="DATAPATH">
<text>%SYSTEMDRIVE%\data\userdata\dir1\dir2 </text>
</variable>
</environment>
Em seguida, especifique a variável numa <regra de inclusão> da seguinte forma:
<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 que objetos não são migrados, a menos que exista um elemento de inclusão> mais específico< que migre um objeto. Se existir um elemento de inclusão> e exclusão<>para o mesmo objeto, o objeto será incluído.< Para cada <elemento de exclusão>, pode haver vários elementos objectSet> subordinados<.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elementos subordinados:<objectSet>
Funções auxiliares: As seguintes <funções de filtro de exclusão> podem ser utilizadas com este elemento:
CompareStringContent
,IgnoreIrrelevantLinks
,AnswerNo
,NeverRestore
eSameRegContent
.
Sintaxe:
<exclude filter="ScriptInvocation">
</exclude>
Configuração | Obrigatório? | Valor |
---|---|---|
filter | Não (predefinição = Não) |
Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
Por exemplo, no MigUser.xml
ficheiro:
<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 utilizado para determinar que parâmetros associados a um objeto não são migrados. Se existirem conflitos entre os <elementos includeAttributes> e <excludeAttributes> , o padrão mais específico determina os padrões que não são migrados. Se um objeto não tiver um <elemento includeAttributes> ou <excludeAttributes> , todos os parâmetros serão migrados.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elementos subordinados:<objectSet>
Sintaxe:
<excludeAttributes attributes="Security|TimeFields|Security,TimeFields">
</excludeAttributes>
Configuração | Obrigatório? | Valor |
---|---|---|
atributos | Sim | Especifica os atributos a serem excluídos. Pode ser especificado um dos seguintes procedimentos ou ambos. Se especificar ambos, têm de 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 contentor para um ou mais <elementos de extensão> .
Número de ocorrências: zero ou um
Elementos principais:<componente>
Elementos subordinados necessários:<extensão>
Sintaxe:
<extensions>
</extensions>
<extensão>
O <elemento de extensão> pode ser utilizado para especificar documentos de uma extensão específica.
Número de ocorrências: ilimitadas
Elementos principais:<extensões>
Elementos subordinados: nenhum
Sintaxe:
<extension>FilenameExtension</extension>
Configuração | Obrigatório? | Valor |
---|---|---|
FilenameExtension | Sim | Uma extensão de nome de ficheiro. |
Por exemplo, para migrar todos os ficheiros *.doc do computador de origem, especifique o seguinte código no elemento do< componente>:
<extensions>
<extension>doc</extension>
<extensions>
é o mesmo que especificar o seguinte código abaixo do <elemento de regras> :
<include>
<objectSet>
<script>MigXmlHelper.GenerateDrivePatterns ("* [*.doc]", "Fixed")</script>
</objectSet>
</include>
Para obter outro exemplo de como utilizar o <elemento de extensão> , veja o exemplo de <excludeAttributes>.
<externalProcess>
O <elemento externalProcess> pode ser utilizado para executar uma linha de comandos durante o processo de migração. Por exemplo, uma execução de um comando poderá ter de ser executada após a conclusão do processo LoadState .
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elementos subordinados 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 comandos deve ser executada. Este valor pode ser um dos seguintes valores:
|
Para obter um exemplo de como utilizar o <elemento externalProcess> , veja o exemplo de <excludeAttributes>.
<ícone>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<include>
O <elemento include> determina o que migrar, a menos que exista uma regra de exclusão> mais específica<. Um script pode ser especificado para ser mais específico para expandir a definição do que pretende que seja recolhido. Para cada <elemento de inclusão> , pode haver vários <elementos objectSet> .
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elemento subordinado necessário:<objectSet>
Funções auxiliares: As funções de filtro de inclusão> seguintes< podem ser utilizadas com este elemento:
CompareStringContent
,IgnoreIrrelevantLinks
,AnswerNo
e .NeverRestore
Sintaxe:
<include filter="ScriptInvocation">
</include>
Configuração | Obrigatório? | Valor |
---|---|---|
filter | Não. Se este parâmetro não for especificado, todos os padrões dentro do elemento objectSet> subordinado< são processados. |
Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
O exemplo seguinte é do MigUser.xml
ficheiro:
<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 seguintes funções devolvem um valor Booleano. Podem ser utilizados para migrar determinados objetos com base no momento em que determinadas condições são cumpridas.
AnswerNo
Este filtro devolve sempre FALSO.
Sintaxe:
AnswerNo ()
CompareStringContent
Sintaxe:
CompareStringContent("StringContent","CompareType")
Configuração Obrigatório? Valor StringContent Sim A cadeia contra a marcar. CompareType Sim Uma cadeia. Utilize um dos seguintes valores: -
Igual (não sensível a maiúsculas e minúsculas). A função devolve VERDADEIRO se a representação da cadeia do objeto atual que é processada pelo motor de migração for idêntica a
StringContent
. -
NULLou qualquer outro valor. A função devolve VERDADEIRO se a representação da cadeia do objeto atual que é processado pelo motor de migração não corresponder
StringContent
a .
-
Igual (não sensível a maiúsculas e minúsculas). A função devolve VERDADEIRO se a representação da cadeia do objeto atual que é processada pelo motor de migração for idêntica a
IgnoreIrrelevantLinks
Este filtro filtra os ficheiros .lnk que apontam para um objeto que não é válido no computador de destino. A filtragem ocorre no computador de destino, pelo que todos os ficheiros .lnk são guardados no arquivo durante o ScanState. Em seguida, são filtrados quando a ferramenta LoadState é executada.
Sintaxe:
IgnoreIrrelevantLinks ()
Por exemplo:
<include filter='MigXmlHelper.IgnoreIrrelevantLinks()'> <objectSet> <pattern type="File">%CSIDL_COMMON_VIDEO%\* [*]</pattern> </objectSet> </include>
NeverRestore
Esta função pode ser utilizada para recolher os objetos especificados do computador de origem, mas não para migrar os objetos para o computador de destino. Quando executada com a ferramenta ScanState , esta função é avaliada como VERDADEIRO. Quando executada com a ferramenta LoadState , esta função é avaliada como FALSO. Esta função pode ser utilizada 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 seguinte, HKCU\Painel de Controle\International [Locale] está incluído no arquivo, 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 utilizado para determinar se determinados parâmetros associados a um objeto são migrados juntamente com o próprio objeto. Se existirem conflitos entre os <elementos includeAttributes> e <excludeAttributes> , o padrão mais específico determina que parâmetros são migrados. Se um objeto não tiver um <elemento includeAttributes> ou <excludeAttributes> , todos os parâmetros serão migrados.
Número de ocorrências: ilimitadas
Elementos principais:<regras>
Elementos subordinados:<objectSet>
Sintaxe:
<includeAttributes attributes="Security|TimeFields|Security,TimeFields">
</includeAttributes>
Configuração | Obrigatório? | Valor |
---|---|---|
atributos | Sim | Especifica os atributos a incluir com um objeto migrado. Pode ser especificado um dos seguintes procedimentos ou ambos. Se especificar ambos, têm de ser separados por aspas. Por exemplo, "Security","TimeFields" :
|
Para obter um exemplo de como utilizar o <elemento includeAttributes> , veja o exemplo de <excludeAttributes>.
<biblioteca>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<localização>
O <elemento de localização> define a localização do elemento do< objeto>.
Número de ocorrências: uma vez para cada <objeto>
Elementos principais:<objeto>
Elementos subordinados:<script>
Sintaxe:
<location type="typeID">ObjectLocation</location>
Configuração | Obrigatório? | Valor |
---|---|---|
tipo | Sim | typeID pode ser Registo ou Ficheiro. |
ObjectLocation | Sim | A localização do objeto. |
O exemplo seguinte é do MigApp.xml
ficheiro:
<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 utilizado para alterar a localização e o nome de um objeto antes de o objeto ser migrado para o computador de destino. O <elemento locationModify> só é processado quando a ferramenta LoadState é executada no computador de destino. Por outras palavras, este elemento é ignorado pela ferramenta ScanState . O <elemento locationModify> cria a pasta adequada no computador de destino, se ainda não existir.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elemento subordinado necessário:<objectSet>
Funções auxiliares: As seguintes <funções locationModify> podem ser utilizadas com este elemento:
ExactMove
,RelativeMove
eMove
.
Sintaxe:
<locationModify script="ScriptInvocation">
</locationModify>
Configuração | Obrigatório? | Valor |
---|---|---|
script | Sim | Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
O exemplo seguinte é do MigApp.xml
ficheiro:
<locationModify script="MigXmlHelper.RelativeMove('%CSIDL_APPDATA%\Microsoft\Office','%CSIDL_APPDATA%')">
<objectSet>
<pattern type="File">%CSIDL_APPDATA%\Microsoft\Office\ [Access10.pip]</pattern>
</objectSet>
</locationModify>
<locationModify functions (funções locationModify> )
As seguintes funções alteram a localização dos objetos à medida que são migrados ao utilizar o <elemento locationModify> . Estas funções são chamadas para cada objeto que o elemento objectSet> principal< está a enumerar. O <elemento locationModify> cria a pasta adequada no computador de destino, se ainda não existir.
ExactMove
A função ExactMove move todos os objetos correspondentes pelo elemento objectSet> principal< para o ObjectEncodedLocation especificado. Esta função pode ser utilizada para mover um único ficheiro para uma localização diferente no computador de destino. Se a localização de destino for um nó, todos os objetos de origem correspondentes são escritos no nó sem subdiretórios. Se a localização de destino for uma folha, o motor de migração migra todos os objetos de origem correspondentes para a mesma localização. Se ocorrer uma colisão, aplicam-se os algoritmos de colisão normais.
Sintaxe:
ExactMove(ObjectEncodedLocation)
Configuração Obrigatório? Valor ObjectEncodedLocation Sim A localização 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 Mover move objetos para uma localização diferente no computador de destino. Além disso, esta 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 DestinationRoot Sim A localização para onde os objetos de origem são movidos. Se necessário, esta função cria subdiretórios que estavam acima do CSIDL mais longo no nome do objeto de origem. RelativeMove
A função RelativeMove pode ser utilizada para recolher e mover dados. As variáveis de ambiente podem ser utilizadas nas raízes de origem e destino, mas podem ser definidas de forma diferente nos computadores de origem e destino.
Sintaxe:
RelativeMove(SourceRoot,DestinationRoot)
Configuração Obrigatório? Valor OrigemRoot Sim A localização de onde os objetos são movidos. Quaisquer objetos de origem enumerados pelo elemento objectSet> principal< que não estejam nesta localização não são movidos. DestinationRoot Sim A localização para onde os objetos de origem são movidos no computador de destino. Se necessário, esta função cria 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>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<fabricante>
O <elemento fabricante> define o fabricante para o componente, mas não afeta a migração.
Número de ocorrências: zero ou um
Elementos principais:<componente>
Elementos subordinados: nenhum
Sintaxe:
<manufacturer>Name</manufacturer>
Configuração | Obrigatório? | Valor |
---|---|---|
Nome | Sim | O nome do fabricante do componente. |
<intercalar>
O <elemento de intercalação> 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 este elemento não for especificado, o comportamento predefinido do registo é que o objeto de origem substitua o objeto de destino. O comportamento predefinido dos ficheiros é que o nome do ficheiro de origem seja mudado para OriginalFileName(1).OriginalExtension
. Este elemento especifica apenas o que deve ser feito quando ocorre uma colisão. Não inclui objetos. Por conseguinte, para que os objetos sejam migrados, <as regras de inclusão> têm de ser especificadas juntamente com o <elemento de intercalação> . Quando um objeto é processado e é detetada uma colisão, a USMT seleciona a regra de intercalação mais específica. Em seguida, aplica a regra para resolve o conflito. Por exemplo, se uma <regra de intercalação> estiver definida como <sourcePriority> e uma <regra de intercalação> estiver definida como <destinationPriority>, a USMT utilizará a <regra destinationPriority> porque é a mais específica.C:\subfolder\* [*]
C:\* [*]
Para obter um exemplo deste elemento, veja Conflitos e precedência.
Número de ocorrências: Ilimitado
Elementos principais:<regras>
Elemento subordinado necessário:<objectSet>
Funções auxiliares: As seguintes <funções de intercalação> podem ser utilizadas com este elemento:
SourcePriority
,DestinationPriority
,FindFilePlaceByPattern
,LeafPattern
,NewestVersion
,HigherValue()
eLowerValue()
.
Sintaxe:
<merge script="ScriptInvocation">
</merge>
Configuração | Obrigatório? | Valor |
---|---|---|
script | Sim | Um script seguido de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. |
O exemplo seguinte é do MigUser.xml
ficheiro:
<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>
<unir> funções
Estas funções controlam a forma como as colisões são resolvidas.
DestinationPriority
Especifica para 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 guarda ficheiros com um contador de incremento quando ocorre uma colisão. É uma cadeia que contém uma de cada construção: <F>, <E>, <N> em qualquer ordem.
Sintaxe:
FindFilePlaceByPattern(FilePattern)
Configuração Obrigatório? Valor FilePattern Sim - <F> é substituído pelo nome de ficheiro original.
- <N> é substituído por um contador de incremento até que não haja colisão com os objetos no computador de destino.
- <E> é substituído pela extensão de nome de ficheiro original.
Por exemplo,<F> (<N>).<E>
altera o ficheiroMyDocument.doc
de origem paraMyDocument (1).doc
no computador de destino.NewestVersion
A função NewestVersion resolve conflitos no computador de destino com base na versão do ficheiro.
Sintaxe:
NewestVersion(VersionTag)
Configuração Obrigatório? Valor VersionTag Sim O campo de versão que está selecionado. Este campo pode ser FileVersion
ouProductVersion
. O ficheiro com a versão mais alta do VersionTag determina quais os conflitos que são resolvidos com base na versão do ficheiro. Por exemplo, seMyfile.txt
contiver FileVersion 1 e o mesmo ficheiro no computador de destino contiver FileVersion 2, o ficheiro no destino permanece.HigherValue()
Esta função pode ser utilizada para intercalar valores de registo. Os valores do registo são avaliados como valores numéricos e os valores com o valor mais elevado determinam que valores de registo são intercalados.
LowerValue()
Esta função pode ser utilizada para intercalar valores de registo. Os valores do registo são avaliados como valores numéricos e os valores com o valor mais baixo determinam que valores de registo são intercalados.
SourcePriority
Especifica para migrar o objeto do computador de origem e para eliminar o 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>
<migração>
O <elemento de migração> é o elemento raiz único de um ficheiro de migração.xml e é necessário. Cada ficheiro.xml tem de ter um urlid de migração exclusivo. O urlid de cada ficheiro especificado na linha de comandos tem de ser exclusivo. Os urlids têm de ser exclusivos porque o USMT utiliza o urlid para definir os componentes no ficheiro.
Número de ocorrências: uma
Elementos principais: nenhum
Elementos subordinados necessários:<componente>
Elementos subordinados opcionais:<biblioteca>, <com o nomeElements>
Sintaxe:
<migration urlid="*UrlID/*Name">
</migration>
Configuração | Obrigatório? | Valor |
---|---|---|
urlid | Sim | UrlID é um identificador de cadeia que identifica exclusivamente este ficheiro .xml . Este parâmetro tem de ser um nome sem dois pontos, conforme definido pela especificação Espaços de Nomes XML. Cada ficheiro de.xml de migração tem de ter um urlid exclusivo. Se dois ficheiros .xml migração tiverem o mesmo urlid, o segundo ficheiro .xml especificado na linha de comandos não será processado. Para obter mais informações sobre espaços de nomes XML, veja Utilizar Espaços de Nomes XML. |
Nome | Não | Embora não seja necessário, é uma boa prática utilizar o nome do ficheiro .xml . |
O exemplo seguinte é do MigApp.xml
ficheiro:
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/migapp">
</migration>
MigXMLHelper.FileProperties
Esta função auxiliar de filtros pode ser utilizada para filtrar a migração de ficheiros com base no tamanho do ficheiro e nos atributos de data.
Função Auxiliar | MigXMLHelper.FileProperties (propriedade, operador, valueToCompare) |
---|---|
Propriedade | filesize, dateCreated, dateModified, dateAccessed |
Operador | range, neq, lte, lt, eq, gte, gt |
valueToCompare | O valor que está a ser comparado. Por exemplo: Data: "2023/05/15-2020/05/17", "2023/05/15" Tamanho: um número com B, KB, MB ou GB no final. "5 GB", "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 utilizado para definir elementos nomeados. Estes elementos podem ser utilizados em qualquer componente em todo o ficheiro .xml . Para obter um exemplo de como utilizar este elemento, veja o MigApp.xml
ficheiro .
Sintaxe:
<namedElements>
</namedElements>
Número de ocorrências: Ilimitado
Elementos principais:<migração>
Elementos subordinados:<ambiente>, <regras>, <condições>, <deteção>, <deteta>, deteta,< deteta>
Para obter um exemplo deste elemento, veja o MigApp.xml
ficheiro .
<object>
O <elemento de objeto> representa um ficheiro ou chave de registo.
Número de ocorrências: Ilimitado
Elementos principais:<addObjects>
Elementos subordinados necessários:<localização>, <atributos>
Elementos subordinados opcionais:<bytes>
Sintaxe:
<object>
</object>
O exemplo seguinte é do MigApp.xml
ficheiro:
<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>
<conjunto de objetos>
O <elemento objectSet> contém uma lista de padrões de objeto; por exemplo, caminhos de ficheiro, localizações de registo, etc. Todos os elementos de condições> subordinadas< são avaliados primeiro. Se todos os elementos de condições> subordinadas< devolverem FALSE, o <elemento objectSet> é avaliado como um conjunto vazio. Para cada elemento principal, só podem existir múltiplos <elementos objectSet> .
Número de ocorrências: Ilimitado
Elementos principais:<variável>, <conteúdo>, <incluir>, <excluir, intercalar>>, contentModify, locationModify, destinationCleanup, includeAttributes, excludeAttributes, incondicionalExclude, detetar<<><><><><><><>
Elementos subordinados opcionais:<conteúdo>, <condições>, <condição>
Sintaxe:
<objectSet>
</objectSet>
O exemplo seguinte é do MigUser.xml
ficheiro:
<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>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<caminhos>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<padrão>
Este elemento pode ser utilizado para especificar vários objetos. Podem ser utilizados vários <elementos de padrão> para cada <elemento objectSet> e são combinados. Se especificar ficheiros, a Microsoft recomenda a utilização GenerateDrivePatterns
com <script> .
GenerateDrivePatterns
é basicamente o mesmo que uma regra de <padrão> , sem a especificação da letra de unidade. Por exemplo, as duas linhas de código seguintes 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 principais:<objectSet>
Elementos subordinados: nenhum, mas o Caminho [objeto] tem de ser válido.
Sintaxe:
<pattern type="typeID">Path [object]</pattern>
Configuração | Obrigatório? | Valor |
---|---|---|
tipo | Sim |
typeID pode ser Registo, Ficheiro ou Ini. Se typeId for Ini, não é permitido um espaço entre Caminho e objeto . 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 de registo ou caminho de ficheiro válido, seguido de, pelo menos, um espaço, seguido de parênteses retos [] que contêm o objeto a ser migrado.
|
Por exemplo:
Para migrar uma única chave de registo:
<pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache [Persistent]</pattern>
Para migrar a
C:\EngineeringDrafts
pasta e as subpastas da unidade C:<pattern type="File">C:\EngineeringDrafts\* [*]</pattern>
Para migrar apenas a
C:\EngineeringDrafts
pasta, excluindo as subpastas, da unidade C:Para migrar o ficheiro de
Sample.doc
C:\EngineeringDrafts
:<pattern type="File"> C:\EngineeringDrafts\ [Sample.doc]</pattern>
Para migrar o
Sample.doc
ficheiro de onde já existe no padrão de utilização da unidade C: da seguinte forma. Se existirem vários ficheiros com o mesmo nome na unidade C:, todos estes ficheiros serão migrados.<pattern type="File"> C:\* [Sample.doc] </pattern>
Para obter mais exemplos sobre como utilizar este elemento, veja Excluir ficheiros e definições, Redirecionar ficheiros e definições, Incluir ficheiros e definições e Exemplos XML personalizados.
<processamento>
Este elemento pode ser utilizado para executar um script durante um ponto específico no processo de migração. Os valores devolvidos não são esperados a partir dos scripts especificados. Se existirem valores devolvidos, estes são ignorados.
Número de ocorrências: ilimitadas
Elementos principais:<regras>
Elemento subordinado necessário:<script>
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. Este valor pode ser um dos seguintes valores:
|
<plug-in>
Este elemento é um elemento USMT interno. Não utilize este elemento.
<função>
O <elemento de função> é necessário num ficheiro de.xml personalizado. Quando o <elemento de função> é especificado, pode ser criado um componente concreto. O componente é definido pelos parâmetros especificados ao nível do <componente> e pela função especificada aqui.
Número de ocorrências: Cada <componente> pode ter um, dois ou três elementos de função subordinados<>.
Elementos principais:<componente>, <função>
Elementos subordinados necessários:<regras>
Elementos subordinados opcionais:<ambiente>, <deteção>, <componente>, <função>, <deteta>, <plug-in>
Sintaxe:
<role role="Container|Binaries|Settings|Data">
</role>
Configuração | Obrigatório? | Valor |
---|---|---|
função | Sim | Define a função para o componente. A função pode ser uma das seguintes:
|
O exemplo seguinte é do MigUser.xml
ficheiro . Para obter mais exemplos, veja o MigApp.xml
ficheiro:
<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 num ficheiro de.xml personalizado. Este elemento contém regras que são executadas durante a migração se o elemento do componente> principal< estiver selecionado, a menos que o <elemento de condições> subordinadas, se estiver presente, seja avaliado como FALSO. Para cada <elemento de regras>, podem existir vários elementos de regras> subordinados<.
Número de ocorrências: ilimitadas
Elementos principais:<função>, <regras>, <denominadasElements>
Elementos subordinados necessários:<incluir>
Elementos subordinados opcionais:<rules>, <exclude>, <incondicionalExclude,merge><>, <contentModify>, <locationModify>, <destinationCleanup>, <addObjects>, <externalProcess>, <processing>, <includeAttributes>, <excludeAttributes>, condições, <deteta>
Sintaxe:
<rules name="ID" context="User|System|UserAndSystem">
</rules>
Configuração | Obrigatório? | Valor |
---|---|---|
name | Sim, quando <as regras> são subordinadas com< o nomeElements> Não, quando <as regras> são subordinadas a qualquer outro elemento |
Quando o ID é especificado, os elementos subordinados não são processados. Em vez disso, todos os outros <elementos de regras> com o mesmo nome que são declarados em< namedElements são processados>. |
contexto | Não (predefinição = UserAndSystem) |
Define o âmbito deste parâmetro: se pretende processar este componente no contexto do utilizador específico, em todo o sistema operativo ou ambos. O maior âmbito possível é definido pelo elemento de componente. Por exemplo, se um <elemento de componente> tiver um contexto de Utilizador e um <elemento de regras> tiver um contexto de UserAndSystem, o <elemento de regras> funcionará como se tivesse um contexto de Utilizador. Se <as regras> tivessem um contexto de Sistema, funcionaria como <se as regras> não existissem.
|
O exemplo seguinte é do MigUser.xml
ficheiro:
<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 devolvido exigido pelo <script> depende do elemento principal.
Número de ocorrências: Uma vez para <variável>, ilimitado para <objectSet> e <processamento>
Elementos principais:<objectSet>, <variável>, <processamento>
Elementos subordinados: nenhum
Funções de sintaxe e auxiliar:
Sintaxe Geral:
<script>ScriptWithArguments</script>
GetStringContent pode ser utilizado 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 utilizado quando <o script> está dentro <de objectSet>.
Sintaxe:
<script>MigXmlHelper.GenerateUserPatterns("ObjectType","EncodedLocationPattern","ProcessCurrentUser")</script>
Exemplo:
<script>MigXmlHelper.GenerateUserPatterns ("File","%USERPROFILE%\* [*.doc]", "FALSE")</script>
GenerateDrivePatterns pode ser utilizado quando <o script> está dentro <de objectSet>.
Sintaxe:
<script>MigXmlHelper.GenerateDrivePatterns("PatternSegment","DriveType")</script>
Exemplo:
<script>MigXmlHelper.GenerateDrivePatterns("* [sample.doc]", "Fixed")</script>
Os scripts de execução simples podem ser utilizados 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 de qualquer número de argumentos de cadeia que são separados por uma vírgula e 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 devolve um valor Booleano. Se o valor devolvido for VERDADEIRO, o objeto será migrado. Se for FALSO, não será migrado. O valor devolvido exigido pelo <script> depende do elemento principal.
|
Exemplos:
Para migrar o ficheiro Sample.doc a partir de qualquer unidade no computador de origem, utilize <o script> da seguinte forma. Se existirem múltiplos ficheiros com o mesmo nome, todos esses ficheiros serão migrados.
<script>MigXmlHelper.GenerateDrivePatterns("* [sample.doc]", "Fixed")</script>
Para obter mais exemplos sobre como utilizar este elemento, veja Excluir Ficheiros e Definições, Redirecionar Ficheiros e Definições e Exemplos XML Personalizados.
<funções de script>
As seguintes funções podem ser utilizadas com o <elemento script>
Funções de geração de cadeias e padrões
Estas funções devolvem uma cadeia ou um padrão.
GetStringContent
GetStringContent pode ser utilizado com <elementos de script> que estão dentro <de elementos variáveis> . Se possível, esta função devolve a representação de cadeia do objeto especificado. Caso contrário, devolve NULL. Para objetos de ficheiro, esta função devolve sempre NULL.
Sintaxe:
GetStringContent("ObjectType","EncodedLocationPattern", "ExpandContent")
Configuração Obrigatório? Valor ObjectType Sim O tipo de objeto. Pode ser Registo ou Ini (para um ficheiro de.ini ). EncodedLocationPattern Sim - Se o tipo de objeto for Registo, EncodedLocationPattern tem de ser um caminho de registo válido. Por exemplo,
HKLM\SOFTWARE\MyKey[]
. - Se o tipo de objeto for Ini, EncodedLocationPattern tem de estar no seguinte formato:
IniFilePath|SectionName[SettingName]
ExpandirContento Não (predefinição=VERDADEIRO) Pode ser VERDADEIRO ou FALSO. Se for FALSO, a localização especificada não é expandida antes de ser devolvida. Por exemplo:
<variable name="MSNMessengerInstPath"> <script>MigXmlHelper.GetStringContent("Registry","%HklmWowSoftware%\Microsoft\MSNMessenger [InstallationDirectory]")</script> </variable>
- Se o tipo de objeto for Registo, EncodedLocationPattern tem de ser um caminho de registo válido. Por exemplo,
GenerateDrivePatterns
A
GenerateDrivePatterns
função itera todas as unidades disponíveis e seleciona as que correspondem ao tipo de unidade pedido. Em seguida, concatena as unidades selecionadas com a parte final de PatternSegment para formar um padrão de ficheiro codificado completo. Por exemplo, se PatternSegment forPath [file.txt]
e DriveType forFixed
, a função geraC:\Path [file.txt]
e outros padrões se existirem unidades fixas que não C:. As variáveis de ambiente não podem ser especificadas com esta função.GenerateDrivePatterns
pode ser utilizado com <elementos de script> que estão dentro <de objectSet> que estão dentro <de incluir exclusão>/<>.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 ficheiro 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. Pode especificar um dos seguintes itens: - Fixo
- CDROM
- Amovível
- Remoto
Veja o último componente no
MigUser.xml
ficheiro para obter um exemplo deste elemento.GenerateUserPatterns
A
GenerateUserPatterns
função itera através de todos os utilizadores que estão a ser migrados, excluindo o utilizador atualmente processado se <ProcessCurrentUser> for FALSE e expande o padrão especificado no contexto de cada utilizador. Por exemplo, se os utilizadores A, B e C tiverem perfis noC:\Users
, ao chamarGenerateUserPattens('File','%userprofile% [*.doc]','TRUE')
, a função auxiliar gera os três padrões seguintes:"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 Ficheiro ou Registo. EncodedLocationPattern Sim O padrão de localização. As variáveis de ambiente são permitidas. ProcessCurrentUser Sim Pode ser VERDADEIRO ou FALSO. Indica se os padrões devem ser gerados para o utilizador atual.
Exemplo:
Se GenerateUserPattens('File','%userprofile% [*.doc]','FALSE')
for chamada enquanto a USMT está a processar o utilizador A, esta função só gera padrões para os utilizadores B e C. Esta função auxiliar pode ser utilizada para criar regras complexas. Por exemplo, para migrar todos os .doc
ficheiros do computador de origem, mas se o utilizador X não for migrado, não migre nenhum dos ficheiros do .doc
perfil do utilizador X.
O exemplo seguinte é código de exemplo para este cenário. O primeiro <elemento de regras> migra todos os .doc
ficheiros no computador de origem, exceto os existentes no C:\Users
. Os elementos das segundas< regras> migram todos os .doc
ficheiros, C:\Users
exceto os .doc
ficheiros nos perfis dos outros utilizadores. Uma vez que o segundo <elemento de regras> é processado em cada contexto de utilizador migrado, o resultado final é o comportamento pretendido. O resultado final é o esperado.
<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 analisar o sistema quanto a todos os ficheiros que podem ser migrados. Pode ser invocado no contexto do Sistema ou do Utilizador para focar a análise.
Configuração | Obrigatório? | Valor |
---|---|---|
ScanProgramFiles | Não (predefinição = FALSO) | Pode ser VERDADEIRO ou FALSO. O parâmetro ScanProgramFiles determina se o localizador de documentos analisa ou não o diretório Ficheiros de Programa para recolher extensões de ficheiro registadas para aplicações conhecidas. Por exemplo, quando definido como VERDADEIRO , deteta e migra ficheiros.jpg no diretório do Photoshop, se .jpg for uma extensão de ficheiro registada no Photoshop. |
IncludePatterns | Não (predefinição = VERDADEIRO) | Pode ser VERDADEIRO ou FALSO. TRUE gera padrões de inclusão e pode ser adicionado sob o <elemento de inclusão> . FALSE gera padrões de exclusão e pode ser adicionado sob o <elemento de exclusão> . |
SystemDrive | Não (predefinição = FALSO) | Pode ser VERDADEIRO ou FALSO. Se FOR VERDADEIRO, 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 seguintes não têm nenhum valor devolvido. Os seguintes erros podem ser utilizados com <elementos de script> que estão dentro <dos elementos de processamento>
AskForLogoff(). Solicitações que o utilizador termine sessão no 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 ficheiro existente, esta função converte o ficheiro no nome de ficheiro abreviado e, em seguida, atualiza o valor do registo.
KillExplorer(). Para Explorer.exe para o contexto de utilizador atual. Parar Explorer.exe permite o acesso a determinadas chaves e ficheiros 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). Regista o tipo de letra especificado ou todos os tipos de letra no diretório especificado. Por exemplo:
<processing when="apply-success">
<script>MigXmlHelper.RegisterFonts("%CSIDL_COMMON_FONTS%")</script>
</processing>
RemoveEmptyDirectories (DirectoryEncodedPattern). Elimina quaisquer 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 no
HKLM\System\CurrentControlSet\Services
que contém os dados do serviço especificado. Os parâmetros opcionais, se existirem, são transmitidos para a API StartService. Para obter mais informações, veja o artigo Função StartServiceA (winsvc.h ).StopService (ServiceName). Para o serviço identificado pelo ServiceName. ServiceName é a subchave no
HKLM\System\CurrentControlSet\Services
que contém os dados do serviço especificado.SyncSCM(ServiceShortName). Lê o valor Tipo de início do registo
(HKLM\System\CurrentControlSet\Services\ServiceShortName [Start])
depois de o valor ser alterado pelo motor de migração e, em seguida, sincroniza o Service Control Manager (SCM) com o novo valor.
<Texto>
O <elemento de texto> pode ser utilizado para definir um valor para quaisquer variáveis de ambiente que estejam dentro de um dos ficheiros de.xml de migração.
Número de ocorrências: Uma vez em cada <elemento variável> .
Elementos principais:<variável>
Elementos subordinados: Nenhum.
Sintaxe:
<text>NormalText</text>
Configuração | Valor |
---|---|
Texto Normal | Este texto é interpretado como texto normal. |
Por exemplo:
<variable name="QuickTime5or6DataSys">
<text>%CSIDL_COMMON_APPDATA%\QuickTime</text>
</variable>
<incondicionalExclude>
O <elemento incondicionalExclude> exclui os ficheiros especificados e os valores de registo da migração, independentemente das outras regras de inclusão em qualquer um dos ficheiros de.xml de migração ou no Config.xml
ficheiro. Os objetos aqui declarados não são migrados porque este elemento tem precedência sobre todas as outras regras. Por exemplo, mesmo que existam regras de inclusão> explícitas< para incluir .mp3
ficheiros, se forem excluídos com esta opção, não serão migrados.
Utilize este elemento para excluir todos os .mp3
ficheiros do computador de origem. Em alternativa, se efetuar C:\UserData
uma cópia de segurança com outro método, toda a pasta pode ser excluída da migração. Utilize este elemento com cuidado. Se uma aplicação precisar de um ficheiro excluído, a aplicação poderá não funcionar corretamente no computador de destino.
Número de ocorrências: Ilimitado.
Elementos principais:<regras>
Elementos subordinados:<objectSet>
Sintaxe:
<unconditionalExclude></unconditionalExclude>
O ficheiro .xml seguinte exclui todos os .mp3
ficheiros da migração. Para obter exemplos adicionais sobre como utilizar este elemento, veja Excluir Ficheiros e Definiçõ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 variável> é necessário num <elemento de ambiente> . Para cada <elemento de variável> , tem de existir um <objetoConjunto>, <script> ou <elemento de texto> . O conteúdo do <elemento variável> atribui um valor de texto à variável de ambiente. Este elemento tem as três opções seguintes:
Se o elemento de< variável> contiver um <elemento de texto>, o valor do elemento de variável é o valor do elemento de< texto>.
Se o <elemento variável> contiver um <elemento de script> e a invocação do script produzir uma cadeia não nula, o valor do elemento variável<> 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 para corresponder ao padrão de objeto resultante é o valor do elemento variável.
Número de ocorrências: Ilimitado
Elementos principais:<ambiente>
Elementos subordinados necessários:<texto>, <script> ou <objectSet>
Sintaxe:
<variable name="ID" remap=TRUE|FALSE>
</variable>
Configuração | Obrigatório? | Valor |
---|---|---|
name | Sim |
ID é um valor de cadeia que é o nome utilizado para referenciar a variável de ambiente. A Microsoft recomenda que o ID comece com o nome do componente para evitar colisões no espaço de nomes. Por exemplo, se o nome do componente for MyComponent e se pretender uma variável que seja o caminho de instalação do componente, MyComponent.InstallPath poderá ser especificado. |
remapear | Não, predefinição = FALSO | Especifica se pretende avaliar esta variável de ambiente como uma variável de ambiente de remapeamento. Os objetos localizados num caminho abaixo do valor desta variável de ambiente são movidos automaticamente para onde a variável de ambiente aponta no computador de destino. |
O exemplo seguinte é do MigApp.xml
ficheiro:
<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 de versão> define a versão do componente, mas não afeta a migração.
Número de ocorrências: zero ou um
Elementos principais:<componente>
Elementos subordinados: nenhum
Sintaxe:
<version>ComponentVersion</version>
Configuração | Obrigatório? | Valor |
---|---|---|
ComponentVersion | Sim | A versão do componente, que pode conter padrões. |
Por exemplo:
<version>4.*</version>
<windowsObjects>
O <elemento windowsObjects> destina-se apenas à utilização interna do USMT. Não utilize este elemento.
Apêndice
Especificar localizações
Especificar localizações codificadas. A localização codificada utilizada em todas as funções auxiliares é uma representação de cadeia inequívoca para o nome de um objeto. A localização codificada é composta pela parte do nó, opcionalmente seguida pela folha entre parênteses retos. Este formato faz uma distinção clara entre nós e folhas.
Por exemplo, especifique o ficheiro
C:\Windows\Notepad.exe
da seguinte forma:c:\Windows[Notepad.exe]
. Da mesma forma, especifique o diretórioC:\Windows\System32
da seguinte forma:c:\Windows\System32
. (Repare na ausência da[]
construção.)Representar o registo é semelhante. O valor predefinido de uma chave de registo é representado como uma construção vazia
[]
. Por exemplo, o valor predefinido da chave deHKLM\SOFTWARE\MyKey
registo éHKLM\SOFTWARE\MyKey[]
.Especificar 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ó como a parte de folha aceitam padrões. No entanto, um padrão do nó não se estende até à 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 ficheiros nesses diretórios. Para corresponder também aos ficheiros,c:\Windows\*[*]
tem de ser especificado.
Funções internas do USMT
As seguintes funções destinam-se apenas à utilização interna do USMT. Não os utilize num ficheiro de.xml .
AntiAlias
ConverterScreenSaver
ConvertShowIEOnDesktop
ConvertToOfficeLangID
MigrateActiveDesktop
MigrateAppearanceUPM
MigrateDisplayCS
MigrateDisplaySS
MigrateIEAutoSearch
MigrateMouseUPM
MigrateSoundSysTray
MigrateTaskBarSS
SetPstPathInMapiStruc
Etiquetas de versão válidas
As seguintes etiquetas de versão podem ser utilizadas com várias funções auxiliares:
"CompanyName"
"FileDescription"
"FileVersion"
"InternalName"
"LegalCopyright"
"OriginalFilename"
"ProductName"
"ProductVersion"
As seguintes etiquetas de versão contêm valores que podem ser comparados:
"FileVersion"
"ProductVersion"