Referência de esquemas de modelos de aplicativos para o UE-V (Windows 10)

O User Experience Virtualization (UE-V) usa configurações XML de local para definir as configurações do aplicativo da área de trabalho e as configurações do Windows que são capturadas e aplicadas pelo UE-V. O UE-V inclui um conjunto de modelos de local de configurações padrão. Você também pode criar modelos de local de configurações personalizadas com o gerador de modelos do UE-V.

Um usuário avançado pode personalizar o arquivo XML para um modelo de local de configurações. Este tópico detalha a estrutura XML dos modelos de local de configurações do UE-V e fornece orientação para a edição desses arquivos.

Referência de esquemas de modelos de aplicativos UE-V

Esta seção detalha a estrutura XML do modelo de local de configurações do UE-V e fornece orientação para a edição desse arquivo.

Nesta seção

Declaração XML e atributo de codificação

Obrigatório: TrueTipo: Cadeia de caracteres

A declaração XML deve especificar o atributo XML versão 1.0 (<?xml version="1.0">). Os modelos de local de configurações criados pelo gerador de modelos do UE-V são salvos na codificação UTF-8, embora a codificação não seja especificada explicitamente. Recomendamos que você inclua o atributo encoding="UTF-8" nesse elemento como prática recomendada. Todos os modelos incluídos no produto também especificam essa marca (consulte os documentos em %ProgramFiles%\Microsoft User Experience Virtualization\Templates para referência). Por exemplo:

<?xml version="1.0" encoding="UTF-8"?>

Namespace e elemento raiz

Obrigatório: TrueTipo: Cadeia de caracteres

O UE-V usa o https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate namespace para todos os aplicativos. SettingsLocationTemplate é o elemento raiz e contém todos os outros elementos. Referência SettingsLocationTemplate em todos os modelos usando esta marca:

<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>

Tipos de dados

Esses tipos de dados são aqueles para o esquema de modelo de aplicativo UE-V.

GUID O GUID descreve uma expressão regular de identificador global exclusivo padrão no formato "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}". Esse GUID é usado no elemento Filesetting\Root\KnownFolder para verificar a formatação de pastas conhecidas.

FilenameString FilenameString refere-se ao nome do arquivo de um processo a ser monitorado. Seus valores são restritos pela regex [^\\\?\*\|<>/:]+, (ou seja, não podem conter caracteres de barra invertida, asterisco ou caractere de interrogação de card selvagem, o caractere de tubo, o sinal de maior ou menor que, barra ou dois pontos).

IDString IDString refere-se ao valor de ID dos elementos Application, SettingsLocationTemplate e Common elements (usados para descrever conjuntos de aplicativos que compartilham configurações comuns). Ele é restrito pelo mesmo regex que FilenameString ([^\\\?\*\|<>/:]+).

TemplateVersion TemplateVersion é um valor inteiro usado para descrever a revisão do modelo de local de configurações. Seu valor pode variar de 0 a 2147483647.

Vazio Vazio refere-se a um valor nulo. Esse tipo de dados é usado em Process\ShellProcess para indicar que não há processo a ser monitorado. Esse valor não deve ser usado em nenhum modelo de aplicativo.

Autor O tipo de dados Autor é um tipo complexo que identifica o autor de um modelo. Ela contém dois elementos filho: Name e Email. No tipo de dados Autor, o elemento Nome é obrigatório, enquanto o elemento Email é opcional. Esse tipo é descrito com mais detalhes no elemento SettingsLocationTemplate.

Variação Range define uma classe inteira que consiste em dois elementos filho: Minimum e Maximum. Esse tipo de dados é implementado no tipo de dados ProcessVersion. Se especificado, os valores Mínimo e Máximo deverão ser incluídos.

ProcessVersion ProcessVersion define um tipo com quatro elementos filho: Principal, Secundário, Build e Patch. Esse tipo de dados é usado pelo elemento Process para preencher seus valores ProductVersion e FileVersion. Os dados para esse tipo são um valor de intervalo. O elemento filho principal é obrigatório e os outros são opcionais.

