Compartilhar via


Registrar um aplicativo OEM durante o processo de geração de imagens

Importante

O Universal Orchestrator fornece funcionalidade aos OEMs para registrar um aplicativo durante o processo de geração de imagens para executar uma instalação/atualização rápida única. Essa instalação ocorre dentro de 30 minutos após um usuário fazer logon em um novo dispositivo. Acelerar um aplicativo pode ter um impacto negativo no desempenho da experiência inicial ao usar novos dispositivos. Essa funcionalidade só está disponível nas versões do Windows que executam a atualização de versão prévia cumulativa sem segurança de novembro de 2024.

Windows 11 23H2 – KB5046732 (build do sistema operacional 22631.4541)
Windows 11 24H2 – KB5046740 (build do sistema operacional 26100.2454)

Requisitos

Para conectar-se à estrutura de aplicativos acelerada, o aplicativo deve atender aos seguintes requisitos:

  • Deve ser um aplicativo empacotado da Store no formato MSIX

  • Ele deve ter um PFN (Nome da Família de Produtos) válido

Inscrição

Os arquivos de registro são arquivos JSON ASCII que contêm metadados com informações sobre o fluxo acelerado desejado e qualquer direcionamento personalizado do lado do cliente que precise ser executado.

Aplicativos acelerados dão suporte a dois mecanismos para atualizar/adquirir um aplicativo:

  1. Na Microsoft Store usando um ProductId (Recomendado)

  2. De uma URL que contém um pacote MSIX ou um conjunto MSIX. Esse pacote deve conter um aplicativo empacotado da Store com um PFN (Nome da Família de Pacotes) válido. O Proprietário do Aplicativo ou OEM é responsável por manter essa URL.

Cada arquivo de registro deve conter as seguintes propriedades JSON necessárias:

Chave Tipo Descrição
PFN Corda O nome da família de pacotes do aplicativo (exemplo: Microsoft.WindowsStore_8wekyb3d8bbwe)
OEMName Corda Cadeia de caracteres para representar o OEM criando este registro
UpdaterName Corda Nome exclusivo para acompanhar esse registro acelerado
Versão de Registro Número A versão deste registro de aplicativo
Fonte Corda Valores permitidos:

Repositório | CustomURL

Loja Microsoft – pesquisa o aplicativo diretamente da Loja Microsoft

CustomURL – pesquisa o aplicativo a partir de uma URL especificada no valor "Endpoint" do registro do aplicativo
Cenário Corda Valores permitidos:

Atualização | Aquisição | StubAcquisition

Atualização – (sem suporte para fluxos CustomURL) tenta atualizar um aplicativo existente para sua versão mais recente disponível. Nenhum trabalho será feito se o aplicativo não estiver presente

Aquisição – tenta adquirir a versão mais recente de um aplicativo.

StubAcquisition – tenta adquirir um "stub" do aplicativo (se ele estiver disponível). Adquire o aplicativo completo se o stub não estiver disponível.
IdentificaçãoDoProduto Corda (Necessário apenas para cenários de Loja)

A ProductId do aplicativo da Loja desejado
Endpoint Corda (Necessário apenas para cenários CustomURL)

Um URI de cadeia de caracteres apontando para um local que hospeda um pacote MSIX. Deve ser um URI SSL que começa com 'https'.

Além disso, as propriedades opcionais a seguir podem ser especificadas para modificar o comportamento da instalação acelerada do aplicativo ou para direcionar o fluxo acelerado para ocorrer somente em determinadas condições.

Chave Tipo Padrão Descrição
AllowedInOobe Booleano Falso Se este aplicativo rápido deve ser executado durante o OOBE do usuário.

Observação: Tenha cuidado ao definir como true, pois isso pode criar restrições de recurso em um dispositivo durante o fluxo da Experiência Out of Box e afetar negativamente o desempenho percebido pelo usuário.
MaxRetryCount Número 1 O número de vezes que esse atualizador tem permissão para tentar novamente após a falha.

