Quais são os atributos exigidos pelo elemento 'component' nos arquivos unattend.xml do Windows?

4

O elemento <component> em um arquivo unattend.xml - usado para fornecer informações necessárias para instalações totalmente automatizadas do Windows - geralmente é apresentado com vários atributos, por exemplo:

<component 
  name="Microsoft-Windows-International-Core-WinPE"
  processorArchitecture="amd64"
  publicKeyToken="31bf3856ad364e35"
  language="neutral"
  versionScope="nonSxS">

<!-- ... -->

</component>

Embora name e processorArchitecture sejam bastante autoexplicativos, e language sugere que talvez introduza configurações específicas de localidade, não consegui encontrar nenhuma documentação sobre nenhuma das esses atributos.

Em particular, quais são versionScope e publicKeyToken ? No momento, eles parecem ser "constantes mágicas".

    
por larsks 16.11.2014 / 23:41

1 resposta

3

Para responder a essa pergunta, primeiro precisamos de um pouco mais de informações sobre a origem desses atributos. O comentário de @Evan Anderson está no local: provavelmente nunca teremos acesso ao XSD oficial, no entanto, podemos inferir o significado com base em seu uso.

A primeira coisa a entender é que esse esquema não foi originalmente projetado para esses arquivos de resposta autônomos. A Microsoft simplesmente reutilizou o esquema WMIConfig; você pode encontrá-lo em vários lugares, mas um dos mais predominantes está nos arquivos "manifest" usados junto com os pacotes de atualização do Windows. Consulte aqui para um exemplo.

Neste uso original, os valores dos atributos se referiam ao pacote de atualização que eles acompanhavam, o que nos permite ter um pouco mais de percepção deles. Por exemplo, language pode usar qualquer um dos valores listados aqui . Mas o que isso tem a ver com arquivos de resposta autônomos? Você estava próximo da ideia de que existem configurações específicas de localidade. Lembre-se de que os arquivos não-assistidos não apenas transmitem "diretivas de configuração", mas também podem implantar pacotes - hotfixes, pacotes de idiomas, etc. Podemos ver isso no System Image Manager.

Observandoalgunsdessespacotes,especificamenteospacotesdeidiomas,podemosverqueoatributolanguageérealmenteutilizado:

Como esses atributos têm como objetivo principal descrever os pacotes que acompanham o arquivo autônomo, em vez das diretivas de configuração contidas nele, é fácil entender por que eles não fazem muito sentido com relação a essas diretivas e também por que eles parecem seja, como você diz, "constantes mágicas". A Microsoft simplesmente usou valores genéricos para esses atributos quando eles aparecem nas diretivas de configuração, porque quaisquer outros valores não são realmente aplicáveis.

Então, para descobrir o que significa Language, VersionScope e PublicKey Token, precisamos analisá-los no contexto dos pacotes que eles descrevem. Obviamente, Language descreve a aplicabilidade de um pacote específico de localidade. PublicKey Token é definido pela Microsoft aqui como" os últimos 8 bytes do hash SHA-1 da chave pública sob a qual o assembly está assinado. "

Quanto a VersionScope , embora não exista uma definição concreta oferecida pela Microsoft, podemos supor que isso tenha a ver com se o pacote em questão utiliza os assemblies Windows Component Store e Side by Side (SxS). Se você não é um programador, o que isso realmente implica pode ser um pouco confuso, mas confira a Wikipedia artigo sobre o tema.

Espero que isso lance alguma luz sobre o assunto!

    
por 19.11.2014 / 23:29