Arquitetura A arquitetura enumera dois valores possíveis: Win32 e Win64. Esses valores são usados para especificar a arquitetura do processo.

Processo O tipo de dados Process é um contêiner usado para descrever os processos a serem monitorados pelo UE-V. Ela contém seis elementos filho: Filename, Architecture, ProductName, FileDescription, ProductVersion e FileVersion. Esta tabela detalha o respectivo tipo de dados de cada elemento:

Elemento Tipo de Dados Obrigatório
Nome do arquivo FilenameString True
Arquitetura Arquitetura False
ProductName String False
FileDescription String False
ProductVersion ProcessVersion False
Versão do arquivo ProcessVersion False

Processos O tipo de dados Processes representa um contêiner para uma coleção de um ou mais elementos Process. Há suporte para dois elementos filho no tipo de sequência Processes: Process e ShellProcess. Process é um elemento do tipo Process e ShellProcess é do tipo de dados Empty. Pelo menos um item deve ser identificado na sequência.

Caminho O caminho é consumido por RegistrySetting e FileSetting para se referir ao Registro e aos caminhos de arquivo. Esse elemento dá suporte a dois atributos opcionais: Recursive e DeleteIfNotFound. Ambos os valores são definidos como default="False".

Recursivo indica que o caminho e todas as subpastas estão incluídos para configurações de arquivo ou que todas as chaves do Registro filho estão incluídas para configurações do Registro. Em ambos os casos, todos os itens no nível atual são incluídos nos dados capturados. Para um objeto FileSettings, todos os arquivos dentro da pasta especificada estão incluídos nos dados capturados pelo UE-V, mas as pastas não estão incluídas. Para caminhos do Registro, todos os valores no caminho atual são capturados, mas as chaves do Registro filho não são capturadas. Em ambos os casos, deve-se tomar cuidado para evitar a captura de grandes conjuntos de dados ou um grande número de itens.

O atributo DeleteIfNotFound remove a configuração dos dados do caminho de armazenamento das configurações do usuário. Essa remoção pode ser desejável nos casos em que a remoção dessas configurações do pacote economizará uma grande quantidade de espaço em disco no servidor de arquivos do caminho de armazenamento de configurações.

Máscara de arquivo FileMask especifica apenas alguns tipos de arquivo para a pasta definida por Path. Por exemplo, Path pode ser C:\users\username\files e FileMask pode ser *.txt para incluir apenas arquivos de texto.

RegistrySetting RegistrySetting representa um contêiner para chaves e valores do Registro e o comportamento desejado associado por parte do serviço UE-V. Quatro elementos filho são definidos nesse tipo: Path, Name, Exclude e uma sequência dos valores Path e Name.

Configuração de arquivo FileSetting contém parâmetros associados a arquivos e caminhos de arquivos. Quatro elementos filho são definidos: Root, Path, FileMask e Exclude. O root é obrigatório e os outros são opcionais.

Configurações Configurações é um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações de Registry, File, SystemParameter e CustomAction descritas anteriormente. Além disso, ele também pode conter os seguintes elementos filho com comportamentos descritos:

Elemento Descrição
Assíncrono Os pacotes de configurações assíncronas são aplicados sem bloquear a inicialização do aplicativo para que o início do aplicativo prossiga enquanto as configurações ainda estão sendo aplicadas. Esse elemento é útil para configurações que podem ser aplicadas de forma assíncrona, como as configurações obtidas/definidas por meio de uma API, como SystemParameterSetting.
PreventOverlappingSynchronization Por padrão, o UE-V só salva configurações para um aplicativo quando a última instância de um aplicativo usando o modelo é fechada. Quando esse elemento é definido como 'false', o UE-V exporta as configurações mesmo que outras instâncias de um aplicativo estejam em execução. Os modelos adequados - aqueles modelos que incluem uma seção de elemento comum - que são fornecidos com o UE-V usam esse sinalizador para permitir que as configurações compartilhadas sempre sejam exportadas no fechamento do aplicativo, evitando que configurações específicas do aplicativo sejam exportadas até que a última instância seja fechada.
AlwaysApplySettings Esse parâmetro força um pacote de configurações importado a ser aplicado, mesmo que não haja diferenças entre o pacote e o estado atual do aplicativo. Esse parâmetro deve ser usado somente em casos especiais, pois pode reduzir a velocidade de importação das configurações.