O valor máximo permitido é: 5
DuraçãoDoTimeoutEmMinutos Número 15 A duração em minutos de espera para que este atualizador conclua o trabalho.

O valor máximo permitido é: 30
Arquitetura Corda Nenhuma restrição Valores permitidos:

"amd64" | "arm64"

Especifica se o trabalho acelerado deve ocorrer apenas para uma arquitetura específica.
VersãoMínimaPermitidaDaBuild Número Nenhuma restrição Versões mínimas de build do Windows em que o trabalho acelerado é permitido.

Por exemplo, se definido como 22631, o trabalho acelerado é permitido para o Windows 11 23H2 (10.0.22631.x), mas bloqueado para o Windows 11 22H2 (10.0.22621.x)
HonorDeprovisioning Booleano Falso (Aplicável somente para cenários de aquisição)

Se o aplicativo foi desprovisionado anteriormente, não tente adquiri-lo novamente.
SkipIfPresent Booleano Falso (Aplicável somente para cenários de aquisição)

Não execute o trabalho acelerado se alguma versão do aplicativo já estiver presente.
Prioridade Número 100 Um valor numérico de 1 a 100 para indicar a prioridade relativa dessa atualização de aplicativo.

Valores mais baixos indicam uma prioridade relativa mais alta para outros aplicativos acelerados.
RegiõesExcluídas Array (String) Sem restrições Uma matriz JSON de cadeias de caracteres para regiões em que esse aplicativo NÃO deve ser agilizado.

Cada entrada na matriz corresponde ao código de país ISO 3166-1 de duas letras da região desejada.

Exemplo: ["US", "MX"] evitaria esse fluxo em dispositivos em que a região é Estados Unidos ou México.

Observação: Esse valor não pode ser usado com IncludedRegions.
Regiões Incluídas Array (cadeia de caracteres) Sem restrições Uma matriz JSON de cadeias de caracteres que indicam uma lista de permissões de regiões em que esse aplicativo deve ser acelerado.

Cada entrada na matriz corresponde ao código de país ISO 3166-1 de duas letras da região desejada.

Exemplo: ["US", "MX"] permitiria esse fluxo somente em dispositivos em que a região é Estados Unidos ou México.

Observação: Esse valor não pode ser usado com ExcludedRegions.
Edições Incluídas Matriz (Número) Sem restrições Uma matriz JSON de números que indicam uma lista de permissões de Edições em que esse aplicativo deve ser agilizado.

Cada entrada na matriz corresponde ao código Edition recuperado pela API GetProductInfo .

Exemplo: [121, 122] deve incluir somente as Edições Education e EducationN

Observação: Esse valor não pode ser usado com ExcludedEditions.
ExcludeedEditions Matriz (Número) Sem restrições Uma matriz JSON de números para Edições em que este aplicativo NÃO deve ser agilizado.

Cada entrada na matriz corresponde ao código da Edição recuperado pela API GetProductInfo .

Exemplo: [121, 122] para excluir as edições Education e EducationN.

Observação: Esse valor não pode ser usado com IncludedEditions.

Amostras

aquisição de stub na Store, somente nos EUA e no México, para execução durante o OOBE

{  
    "OEMName": "Contoso",
    "UpdaterName": "OEMApp1",
    "RegistrationVersion":1,  
    "Source": "Store",  
    "Scenario": "StubAcquisition",  
    "PFN": "FakePackageFamilyName",  
    "ProductId": "StoreProductId",  
    "HonorDeprovisioning": true,  
    "AllowedInOobe": true,  
    "IncludedRegions": ["US", "MX"],  
    "Priority": 50  
}

aquisição de aplicativo baseada em URL em dispositivos amd64, excluindo as edições Education e EducationN, no Windows 11 23H2 apenas (not Windows 11 22H2)

{  
    "OEMName": "Contoso",
    "UpdaterName": "OEMApp1",
    "RegistrationVersion":2,  
    "Source": "CustomURL",  
    "Scenario": "Acquisition",  
    "PFN": "FakePackageFamilyName",  
    "Endpoint": "https://<SSL_URI>",   
    "ExcludedEditions": [121, 122],   
    "Architecture": "amd64",   
    "MinimumAllowedBuildVersion": 22631,  
    "Priority": 60 
}

