Compartilhar via


API do UpdateOrchestrator

O UpdateOrchestrator agenda suas atualizações automáticas de software levando em conta o impacto sobre o usuário. Esta API permite que você especifique ações, como download ou instalação, juntamente com seus requisitos, a fim de executar atualizações em um momento ideal que minimize o impacto na presença do usuário. Esses recursos beneficiam especialmente os sistemas de baixo desempenho com recursos de computação limitados ou mais lentos.

O Windows 20H1 inclui uma solução de primeira geração para casos de uso de atualização automática de software que foram adotados por atualizações do SO e atualizações de aplicativos da Loja e expõe uma versão inicial de "Acesso Limitado" dessa API para um conjunto selecionado de atualizadores de aplicativos de "modo de usuário", conforme descrito abaixo.

Recursos

  • Registra dinamicamente os atualizadores de software

  • Invoca os atualizadores de software registrados em momentos ideais, como durante a ausência do usuário, para atualizar os "aplicativos de modo do usuário".

  • Inclui a capacidade de "manter-se acordado" quando estiver conectado à energia elétrica para reduzir ainda mais o impacto quando o usuário estiver ausente.

Público-alvo do desenvolvedor

Importante

A API UpdateOrchestrator faz parte de um recurso de acesso limitado (consulte a classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o Formulário de Solicitação de Token de Acesso LAF.

Use a API UpdateOrchestrator se já tiver atualizadores de software em segundo plano para aplicativos Win32 do "modo de usuário", como o atualizador da Adobe para o Acrobat Reader ou o Steam da Valve. Essa interface não é necessária para aplicativos UWP/Store, pois a Microsoft Store já aproveita essa funcionalidade para atualizações de software.

Para oferecer a melhor experiência ao cliente, esta versão inicial da API está limitada a um conjunto selecionado de atualizadores registrados que atendem aos seguintes critérios:

  • Atualizações apenas para aplicativos no 'modo de usuário'.
  • Não envolve BIOS/Firmware/Dispositivo ou Drivers de Software
    • A atualização do BIOS, do firmware ou dos drivers de dispositivos/software que não passaram por um critério de qualidade comum representa um risco substancial, principalmente quando um usuário não está presente.
  • A participação no uso dessa API implica a possibilidade de atestar todo o conteúdo baixado e instalado por seus atualizadores de software em segundo plano nos sistemas dos usuários por meio de auditorias.

A versão inicial da API do UpdateOrchestrator como recurso de acesso limitado é apenas para atualizadores que atendem aos critérios acima neste momento.

Nosso objetivo é aprimorar a funcionalidade dessa API e reduzir o impacto de vários atualizadores automáticos de software no Windows. Agradecemos sua contribuição por meio desta breve pesquisa para nos ajudar a entender como a API UpdateOrchestrator pode atender melhor às suas necessidades como desenvolvedor.

Diligenciando aplicativos OEM via estrutura do Universal Orchestrator

Importante

O Universal Orchestrator fornece funcionalidade aos OEMs para registrar um aplicativo durante o processo de criação de imagens para executar uma instalação/atualização acelerada única. Essa instalação acontece dentro de 30 minutos após um usuário fazer login em um novo dispositivo. Lembre-se de que a aceleração de um aplicativo pode ter um impacto negativo no desempenho da experiência inicial para novos dispositivos. Essa funcionalidade só está disponível em compilações de cliente selecionadas e em regiões selecionadas.

Requisitos

Para se conectar à estrutura de aplicativo acelerado, o aplicativo deve atender aos seguintes requisitos:

  • Deve ser um aplicativo empacotado da Loja no formato MSIX
  • Ele deve ter um nome de família de produto (PFN) válido

Registro

Os OEMs podem registrar um aplicativo a ser acelerado escrevendo uma nova chave na pasta de preparo existente para aplicativos acelerados:

HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_OOBE

Cada registro fornecido pelo OEM está na forma de uma Subchave (com um nome exclusivo que será usado para identificar esse aplicativo acelerado) e um conjunto de valores do Registro para indicar opções específicas para esse aplicativo. O conteúdo de cada chave está no seguinte formato:

Nome da chave: Nome exclusivo para este aplicativo acelerado

Na Subchave para o registro do aplicativo expedite, os OEMs precisam criar dois valores:

  • Nome do valor: updaterPriority
    Descrição: Número para indicar a prioridade relativa desta atualização de aplicativo
    Tipo de valor: REG_DWORD
    Dados: Um valor numérico de 1 - 100. Valores mais baixos indicam uma prioridade relativa mais alta em relação a outros aplicativos acelerados.

  • Nome do valor: expeditedPayload
    Descrição: blob JSON com opções para este atualizador específico
    Tipo de valor: REG_SZ
    Dados: uma cadeia de caracteres que representa um blob JSON válido com opções para esse atualizador específico

Visão geral do conteúdo do blob JSON:

Estado Tipo Nome da chave Descrição
Obrigatório String PFN O Nome da Família do Pacote do aplicativo (por exemplo, Microsoft.WindowsStore_8wekyb3d8bbwe)
Obrigatório String Ponto de extremidade Um URI de cadeia de caracteres apontando para um local que hospeda um pacote MSIX. Deve ser um URI SSL que comece com 'https'.
Opcional Boolean PermitidoInOobe Se esse aplicativo acelerado deve ser executado durante a OOBE do usuário
Opcional Número MaxRetryCount O número de vezes que esse atualizador tem permissão para tentar novamente após a falha. O padrão é UTF-1. O máximo é 5.
Opcional Número TimeoutDurationInMinutes A duração em minutos para aguardar que este atualizador conclua o trabalho. O padrão é 15. Máximo é 30
Opcional Matriz (String) Regiões excluídas 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 2 letras da região desejada. Por exemplo, ["US"] impediria esse fluxo em dispositivos onde a região é Estados Unidos.

Exemplo de carga JSON útil:

{  
    "PFN": "PFNName",  
    "Endpoint": "SSL_URI",  
    "AllowedInOobe": false,  
    "MaxRetryCount": 3,  
    "TimeoutDurationInMinutes": 15,  
    "ExcludedRegions": ["CN", "FR"]   
}

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 acessar a área de trabalho em um novo dispositivo (ou durante a OOBE do usuário, se AllowedInOobe estiver definido como true). Cada pedido registrado adicionado pelo processo de registro OEM será tentado até que:

  • Ele foi instalado com sucesso
  • Ele ultrapassa a quantidade máxima de falhas especificadas 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:

  • 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 diretiva de Tráfego de Rede Restrito do Windows Update
  • O dispositivo está configurado com uma diretiva CTA que não está definida para AutoAprovação

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

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.