Nome Elemento

Obrigatório: TrueTipo: Cadeia de caracteres

O nome especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao fazer referência ao modelo no WMI, no PowerShell, no Visualizador de Eventos e nos logs de depuração. Em geral, evite fazer referência a informações de versão, pois essa referência pode ser objetada a partir do elemento ProductVersion. Por exemplo, especifique <Name>My Application</Name> em vez de <Name>My Application 1.1</Name>.

Observação

O UE-V não faz referência a DTDs externos, portanto, não é possível usar entidades nomeadas em um modelo de local de configurações. Por exemplo, não use ® para se referir ao sinal ® de marca registrada. Em vez disso, use referências numeradas canônicas para incluir esses tipos de caracteres especiais, por exemplo, ® para o ® caractere. Essa regra se aplica a todos os valores de cadeia de caracteres neste documento.

Consulte http://www.w3.org/TR/xhtml1/dtds.html para obter uma lista completa de entidades de caracteres. Documentos codificados em UTF-8 podem incluir os caracteres Unicode diretamente. Salvar modelos por meio do gerador de modelos UE-V converte entidades de caracteres em suas representações Unicode automaticamente.

ID Element

Obrigatório: TrueTipo: Cadeia de caracteres

A ID preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo em tempo de execução (por exemplo, consulte a saída dos cmdlets Get-UevTemplate e Get-UevTemplateProgram PowerShell). Por convenção, essa tag não deve conter espaços, o que simplifica o script. Os números de versão dos aplicativos devem ser especificados neste elemento para permitir a fácil identificação do modelo, como <ID>MicrosoftOffice2016Win64</ID>.

Elemento de Versão

Obrigatório: TrueTipo: InteiroValor Mínimo: 0Valor Máximo: 2147483647

A versão identifica a versão do modelo de local de configurações para acompanhamento administrativo de alterações. O gerador de modelo do UE-V incrementa automaticamente esse número em um cada vez que o modelo é salvo. Observe que esse campo deve ser um número inteiro inteiro; valores fracionários, como <Version>2.5</Version> não são permitidos.

Dica

Você pode salvar anotações sobre alterações de versão usando marcas <!-- -->de comentário XML, por exemplo:

<!--
   Version History

   Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
   Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
   Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
   Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
 -->
<Version>4</Version>

Importante

Esse valor é consultado para determinar se uma nova versão de um modelo deve ser aplicada a um modelo existente nestas instâncias:

  • Quando a tarefa agendada de Atualização automática de modelo é executada
  • Quando o cmdlet do Update-UevTemplate PowerShell é executado
  • Quando o método microsoft\uev:SettingsLocationTemplate Update é chamado por meio do WMI

Elemento de autor

Obrigatório: FalsoTipo: Cadeia de caracteres

O autor identifica o criador do modelo de local de configurações. Há suporte para dois elementos filho opcionais: Name e Email. Ambos os atributos são opcionais, mas, se o elemento filho Email for especificado, ele deverá ser acompanhado pelo elemento Name. O autor refere-se ao nome completo do contato para o modelo de local de configurações, e o e-mail deve se referir a um endereço de e-mail do autor. Recomendamos que você inclua essas informações em modelos publicados publicamente.

Processos e Elemento de Processo

Obrigatório: TrueTipo: Elemento

Os processos contêm pelo menos um <Process> elemento que, por sua vez, contém os seguintes elementos filho: Filename, Architecture, ProductName, FileDescription, ProductVersion e FileVersion. O elemento filho Filename é obrigatório e os outros são opcionais. Um elemento totalmente preenchido contém marcas semelhantes a este exemplo:

