Registrar um aplicativo OEM durante o processo de geração de imagens
Importante
O Universal Orchestrator fornece funcionalidade aos OEMs para registar uma aplicação durante o processo de imagem, permitindo uma instalação ou atualização rápida e única. Esta instalação acontece dentro de 30 minutos após um utilizador iniciar sessão num novo dispositivo. Acelerar uma aplicação pode ter um impacto negativo no desempenho da experiência inicial para novos dispositivos. Essa funcionalidade só está disponível em versões do Windows que executam a Atualização Cumulativa Não Relacionada à Segurança de novembro de 2024.
Windows 11 23H2 - KB5046732 (Compilação do SO 22631.4541)
Windows 11 24H2 - KB5046740 (Compilação do SO 26100.2454)
Requerimentos
Para se conectar à estrutura do aplicativo acelerado, o aplicativo deve atender aos seguintes requisitos:
Deve ser uma aplicação empacotada da Microsoft Store no formato MSIX
Deve ter um Nome de Família de Produto (PFN) válido
Registo
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.
As aplicações aceleradas suportam dois mecanismos para atualizar/adquirir uma aplicação:
Da Microsoft Store usando um ID do Produto (Recomendado)
A partir de um URL que contém um pacote ou conjunto MSIX. Este pacote deve conter uma aplicação empacotada da Store com um Nome de Família de Pacote (PFN) válido. O OEM ou o Proprietário da Aplicação é responsável pela manutenção deste URL.
Cada arquivo de registro deve conter as seguintes propriedades JSON necessárias:
Chave | Tipo | Descrição |
---|---|---|
PFN | String | O nome da família do pacote do aplicativo (exemplo: Microsoft.WindowsStore_8wekyb3d8bbwe) |
OEMName | String | String para representar o OEM que está criando este registro |
UpdaterName | Corda | Nome exclusivo para acompanhar este registo acelerado |
Registo-Versão | Número | A versão deste registro de aplicativo |
Fonte | String | Valores permitidos: Loja | URL personalizado Loja - procura a aplicação diretamente a partir da Microsoft Store CustomURL - procura a aplicação a partir de um URL especificado no valor "Endpoint" do registo da aplicação |
Cenário | String | Valores permitidos: Atualização | Aquisição | StubAquisição Atualização - (Não suportado para fluxos CustomURL) tenta atualizar um aplicativo existente para sua versão mais recente disponível. Nenhum trabalho é feito se o aplicativo não estiver presente Aquisição - tenta adquirir a versão mais recente de um aplicativo. StubAcquisition - procura adquirir um "stub" da aplicação, caso esteja disponível. Adquire o aplicativo completo se o stub não estiver disponível. |
ID do Produto | String | (Necessário apenas para cenários da Loja) O ProductId do aplicativo da Loja desejado |
Ponto final | Sequência de caracteres | (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 seguintes propriedades opcionais podem ser especificadas para modificar o comportamento da instalação acelerada do aplicativo ou para direcionar o fluxo acelerado para ocorrer somente sob determinadas condições.
Chave | Tipo | Padrão | Descrição |
---|---|---|---|
PermitidoNaExperiênciaForaDaCaixa | Booleano | Falso | Se esse aplicativo acelerado deve ser executado durante a OOBE do usuário. Observação: Tenha cuidado ao definir como verdadeiro, pois isso pode criar restrições de recursos em um dispositivo durante o fluxo da Experiência Fora da Caixa e afetar negativamente o desempenho percebido pelo usuário. |
MaxRetryCount | Número | 1 | O número de vezes que este atualizador pode tentar novamente após uma falha. O valor máximo permitido é: 5 |
DuraçãoDoTempoLimiteEmMinutos | Número | 15 | A duração em minutos para aguardar até que este atualizador conclua o trabalho. O valor máximo permitido é: 30 |
Arquitetura | Corda | Sem restrições | Valores permitidos: "AMD64" | "ARM64" Especifica se o trabalho acelerado deve ocorrer apenas para uma arquitetura específica. |
Versão Mínima de Build Permitida | Número | Sem restrições | Versões mínimas de compilação 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 apenas para cenários de aquisição) Se o aplicativo foi desprovisionado anteriormente, não tente adquiri-lo novamente. |
IgnorarSePresente | Booleano | Falso | (Aplicável apenas 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 - 100 para indicar a prioridade relativa desta atualização de aplicativo. Valores mais baixos indicam uma prioridade relativa mais alta em relação a outros aplicativos acelerados. |
Regiões excluídas | Matriz (String) | Sem restrições | Uma matriz JSON de cadeias de caracteres para regiões onde este aplicativo NÃO 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"] impediria esse fluxo em dispositivos onde a região é Estados Unidos ou México.Nota: Este valor não pode ser usado com IncludedRegions. |
Regiões Incluídas | Matriz (String) | Sem restrições | Uma matriz JSON de cadeias de caracteres que indicam uma lista permitida de regiões onde este 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 apenas em dispositivos onde a região é Estados Unidos ou México.Nota: Este valor não pode ser usado com ExcludedRegions. |
Incluídas Edições | Matriz (número) | Sem restrições | Uma matriz JSON de números que indica uma lista permitida de edições onde este aplicativo deve ser acelerado. Cada entrada na matriz corresponde ao código Edition recuperado pelo GetProductInfo API. Exemplo: [121, 122] para incluir apenas as edições Education e EducationNNota: Este valor não pode ser usado com ExcludedEditions. |
Edições Excluídas | Matriz (número) | Sem restrições | Uma matriz JSON de números para edições onde este aplicativo NÃO deve ser acelerado. Cada entrada na matriz corresponde ao código Edition recuperado pelo GetProductInfo API. Exemplo: [121, 122] para excluir as edições Education e EducationN.Nota: Este valor não pode ser usado com IncludedEditions. |
Amostras
Aquisição de stub em loja, apenas nos EUA e no México, a realizar durante a configuração inicial (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 aplicativos baseada em URL em dispositivos amd64, excluindo as edições Education e EducationN, apenas no Windows 11 23H2 (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 comentários acionáveis sobre os metadados de registro, os OEMs precisam usar os scripts AppOrchestration PowerShell do seguinte local:
Os scripts executam a validação básica e realizam o registro para o local apropriado no dispositivo. Em qualquer falha, os scripts lançam uma exceção com os detalhes específicos da falha.
Para usar os scripts:
Transfira os scripts para o seu dispositivo. Na página de repositório do GitHub, você pode optar por fazer o download como um arquivo ZIP e extrair para o seu dispositivo
Em uma janela do PowerShell, execute "Import-Module <PathToScripts>\scripts\AppOrchestration.psd1"
Observação
Esses scripts exigem que o usuário tenha privilégios administrativos no dispositivo e devem ser executados a partir de um console elevado.
Há quatro cmdlets principais usados para o fluxo de registo:
Test-UpdaterRegistration <> CaminhoParaArquivoDeRegistro
Finalidade: Validar o conteúdo de um ficheiro de registo proposto (sem realizar o registo). Permite que o fabricante de equipamento original realize iterações sobre a carga útil de ficheiro de registo sem afetar o dispositivo.
Add-UpdaterRegistration <> PathToRegistrationFile
Objetivo: Validar e preparar o conteúdo de um ficheiro de registo para o local apropriado, para a integração no fluxo acelerado da aplicação.
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: Remover qualquer registo que corresponda aos valores OEMName e UpdaterName.
Execução
A estrutura do Universal Orchestrator invoca automaticamente cada um dos aplicativos registrados, em sequência com base na prioridade relativa, nos primeiros 30 minutos após um usuário chegar à área de trabalho em um novo dispositivo (ou durante a OOBE do usuário, se AllowedInOobe estiver definido como true). Cada aplicação registrada adicionada pelo processo de registo OEM será executada até que:
Foi instalado com sucesso
Ele supera o número máximo de falhas especificado em MaxRetryCount. Após cada falha, o aplicativo entrará em um período de resfriamento de 30 minutos antes de ser tentado novamente.
A estrutura do Universal Orchestrator 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 limitada.
O dispositivo está com bateria e a economia de bateria está ativada.
O dispositivo está configurado com uma política de Tráfego de Rede Restrito do 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 Universal Orchestrator mantém os registros em vigor até que a configuração do dispositivo permita tentativas aceleradas de prosseguir.
Se o registro do aplicativo contiver valores opcionais que bloqueiem o fluxo acelerado (por exemplo, devido ao tipo de edição), a estrutura do Universal Orchestrator considerará essa solicitação de registro atendida e não tentará novamente, mesmo que essas condições possam mudar 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 podem causar um impacto negativo no desempenho da experiência do usuário em um novo dispositivo.