Ferramentas

Para facilitar o processo de registro e fornecer feedback acionável sobre os metadados de registro, os OEMs precisam usar os scripts do PowerShell AppOrchestration do seguinte local:

microsoft/ms-update-universalorchestrator: Scripts e ferramentas para integração com fluxos de atualização baseados no Universal Orchestrator

Os scripts executam a validação básica e preparam o registro para o local apropriado no dispositivo. Em quaisquer falhas, os scripts geram uma exceção com os detalhes específicos da falha.

Para usar os scripts:

  1. Baixe os scripts em seu dispositivo. Na página de repositório do GitHub, você pode selecionar para baixar como um arquivo ZIP e extrair para seu dispositivo

  2. Em uma janela do PowerShell, execute "Import-Module <PathToScripts>\scripts\AppOrchestration.psd1"

Nota

Esses scripts exigem que o usuário tenha privilégios administrativos no dispositivo e deve ser executado em um console com privilégios elevados.

Há quatro cmdlets principais usados para o processo de registro:

Test-UpdaterRegistration <PathToRegistrationFile>
Finalidade: validar o conteúdo de um arquivo de registro proposto (sem executar o registro). Permite que o OEM faça iterações na carga do arquivo de registro sem afetar o dispositivo.

Add-UpdaterRegistration <CaminhoParaArquivoDeRegistro>
Finalidade: validar e preparar o conteúdo de um arquivo de registro para o local apropriado, para integrar ao fluxo de aplicativo acelerado.

Get-UpdaterRegistration <OEMName><updaterName>
Finalidade: se OEMName e UpdaterName forem fornecidos, retorne um resumo de um registro existente que corresponda a esses valores. Se essas entradas forem omitidas, retorne um resumo de todos os registros atuais presentes no dispositivo.

Remove-UpdaterRegistration <OEMName><UpdaterName>
Finalidade: cancele o cancelamento de qualquer registro que corresponda aos valores OEMName e UpdaterName.

Execução

A estrutura do Orquestrador Universal invoca automaticamente cada um dos aplicativos registrados, em sequência com base na prioridade relativa, nos primeiros 30 minutos de um usuário que atinge a Área de Trabalho em um novo dispositivo (ou durante o OOBE do Usuário se AllowedInOobe estiver definido como true). Cada aplicativo registrado adicionado pelo processo de registro OEM será tentado até:

  • Ele foi instalado com êxito

  • Ele supera o número máximo de falhas especificadas em MaxRetryCount. Após cada falha, o aplicativo entrará em um período de resfriamento de 30 minutos antes de tentar novamente.

A estrutura do Orquestrador Universal não executará tentativas aceleradas se qualquer uma das seguintes condições for verdadeira:

  • O dispositivo não tem acesso à Internet.

  • O dispositivo está em uma rede medida.

  • O dispositivo está em bateria e a economia de bateria está habilitada.

  • O dispositivo é configurado com uma política de tráfego de rede restrita Windows Update.

  • O dispositivo está configurado com uma política de CTA que não está definida para AutoApprove.

Em cada um desses casos, a estrutura do Orquestrador Universal mantém os registros em vigor até que a configuração do dispositivo permita que as tentativas aceleradas prossigam.

Se o registro do aplicativo contiver valores opcionais que bloqueiam o fluxo acelerado (por exemplo, devido ao tipo de edição), a estrutura do Orquestrador Universal considerará essa solicitação de registro atendida e não tentará novamente, mesmo que essas condições possam ser alteradas posteriormente em um dispositivo.

Importante

Tenha cuidado ao optar por agilizar aplicativos por meio dessa estrutura, pois as operações de atualização ocorrem quando o dispositivo pode estar em uso e pode causar um impacto negativo no desempenho da experiência do usuário em um novo dispositivo.