<Process>
  <Filename>MyApplication.exe</Filename>
  <Architecture>Win64</Architecture>
  <ProductName> MyApplication </ProductName>
  <FileDescription>MyApplication.exe</FileDescription>
  <ProductVersion>
    <Major Minimum="2" Maximum="2" />
    <Minor Minimum="0" Maximum="0" />
    <Build Minimum="0" Maximum="0" />
    <Patch Minimum="5" Maximum="5" />
  </ProductVersion>
  <FileVersion>
    <Major Minimum="2" Maximum="2" />
    <Minor Minimum="0" Maximum="0" />
    <Build Minimum="0" Maximum="0" />
    <Patch Minimum="5" Maximum="5" />
  </FileVersion>
</Process>

Nome do arquivo

Obrigatório: TrueTipo: Cadeia de caracteres

O nome do arquivo refere-se ao nome do arquivo real do executável conforme ele aparece no sistema de arquivos. Esse elemento especifica o critério primário que o UE-V usa para avaliar se um modelo se aplica a um processo ou não. Esse elemento deve ser especificado no XML do modelo de local de configurações.

Os nomes de arquivo válidos não devem corresponder à expressão regular [^\\\?\*\|<>/:]+, ou seja, não podem conter caracteres de barra invertida, asterisco ou caracteres de card curinga de ponto de interrogação, o caractere pipe, o sinal de maior ou menor que, barra ou dois-pontos (os caracteres \ ? * | <> / ou :.).

Dica

Para testar uma cadeia de caracteres em relação a esse regex, use uma janela de comando do PowerShell e substitua o nome do executável por YourFileName:

"YourFileName.exe" -match "[\\\?\*\|<>/:]+"

Um valor True indica que a cadeia de caracteres contém caracteres não válidos. Aqui estão alguns exemplos de valores ilegais:

  • \\server\share\program.exe
  • Programa*.exe
  • Pro?ram.exe
  • Programa<1>.exe

Observação

O gerador de modelo do UE-V codifica os caracteres maior que e menor que como > e < respectivamente.

Em raras circunstâncias, o valor FileName não incluirá necessariamente a extensão .exe, mas deve ser especificado como parte do valor. Por exemplo, <Filename>MyApplication.exe</Filename> deve ser especificado em vez de <Filename>MyApplication</Filename>. O segundo exemplo não aplicará o modelo ao processo se o nome real do arquivo executável for "MyApplication.exe".

Arquitetura

Obrigatório: FalsoTipo: Arquitetura (cadeia de caracteres)

Arquitetura refere-se à arquitetura do processador para a qual o executável de destino foi compilado. Os valores válidos são Win32 para aplicativos de 32 bits ou Win64 para aplicativos de 64 bits. Se presente, essa marca limita a aplicabilidade do modelo de local de configurações a uma arquitetura de aplicativo específica. Para obter um exemplo dessa restrição de aplicabilidade, compare os arquivos %ProgramFiles%\Microsoft User Experience Virtualization\templates\ MicrosoftOffice2016Win32.xml e MicrosoftOffice2016Win64.xml incluídos no UE-V. Essa restrição de aplicabilidade é útil quando os caminhos relativos são alterados entre diferentes versões de um executável ou se as configurações foram adicionadas ou removidas ao mover de uma arquitetura de processador para outra.

Se esse elemento estiver ausente, o modelo de local de configurações ignorará a arquitetura do processo e se aplicará aos processos de 32 bits e 64 bits se o nome do arquivo e outros atributos se aplicarem.

Observação

O UE-V não oferece suporte a processadores ARM nesta versão.

ProductName

Obrigatório: FalsoTipo: Cadeia de caracteres

ProductName é um elemento opcional usado para identificar um produto para fins administrativos ou de relatórios. ProductName difere de Filename porque não há restrições de expressão regular em seu valor. Essa flexibilidade permite descrições mais facilmente compreendidas de um processo em que o nome executável pode não ser óbvio. Por exemplo:

<Process>
  <Filename>MyApplication.exe</Filename>
  <ProductName>My Application 6.x by Contoso.com</ProductName>
  <ProductVersion>
    <Major Minimum="6" Maximum="6" />
  </ProductVersion>
</Process>

FileDescription

Obrigatório: FalsoTipo: Cadeia de caracteres

FileDescription é uma marca opcional que permite uma descrição administrativa do arquivo executável. Essa marca é um campo de texto livre e pode ser útil para distinguir vários executáveis em um pacote de software em que é necessário identificar a função do executável.

Por exemplo, em um aplicativo adequado, pode ser útil fornecer lembretes sobre a função de dois executáveis (MyApplication.exe e MyApplicationHelper.exe), conforme mostrado aqui:

<Processes>

   <Process>
      <Filename>MyApplication.exe</Filename>
      <FileDescription>My Application Main Engine</ FileDescription>
      <ProductVersion>
        <Major Minimum="6" Maximum="6" />
      </ProductVersion>
    </Process>
    <Process>
      <Filename>MyApplicationHelper.exe</Filename>
      <FileDescription>My Application Background Process Executable</FileDescription>
      <ProductVersion>
        <Major Minimum="6" Maximum="6" />
      </ProductVersion>
    </Process>
</Processes>

ProductVersion

Obrigatório: FalsoTipo: Cadeia de caracteres

ProductVersion refere-se às versões principais e secundárias do produto de um arquivo, bem como a um nível de build e patch. ProductVersion é um elemento opcional, mas se especificado, deve conter pelo menos o elemento filho Major. O valor deve expressar um intervalo no formato Minimum="X", Maximum="Y", em que X e Y são inteiros. Os valores Mínimo e Máximo podem ser idênticos.

Os elementos da versão do produto e do arquivo podem não ser especificados. Isso torna o modelo "independente de versão", o que significa que o modelo se aplicará a todas as versões do executável especificado.

Exemplo 1:

A versão do produto: 1.0 especificada no gerador de modelo UE-V produz o seguinte XML:

<ProductVersion>
  <Major Minimum="1" Maximum="1" />
  <Minor Minimum="0" Maximum="0" />
</ProductVersion>

Exemplo 2:

A versão do arquivo: 5.0.2.1000 especificada no gerador de modelo UE-V produz o seguinte XML:

<FileVersion>
  <Major Minimum="5" Maximum="5" />
  <Minor Minimum="0" Maximum="0" />
  <Build Minimum="2" Maximum="2" />
  <Patch Minimum="1000" Maximum="1000" />
</FileVersion>

Exemplo incorreto 1 - intervalo incompleto:

Somente o atributo Mínimo está presente. O máximo também deve ser incluído em um intervalo.

<ProductVersion>
  <Major Minimum="2" />
</ProductVersion>

Exemplo incorreto 2 - Secundário especificado sem elemento Principal:

Somente o elemento Minor está presente. Major também deve ser incluído.

<ProductVersion>
  <Minor Minimum="0" Maximum="0" />
</ProductVersion>

Versão do arquivo

Obrigatório: FalsoTipo: Cadeia de caracteres

FileVersion diferencia entre a versão de lançamento de um aplicativo publicado e os detalhes de compilação interna de um componente executável. Para a maioria das aplicações comerciais, esses números são idênticos. Quando elas variam, a versão do produto de um arquivo indica uma identificação genérica de versão de um arquivo, enquanto a versão do arquivo indica uma compilação específica de um arquivo (como no exemplo de um hotfix ou atualização). Esta versão do arquivo identifica arquivos exclusivamente sem interromper a lógica de detecção.

Para determinar a versão do produto e a versão do arquivo de um executável específico, clique com o botão direito do mouse no arquivo no Windows Explorer, selecione Propriedades e clique na guia Detalhes.

Incluir um elemento FileVersion para um aplicativo permite uma lógica de detecção de ajuste fino mais granular, mas não é necessário para a maioria dos aplicativos. As configurações do elemento ProductVersion são verificadas primeiro e, em seguida, FileVersion é verificado. A configuração mais restritiva será aplicada.

Os elementos filho e as regras de sintaxe de FileVersion são idênticos aos elementos e regras de ProductVersion.

<Process>
  <Filename>MSACCESS.EXE</Filename>
  <Architecture>Win32</Architecture>
  <ProductVersion>
    <Major Minimum="14" Maximum="14" />
    <Minor Minimum="0" Maximum="0" />
  </ProductVersion>
  <FileVersion>
    <Major Minimum="14" Maximum="14" />
    <Minor Minimum="0" Maximum="0" />
  </FileVersion>
</Process>

Elemento de Aplicativo

Aplicativo é um contêiner para configurações que se aplicam a um aplicativo específico. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao fazer referência ao modelo no WMI, no PowerShell, no Visualizador de Eventos e nos logs de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo em tempo de execução. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
LocalizedNames Um nome opcional exibido na interface do usuário, localizado por localidade de um idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.
Versão Identifica a versão do modelo de local de configurações para acompanhamento administrativo de alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se este modelo é habilitado em conjunto com uma conta Microsoft ou não. Se a sincronização de MSA estiver habilitada para um usuário em um computador, esse modelo será desabilitado automaticamente.
DeferToOffice365 Semelhante ao MSA, esse tipo controla se esse modelo está habilitado em conjunto com o Office361. Se o Office 365 estiver sendo usado para sincronizar configurações, esse modelo será desabilitado automaticamente.
Perfil fixo Especifica que esse modelo só pode ser associado ao perfil especificado nesse elemento e não pode ser alterado por meio do WMI ou do PowerShell.
Processos Um contêiner para uma coleção de um ou mais elementos de processo. Para obter mais informações, consulte Processos.
Configurações Um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações de Registro, Arquivo, SystemParameter e CustomAction. Para obter mais informações, consulte Configurações em Tipos de dados".

Elemento Comum

Common é semelhante a um elemento Application, mas está sempre associado a dois ou mais elementos Application. A seção Comum representa o conjunto de configurações compartilhadas entre essas instâncias do Aplicativo. É uma coleção dos seguintes campos/tipos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse nome é usado para fins de exibição ao fazer referência ao modelo no WMI, no PowerShell, no Visualizador de Eventos e nos logs de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo em tempo de execução. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
LocalizedNames Um nome opcional exibido na interface do usuário, localizado por localidade de um idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.
Versão Identifica a versão do modelo de local de configurações para acompanhamento administrativo de alterações. Para obter mais informações, consulte Versão.
DeferToMSAccount Controla se este modelo é habilitado em conjunto com uma conta Microsoft ou não. Se a sincronização de MSA estiver habilitada para um usuário em um computador, esse modelo será desabilitado automaticamente.
DeferToOffice365 Semelhante ao MSA, esse tipo controla se esse modelo está habilitado em conjunto com o Office361. Se o Office 365 estiver sendo usado para sincronizar configurações, esse modelo será desabilitado automaticamente.
Perfil fixo Especifica que esse modelo só pode ser associado ao perfil especificado nesse elemento e não pode ser alterado por meio do WMI ou do PowerShell.
Configurações Um contêiner para todas as configurações que se aplicam a um modelo específico. Ele contém instâncias das configurações de Registro, Arquivo, SystemParameter e CustomAction. Para obter mais informações, consulte Configurações em Tipos de dados.

Elemento SettingsLocationTemplate

Esse elemento define as configurações para um único aplicativo ou um conjunto de aplicativos.

Campo/Tipo Descrição
Name Especifica um nome exclusivo para o modelo de local de configurações. Esse tipo é usado para fins de exibição ao fazer referência ao modelo no WMI, no PowerShell, no Visualizador de Eventos e nos logs de depuração. Para obter mais informações, consulte Nome.
ID Preenche um identificador exclusivo para um modelo específico. Essa marca se torna o identificador primário que o serviço UE-V usa para fazer referência ao modelo em tempo de execução. Para obter mais informações, consulte ID.
Descrição Uma descrição opcional do modelo.
LocalizedNames Um nome opcional exibido na interface do usuário, localizado por localidade de um idioma.
LocalizedDescriptions Uma descrição de modelo opcional localizada por uma localidade de idioma.

Apêndice: SettingsLocationTemplate.xsd

Aqui está o arquivo SettingsLocationTemplate.xsd mostrando seus elementos, elementos filho, atributos e parâmetros:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
  targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  elementFormDefault="qualified"
  xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:simpleType name="Guid">
        <xs:restriction base="xs:string">
            <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="FilenameString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:]+" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="IDString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:.]+" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="CompositeIDString">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\\\?\*\|&lt;&gt;/:.]+([.][^\\\?\*\|&lt;&gt;/:.]+)?" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="TemplateVersion">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="2147483647" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Empty">
        <xs:sequence/>
    </xs:complexType>

    <xs:complexType name="LocalizedString">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Locale" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="LocalizedName">
        <xs:sequence>
            <xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="LocalizedDescription">
        <xs:sequence>
            <xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ReplacedTemplates">
      <xs:sequence>
        <xs:element name="ID" type="CompositeIDString" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Author">
        <xs:all>
            <xs:element name="Name" type="xs:string" minOccurs="1" />
            <xs:element name="Email" type="xs:string" minOccurs="0" />
        </xs:all>
    </xs:complexType>

    <xs:complexType name="Range">
        <xs:attribute name="Minimum" type="xs:integer" use="required"/>
        <xs:attribute name="Maximum" type="xs:integer" use="required"/>
    </xs:complexType>

    <xs:complexType name="ProcessVersion">
        <xs:sequence>
            <xs:element name="Major" type="Range" minOccurs="1" />
            <xs:element name="Minor" type="Range" minOccurs="0" />
            <xs:element name="Build" type="Range" minOccurs="0" />
            <xs:element name="Patch" type="Range" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="Architecture">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Win32"/>
            <xs:enumeration value="Win64"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Process">
        <xs:sequence>
            <xs:element name="Filename" type="FilenameString" minOccurs="1" />
            <xs:element name="Architecture" type="Architecture" minOccurs="0" />
            <xs:element name="ProductName" type="xs:string" minOccurs="0" />
            <xs:element name="FileDescription" type="xs:string" minOccurs="0" />
            <xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Processes">
        <xs:sequence>
            <xs:choice minOccurs="1">
                <xs:element name="Process" type="Process" />
                <xs:element name="ShellProcess" type="Empty" />
            </xs:choice>
            <xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Path">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Recursive" type="xs:boolean" default="false"/>
                <xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="RegistrySetting">
        <xs:sequence>
            <xs:element name="Path" type="Path" />
            <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Path" type="Path" minOccurs="0" />
                        <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="FileSetting">
        <xs:sequence>

            <xs:element name="Root">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="KnownFolder" type="Guid" />
                        <xs:element name="RegistryEntry" type="xs:string" />
                        <xs:element name="EnvironmentVariable" type="xs:string" />
                    </xs:choice>
                </xs:complexType>
            </xs:element>

            <xs:element name="Path" minOccurs="0" type="Path" />
            <xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>

            <xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Path" type="Path" minOccurs="0" />
                        <xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="CustomActionSetting">
        <xs:restriction base="xs:anyURI"/>
    </xs:simpleType>

    <xs:simpleType name="SystemParameterSetting">
        <xs:restriction base="xs:string">

            <!-- Accessibility parameters -->
            <xs:enumeration value="AccessTimeout"/>
            <xs:enumeration value="AudioDescription"/>
            <xs:enumeration value="ClientAreaAnimation"/>
            <xs:enumeration value="DisableOverlappedContent"/>
            <xs:enumeration value="FilterKeys"/>
            <xs:enumeration value="FocusBorderHeight"/>
            <xs:enumeration value="FocusBorderWidth"/>
            <xs:enumeration value="HighContrast"/>
            <xs:enumeration value="MessageDuration"/>
            <xs:enumeration value="MouseClickLock"/>
            <xs:enumeration value="MouseClickLockTime"/>
            <xs:enumeration value="MouseKeys"/>
            <xs:enumeration value="MouseSonar"/>
            <xs:enumeration value="MouseVanish"/>
            <xs:enumeration value="ScreenReader"/>
            <xs:enumeration value="ShowSounds"/>
            <xs:enumeration value="SoundSentry"/>
            <xs:enumeration value="StickyKeys"/>
            <xs:enumeration value="ToggleKeys"/>

            <!-- Input parameters -->
            <xs:enumeration value="Beep"/>
            <xs:enumeration value="BlockSendInputResets"/>
            <xs:enumeration value="DefaultInputLang"/>
            <xs:enumeration value="DoubleClickTime"/>
            <xs:enumeration value="DoubleClkHeight"/>
            <xs:enumeration value="DoubleClkWidth"/>
            <xs:enumeration value="KeyboardCues"/>
            <xs:enumeration value="KeyboardDelay"/>
            <xs:enumeration value="KeyboardPref"/>
            <xs:enumeration value="KeyboardSpeed"/>
            <xs:enumeration value="Mouse"/>
            <xs:enumeration value="MouseButtonSwap"/>
            <xs:enumeration value="MouseHoverHeight"/>
            <xs:enumeration value="MouseHoverTime"/>
            <xs:enumeration value="MouseHoverWidth"/>
            <xs:enumeration value="MouseSpeed"/>
            <xs:enumeration value="MouseTrails"/>
            <xs:enumeration value="SnapToDefButton"/>
            <xs:enumeration value="WheelScrollChars"/>
            <xs:enumeration value="WheelScrollLines"/>

            <!-- Desktop parameters (limited subset) -->
            <xs:enumeration value="DeskWallpaper"/>
            <xs:enumeration value="DesktopColor"/>

        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Settings">
        <xs:sequence>
            <xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
            <xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
            <xs:element name="AlwaysApplySettings" type="xs:boolean" minOccurs="0" />
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Registry" type="RegistrySetting" />
                <xs:element name="File" type="FileSetting" />
                <xs:element name="SystemParameter" type="SystemParameterSetting" />
                <xs:element name="CustomAction" type="CustomActionSetting" />
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Common">
        <xs:sequence>
            <xs:element name="Name" type="xs:string" />
            <xs:element name="ID" type="IDString" />
            <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
            <xs:element name="Description" type="xs:string" minOccurs="0" />
            <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
            <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
            <xs:element name="Version" type="xs:integer" />
            <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
            <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
            <xs:element name="Settings" type="Settings" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Application">
        <xs:sequence>
            <xs:element name="Name" type="xs:string" />
            <xs:element name="ID" type="IDString" />
            <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
            <xs:element name="Description" type="xs:string" minOccurs="0" />
            <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
            <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
            <xs:element name="Version" type="xs:integer" />
            <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
            <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
            <xs:element name="Processes" type="Processes" />
            <xs:element name="Settings" type="Settings" />
        </xs:sequence>
    </xs:complexType>

    <xs:element name="SettingsLocationTemplate">
        <xs:complexType>
            <xs:sequence>

                <xs:element name="Name" type="xs:string" />
                <xs:element name="ID" type="IDString" />
                <xs:element name="Description" type="xs:string" minOccurs="0" />
                <xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
                <xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />

                <xs:choice>

                    <!-- Single application -->
                    <xs:sequence>
                        <xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
                        <xs:element name="Version" type="TemplateVersion" />
                        <xs:element name="Author" type="Author" minOccurs="0" />
                        <xs:element name="FixedProfile" type="xs:string"  minOccurs="0" />
                        <xs:element name="DeferToMSAccount" type="Empty"  minOccurs="0" />
                        <xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
                        <xs:element name="Processes" type="Processes" />
                        <xs:element name="Settings" type="Settings" />
                    </xs:sequence>

                    <!-- Suite of applications -->
                    <xs:sequence>
                        <xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
                        <xs:element name="Author" type="Author" minOccurs="0" />
                        <xs:element name="FixedProfile" type="xs:string"  minOccurs="0" />
                        <xs:element name="Common" type="Common" />
                        <xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
                    </xs:sequence>

                </xs:choice>

            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- SettingsLocationTemplate -->

</xs:schema>

Trabalhando com modelos personalizados do UE-V e com o gerador de modelos do UE-VReferência técnica para o UE-V