Gerenciamento de aplicativos corporativos

Este artigo aborda uma das principais funcionalidades das capacidades do Windows Mobile Gerenciamento de Dispositivos (MDM): a capacidade de gerir o ciclo de vida das aplicações em todos os dispositivos Windows. Isto inclui aplicações da Loja e não da Loja, que podem ser geridas nativamente através da MDM.

Ao utilizar a MDM do Windows para gerir ciclos de vida de aplicações, os administradores podem implementar e gerir atualizações, remover aplicações desatualizadas ou não utilizadas e garantir que todos os dispositivos têm as aplicações necessárias instaladas para satisfazer as necessidades da organização. Esta funcionalidade simplifica o processo de gestão de aplicações e poupa tempo e esforço para os profissionais de TI.

Objetivos de gestão de aplicações

O Windows oferece a capacidade de os servidores de gestão:

  • Implementar aplicações e licenças offline da Loja
  • Implementar aplicações de linha de negócio (LOB) (aplicações que não são da Loja)
  • Inventariar todas as aplicações para um utilizador (aplicações da Loja e não da Loja)
  • Inventariar todas as aplicações para um dispositivo (aplicações da Loja e não da Loja)
  • Desinstalar todas as aplicações para um utilizador (aplicações da Loja e não da Loja)
  • Aprovisionar aplicações para que sejam instaladas para todos os utilizadores de um dispositivo com edições de ambiente de trabalho do Windows (Home, Pro, Enterprise e Education)
  • Remover a aplicação aprovisionada no dispositivo com edições de ambiente de trabalho do Windows

Aplicações de inventário

O Windows permite-lhe inventariar todas as aplicações implementadas num utilizador e inventariar todas as aplicações para todos os utilizadores de um dispositivo Windows. Os inventários do fornecedor de serviços de configuração (CSP) EnterpriseModernAppManagement empacotam aplicações e não incluem aplicações Win32 tradicionais instaladas através de MSI ou executáveis. Quando as aplicações são inventariadas, são separadas com base nas seguintes classificações de aplicações:

  • Loja: aplicações que foram adquiridas na Microsoft Store.
  • nonStore: aplicações que não foram adquiridas na Microsoft Store.
  • Sistema: aplicações que fazem parte do sistema operativo e não podem ser desinstaladas. Esta classificação é só de leitura e só pode ser inventariada.

Cada aplicação é identificada por um nome de família de pacotes e um ou mais nomes completos de pacotes e as aplicações são agrupadas com base na respetiva origem. O CSP EnterpriseModernAppManagement apresenta estas classificações como nós.

O inventário pode ser executado recursivamente em qualquer nível a partir do nó AppManagement através do nome completo do pacote. Também pode optar por inventariar apenas atributos específicos. O inventário é específico do nome completo do pacote e lista pacotes agrupados e de recursos, conforme aplicável no nome da família do pacote.

Para obter mais informações sobre cada nó, veja as descrições detalhadas fornecidas no CSP EnterpriseModernAppManagement.

Inventário de aplicações

Pode utilizar o CSP EnterpriseModernAppManagement para consultar todas as aplicações instaladas para um utilizador ou dispositivo. A consulta devolve todas as aplicações, mesmo que tenham sido instaladas com a MDM ou outros métodos. O inventário pode ser executado ao nível do utilizador ou do dispositivo. O inventário ao nível do dispositivo devolve informações para todos os utilizadores no dispositivo.

Fazer um inventário completo de um dispositivo pode ser intensivo em termos de recursos com base no hardware e no número de aplicações que estão instaladas. Os dados devolvidos também podem ser grandes. Poderá querer segmentar estes pedidos para reduzir o impacto nos clientes e no tráfego de rede.

  • Consulta de exemplo para todas as aplicações no dispositivo.

    <!-- Get all apps under AppManagement -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    
  • Consulta de exemplo para uma aplicação específica para um utilizador.

    <!-- Get all information of a specific app for a user -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    

Armazenar inventário de licenças

Pode utilizar o CSP EnterpriseModernAppManagement para consultar todas as licenças de aplicações instaladas para um utilizador ou dispositivo. A consulta devolve todas as licenças de aplicação, evento se tiverem sido instaladas através da MDM ou de outros métodos. O inventário pode ser executado ao nível do utilizador ou do dispositivo. O inventário ao nível do dispositivo devolve informações para todos os utilizadores no dispositivo.

Para obter descrições detalhadas de cada nó, veja EnterpriseModernAppManagement CSP.

Observação

O LicenseID no CSP é o ID de conteúdo da licença.

  • Eis um exemplo de uma consulta para todas as licenças de aplicações num dispositivo.

    <!-- Get all app licenses for the device -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    
  • Eis um exemplo de uma consulta para todas as licenças de aplicações de um utilizador.

    <!-- Get a specific app license for a user -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    

Ativar o dispositivo para instalar aplicações que não são da Loja

Existem dois tipos básicos de aplicações que pode implementar:

  • Aplicações da loja.
  • Aplicações assinadas pela Empresa.

Para implementar aplicações assinadas pela empresa, tem de ativar uma definição no dispositivo para permitir aplicações fidedignas. As aplicações podem ser assinadas por uma raiz aprovada pela Microsoft (como a Symantec), uma raiz implementada pela empresa ou aplicações autoassinadas. Esta secção abrange os passos para configurar o dispositivo para implementação de aplicações nãotore.

Desbloquear o dispositivo para aplicações que não são da Loja

Para implementar aplicações que não são da Microsoft Store, tem de configurar a política ApplicationManagement/AllowAllTrustedApps . Esta política permite a instalação de aplicações que não sejam da Loja no dispositivo se existir uma cadeia num certificado no dispositivo. A aplicação pode ser assinada com um certificado de raiz no dispositivo (como a Symantec Enterprise), um certificado de raiz pertencente à empresa ou um certificado de confiança do elemento da rede implementado no dispositivo. Para obter mais informações sobre a implementação da licença de utilizador, veja Implementar uma licença offline num utilizador.

A política AllowAllTrustedApps permite a instalação de aplicações fidedignas por um certificado no Pessoas Fidedigno no dispositivo ou um certificado de raiz na Raiz Fidedigna do dispositivo. A política não está configurada por predefinição, o que significa que apenas as aplicações da Microsoft Store podem ser instaladas. Se o servidor de gestão definir implicitamente o valor como desativado, a definição será desativada no painel de definições do dispositivo.

Veja um exemplo:

<!-- Get policy (Default)-->
<Get>
<CmdID>1</CmdID>
<Item>
   <Target>
      <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowAllTrustedApps?list=StructData</LocURI>
   </Target>
   </Item>
</Get>
<!-- Update policy -->
<Replace>
<CmdID>2</CmdID>
<Item>
   <Target>
      <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowAllTrustedApps</LocURI>
   </Target>
   <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
   </Meta>
   <Data>1</Data>
</Item>
</Replace>

Desbloquear o dispositivo para o modo de programador

O desenvolvimento de aplicações em dispositivos Windows já não requer uma licença especial. Pode ativar a depuração e implementação de aplicações não empacotadas com a política ApplicationManagement/AllowDeveloperUnlock no CSP de Políticas.

A política AllowDeveloperUnlock ativa o modo de desenvolvimento no dispositivo. O AllowDeveloperUnlock não está configurado por predefinição, o que significa que apenas as aplicações da Microsoft Store podem ser instaladas. Se o servidor de gestão definir explicitamente o valor como desativado, a definição será desativada no painel de definições do dispositivo.

A implementação de aplicações em dispositivos Windows requer que exista uma cadeia para um certificado no dispositivo. A aplicação pode ser assinada com um certificado de raiz no dispositivo (como a Symantec Enterprise), um certificado de raiz pertencente à empresa ou um certificado de confiança do elemento da rede implementado no dispositivo.

Veja um exemplo.

<!-- Get policy (Default)-->
<Get>
  <CmdID>1</CmdID>
  <Item>
    <Target>
      <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowDeveloperUnlock?list=StructData</LocURI>
    </Target>
  </Item>
</Get>
<!-- Update policy -->
<Replace>
  <CmdID>2</CmdID>
  <Item>
    <Target>
      <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowDeveloperUnlock</LocURI>
    </Target>
    <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
    </Meta>
    <Data>1</Data>
  </Item>
</Replace>

Instale aplicativos

Pode instalar aplicações para um utilizador específico ou para todos os utilizadores de um dispositivo. As aplicações são instaladas diretamente a partir da Microsoft Store. Em alternativa, são instalados a partir de uma localização de anfitrião, como um disco local, caminho UNC ou localização HTTPS. Utilize o nó AppInstallation do CSP EnterpriseModernAppManagement para instalar aplicações.

Implementar aplicações no utilizador a partir da Loja

Para implementar uma aplicação num utilizador diretamente a partir da Microsoft Store, o servidor de gestão executa um comando Adicionar e Exec no nó AppInstallation do CSP EnterpriseModernAppManagement. Esta funcionalidade só é suportada no contexto de utilizador e não é suportada no contexto do dispositivo.

Se comprou uma aplicação na Loja para Empresas e a aplicação for especificada para uma licença online, a aplicação e a licença têm de ser adquiridas diretamente na Microsoft Store.

Observação

As Microsoft Store para Empresas e Microsoft Store para Educação foram descontinuadas. Para obter mais informações, consulte Microsoft Store para Empresas e Educação descontinuam a 31 de março de 2023.

Eis os requisitos para este cenário:

  • A aplicação é atribuída a um utilizador Microsoft Entra identidade na Loja para Empresas. Pode atribuir diretamente na Loja para Empresas ou através de um servidor de gestão.
  • O dispositivo necessita de conectividade à Microsoft Store.
  • Os serviços da Microsoft Store têm de estar ativados no dispositivo. A IU da Microsoft Store pode ser desativada pelo administrador da empresa.
  • O utilizador tem de ter sessão iniciada com a respetiva identidade Microsoft Entra.

Veja um exemplo:

<Exec>
  <CmdID>1</CmdID>
  <Item>
    <Target>
      <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/StoreInstall</LocURI>
    </Target>
    <Meta>
      <Format xmlns="syncml:metinf">xml</Format>
    </Meta>
    <Data>
      <Application id="{ProductID}" flags="0" skuid=" " />
    </Data>
  </Item>
</Exec>

Eis as alterações da versão anterior:

  1. A {CatID} referência deve ser atualizada para {ProductID}. Este valor é adquirido como parte da ferramenta de gestão da Loja para Empresas.
  2. O valor dos sinalizadores pode ser 0 ou 1.
    • 0: A ferramenta de gestão chama de volta para a sincronização da Loja para Empresas para atribuir um lugar a um utilizador de uma aplicação.
    • 1: A ferramenta de gestão não liga novamente para a sincronização da Loja para Empresas para atribuir a um utilizador uma sede de uma aplicação. O CSP reclama um lugar se estiver disponível.
  3. O skuid é um novo parâmetro que é necessário. Este valor é adquirido como parte da sincronização de ferramentas de gestão da Loja para Empresas.

Implementar uma licença offline num utilizador

Se comprou uma aplicação na Loja para Empresas, a licença da aplicação tem de ser implementada no dispositivo. A licença da aplicação só precisa de ser implementada como parte da instalação inicial da aplicação. Durante uma atualização, apenas a aplicação é implementada para o utilizador.

No SyncML, tem de especificar as seguintes informações no Exec comando:

  • ID da Licença – este ID é especificado no LocURI. O ID de Licença da licença offline é referido como o "ID de Conteúdo" no ficheiro de licença. Pode obter estas informações a partir da transferência da licença codificada base 64 a partir da Loja para Empresas.
  • Conteúdo da Licença – este conteúdo é especificado na secção de dados. O Conteúdo da Licença é o blob codificado base 64 da licença.

Eis um exemplo de uma instalação de licença offline.

<Exec>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{LicenseID}/AddLicense</LocURI>
      </Target>
      <Meta>
         <Format xmlns="syncml:metinf">xml</Format>
      </Meta>
      <Data><License Content="{LicenseBlob}"></Data>
   </Item>
</Exec>

Implementar aplicações num utilizador a partir de uma localização alojada

Se comprou uma aplicação na Loja para Empresas e a aplicação for especificada para uma licença offline ou se a aplicação não for uma aplicação da Loja, a aplicação tem de ser implementada a partir de uma localização alojada.

Eis os requisitos para este cenário:

  • A localização da aplicação pode ser um sistema de ficheiros local (C:\StagedApps\app1.appx), um caminho UNC (\\server\share\app1.apx) ou uma localização HTTPS (https://contoso.com/app1.appx).
  • O utilizador tem de ter permissão para aceder à localização do conteúdo. Para HTTPs, pode utilizar a autenticação do servidor ou a autenticação de certificados com um certificado associado à inscrição. As localizações HTTP são suportadas, mas não são recomendadas devido à falta de requisitos de autenticação.
  • O dispositivo não precisa de ter conectividade à Microsoft Store, aos serviços da loja ou de ter a IU da Microsoft Store ativada.
  • O utilizador tem de ter sessão iniciada, mas não é necessária associação com Microsoft Entra identidade.

Observação

Tem de desbloquear o dispositivo para implementar aplicações que não são da Loja ou tem de implementar a licença de aplicação antes de implementar as aplicações offline. Para obter detalhes, veja Implementar uma licença offline num utilizador.

O comando Adicionar para o nome da família do pacote é necessário para garantir a remoção adequada da aplicação na anulação da inscrição.

  • Eis um exemplo de uma instalação de aplicação de linha de negócio.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx -->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data><Application PackageUri="\\server\share\HelloWorld10.appx" /></Data>
       </Item>
    </Exec>
    
  • Eis um exemplo de uma instalação de aplicação com dependências.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx with deployment options and framework dependencies-->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data>
             <Application PackageUri="\\server\share\HelloWorld10.appx" DeploymentOptions="0" >
                <Dependencies>
                          <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx" />
                </Dependencies>
            </Application>
          </Data>
       </Item>
    </Exec>
    
  • Eis um exemplo de uma instalação de aplicação com dependências e pacotes opcionais.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx with deployment options and framework dependencies-->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data>
             <Application PackageUri="\\server\share\HelloWorld10.appx" DeploymentOptions="0" >
                <Dependencies>
                    <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx" />
                </Dependencies>
                <OptionalPackages>
                    <Package PackageUri="\\server\share\OptionalPackage1.appx"
                             PackageFamilyName="/{PackageFamilyName}" />
                    <Package PackageUri="\\server2\share\OptionalPackage2.appx"
                             PackageFamilyName="/{PackageFamilyName}" />
                </OptionalPackages>
            </Application>
          </Data>
       </Item>
    </Exec>
    

Aprovisionar aplicações para todos os utilizadores de um dispositivo

O aprovisionamento permite-lhe preparar a aplicação para o dispositivo e todos os utilizadores do dispositivo podem ter a aplicação registada no próximo início de sessão. Esta funcionalidade só é suportada para aplicações compradas na Loja para Empresas e a aplicação é especificada para uma licença offline ou a aplicação é uma aplicação que não é da Loja. A aplicação tem de ser oferecida a partir de uma localização alojada. A aplicação é instalada como um sistema local. Para instalar numa partilha de ficheiros local, o "sistema local" do dispositivo tem de ter acesso à partilha.

Eis os requisitos para este cenário:

  • A localização da aplicação pode ser o sistema de ficheiros local (C:\StagedApps\app1.appx), um caminho UNC (\\server\share\app1.apx) ou uma localização HTTPS (https://contoso.com/app1.appx\)
  • O utilizador tem de ter permissão para aceder à localização do conteúdo. Para HTTPs, pode utilizar a autenticação do servidor ou a autenticação de certificados com um certificado associado à inscrição. As localizações HTTP são suportadas, mas não são recomendadas devido à falta de requisitos de autenticação.
  • O dispositivo não precisa de ter conectividade à Microsoft Store nem de armazenar serviços ativados.
  • O dispositivo não precisa de qualquer identidade Microsoft Entra ou associação a um domínio.
  • Para aplicações que não sejam da Loja, o dispositivo tem de estar desbloqueado.
  • Para aplicações offline da Loja, as licenças necessárias têm de ser implementadas antes de implementar as aplicações.

Para aprovisionar a aplicação para todos os utilizadores de um dispositivo a partir de uma localização alojada, o servidor de gestão executa um comando Adicionar e Exec no nó AppInstallation no contexto do dispositivo. O comando Adicionar para o nome da família do pacote é necessário para garantir a remoção adequada da aplicação na anulação da inscrição.

Observação

Quando remover a aplicação aprovisionada, esta não a removerá dos utilizadores que já instalaram a aplicação.

  • Eis um exemplo de instalação da aplicação:

    <!-- Add PackageFamilyName -->
    <Add>
        <CmdID>0</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
           </Target>
        </Item>
    </Add>
    <!-- Provision appx to device -->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
           </Target>
           <Meta>
              <Format xmlns="syncml:metinf">xml</Format>
           </Meta>
           <Data><Application PackageUri="\\server\share\HelloWorld10.appx" /></Data>
        </Item>
    </Exec>
    

    O comando HostedInstall Exec contém um nó de Dados que requer um XML incorporado. Eis os requisitos para o XML de dados:

    • O nó da aplicação tem um parâmetro necessário, PackageURI, que pode ser uma localização de ficheiro local, UNC ou LOCALIZAÇÃO HTTPS.
    • As dependências podem ser especificadas, se necessário, para serem instaladas com o pacote. Isso é opcional.

    O parâmetro DeploymentOptions só está disponível no contexto de utilizador.

  • Eis um exemplo de instalação de aplicações com dependências.

    <!-- Add PackageFamilyName -->
    <Add>
        <CmdID>0</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
           </Target>
        </Item>
    </Add>
    <!-- Provision appx with framework dependencies-->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
           </Target>
           <Meta>
              <Format xmlns="syncml:metinf">xml</Format>
           </Meta>
           <Data>
              <Application PackageUri="\\server\share\HelloWorld10.appx" />
                 <Dependencies>
                          <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx"/>
                 </Dependencies>
              </Application>
           </Data>
        </Item>
    </Exec>
    

Obter status de instalações de aplicações

Quando uma instalação de aplicação é concluída, é enviada uma notificação do Windows. Também pode consultar a status de utilizar o nó AppInstallation. Eis a lista de informações que pode obter na consulta:

  • Status - indica o status da instalação da aplicação.
    • NOT_INSTALLED (0) – o nó foi adicionado, mas a execução não foi concluída.
    • INSTALAÇÃO (1) – A execução foi iniciada, mas a implementação ainda não foi concluída. Se a implementação for concluída independentemente do êxito, este valor será atualizado.
    • FALHA (2) – Falha na instalação. Os detalhes do erro podem ser encontrados em LastError e LastErrorDescription.
    • INSTALADO (3) – assim que uma instalação for concluída com êxito, este nó é limpo. Se a ação de limpo-up ainda não tiver sido concluída, este estado poderá aparecer brevemente.
  • LastError – o último erro comunicado pelo servidor de implementação de aplicações.
  • LastErrorDescription – descreve o último erro comunicado pelo servidor de implementação de aplicações.
  • Estado – um número inteiro que indica o progresso da instalação da aplicação. Nos casos de uma localização HTTPS, este status mostra o progresso estimado da transferência. O estado não está disponível para aprovisionamento e só é utilizado para instalações baseadas no utilizador. Para o aprovisionamento, o valor é sempre 0.

Quando uma aplicação é instalada com êxito, o nó é limpo e já não está presente. A status da aplicação pode ser reportada no nó AppManagement.

  • Eis um exemplo de uma consulta para uma instalação de aplicação específica.

    <!-- Get all app status under AppInstallation for a specific app-->
    <Get>
        <CmdID>2</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}?list=StructData</LocURI>
           </Target>
        </Item>
    </Get>
    
  • Eis um exemplo de uma consulta para todas as instalações de aplicações.

    <!-- Get all app status under AppInstallation-->
    <Get>
        <CmdID>2</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation?list=StructData</LocURI>
           </Target>
        </Item>
    </Get>
    

Alerta para conclusão da instalação

A conclusão das instalações de aplicações pode demorar algum tempo. Então, são feitos de forma assíncrona. Quando o comando Exec estiver concluído, o cliente envia uma notificação para o servidor de gestão com um status, seja uma falha ou um êxito.

Eis um exemplo de um alerta.

<Alert>
    <CmdID>4</CmdID>
    <Data>1226</Data>
        <Item>
            <Source>
                <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
            </Source>
            <Meta>
                <Type xmlns="syncml:metinf">Reversed-Domain-Name:com.microsoft.mdm.EnterpriseHostedAppInstall.result</Type>
                <Format xmlns="syncml:metinf">int</Format>
            </Meta>
            <Data>0</Data>
        </Item>
</Alert>

Para a instalação baseada no utilizador, utilize o caminho e para o ./User aprovisionamento de aplicações. Utilize o ./Device caminho.

O valor do campo Dados de 0 (zero) indica êxito. Caso contrário, trata-se de um código de erro. Se ocorrer uma falha, pode obter mais detalhes a partir do nó AppInstallation.

Observação

Neste momento, o alerta para a instalação da aplicação Store não está disponível.

Desinstalar as suas aplicações

Pode desinstalar aplicações de utilizadores de dispositivos Windows. Para desinstalar uma aplicação, elimine-a do nó AppManagement do CSP. No nó AppManagement, os pacotes são organizados com base na respetiva origem, de acordo com os seguintes nós:

  • AppStore – estas aplicações destinam-se à Microsoft Store. As aplicações podem ser instaladas diretamente a partir da loja ou entregues na empresa a partir da Loja para Empresas.
  • nonStore – estas aplicações que não foram adquiridas na Microsoft Store.
  • Sistema – estas aplicações fazem parte do SO. Não pode desinstalar estas aplicações.

Para desinstalar uma aplicação, elimine-a no nó de origem, no nome da família do pacote e no nome completo do pacote. Para desinstalar um XAP, utilize o ID do produto em vez do nome da família do pacote e do nome completo do pacote.

Eis um exemplo para desinstalar todas as versões de uma aplicação para um utilizador.

<!-- Uninstall App for a Package Family-->
<Delete>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}</LocURI>
      </Target>
   </Item>
</Delete>

-Eis um exemplo para desinstalar uma versão específica da aplicação para um utilizador.

<!-- Uninstall App for a specific package full name-->
<Delete>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/{PackageFullName}</LocURI>
      </Target>
   </Item>
</Delete>

Aplicações aprovisionadas removidas de um dispositivo

Pode remover aplicações aprovisionadas de um dispositivo para uma versão específica ou para todas as versões de uma família de pacotes. Quando uma aplicação aprovisionada é removida, não está disponível para futuros utilizadores para o dispositivo. Os utilizadores com sessão iniciada que tenham a aplicação registada continuam a ter acesso à aplicação. Se quiser remover a aplicação para esses utilizadores, tem de desinstalar explicitamente a aplicação para esses utilizadores.

Observação

Só pode remover uma aplicação que tenha um valor de inventário IsProvisioned = 1.

A remoção da aplicação aprovisionada ocorre no contexto do dispositivo.

  • Eis um exemplo para remover uma aplicação aprovisionada de um dispositivo.

    <!- Remove Provisioned App for a Package Family-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}</LocURI>
           </Target>
        </Item>
    </Delete>
    
  • Eis um exemplo para remover uma versão específica de uma aplicação aprovisionada de um dispositivo:

    <!-- Remove Provisioned App for a specific package full name-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/{PackageFullName}</LocURI>
           </Target>
        </Item>
    </Delete>
    

Remover uma licença de aplicação da loja

Pode remover licenças de aplicações de um dispositivo por aplicação com base no ID de conteúdo.

  • Eis um exemplo para remover uma licença de aplicação para um utilizador.

    <!-- Remove App License for a User-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}</LocURI>
           </Target>
        </Item>
    </Delete>
    
  • Eis um exemplo para remover uma licença de aplicação para um pacote aprovisionado (contexto do dispositivo).

    <!-- Remove App License for a provisioned package (device) -->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}</LocURI>
           </Target>
        </Item>
    </Delete>
    

Alerta para desinstalação da aplicação

A desinstalação de uma aplicação pode demorar algum tempo. Assim, a desinstalação é executada de forma assíncrona. Quando o comando Exec estiver concluído, o cliente envia uma notificação para o servidor de gestão com um status, seja uma falha ou um êxito.

Para a desinstalação baseada no utilizador, utilize ./User no LocURI e, para aprovisionamento, utilize ./Device no LocURI.

Veja um exemplo. Existe apenas uma desinstalação para aplicações alojadas e da loja.

<Alert>
    <Data>1226</Data>
    <Item>
        <Source>
            <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/{PackageFamilyName}</LocURI>
        </Source>
        <Meta>
            <Type xmlns="syncml:metinf">Reversed-Domain-Name:com.microsoft.mdm.EnterpriseAppUninstall.result</Type>
            <Format xmlns="syncml:metinf">int</Format>
        </Meta>
        <Data>0</Data>
    </Item>
</Alert>

Atualizar seus apps

As aplicações instaladas num dispositivo podem ser atualizadas com o servidor de gestão. As aplicações podem ser atualizadas diretamente a partir da loja ou instaladas a partir de uma localização alojada.

Atualizar aplicações diretamente a partir da loja

Para atualizar uma aplicação a partir da Microsoft Store, o dispositivo necessita de contacto com os serviços da loja.

  • Eis um exemplo de uma análise de atualização.

    <!- Initiate a update scan for a user-->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/UpdateScan</LocURI>
           </Target>
        </Item>
    </Exec>
    
  • Eis um exemplo de um status marcar.

    <!- Get last error related to the update scan-->
    <Get>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/LastScanError</LocURI>
           </Target>
        </Item>
    </Get>
    

Atualizar aplicações a partir de uma localização alojada

Atualizar uma aplicação existente segue o mesmo processo que uma instalação inicial. Para obter mais informações, veja Implementar aplicações num utilizador a partir de uma localização alojada.

Atualizar aplicações aprovisionadas

Uma aplicação aprovisionada é atualizada automaticamente quando uma atualização de aplicação é enviada ao utilizador. Também pode atualizar uma aplicação aprovisionada com o mesmo processo que um aprovisionamento inicial. Para obter mais informações sobre o aprovisionamento inicial, veja Aprovisionar aplicações para todos os utilizadores de um dispositivo.

Impedir que a aplicação atualize automaticamente

Pode impedir que aplicações específicas sejam atualizadas automaticamente. Esta funcionalidade permite-lhe ativar as atualizações automáticas para aplicações, com aplicações específicas excluídas, conforme definido pelo administrador de TI.

Desativar atualizações aplica-se apenas a atualizações da Microsoft Store ao nível do dispositivo. Esta funcionalidade não está disponível ao nível do utilizador. Ainda pode atualizar uma aplicação se os pacotes offline forem emitidos a partir da localização de instalação alojada.

Veja um exemplo.

<!- Prevent app from being automatically updated-->
<Replace>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/DoNotUpdate</LocURI>
         </Target>
      <Meta>
         <Format xmlns="syncml:metinf">int</Format>
         <Type xmlns="syncml:metinf">text/plain</Type>
      </Meta>
      <Data>1</Data></Item>
</Replace>

Mais cenários de gestão de aplicações

As seguintes subsecções fornecem informações sobre mais configurações de definições.

Ativar dados de aplicações de utilizadores partilhados

A aplicação Universal do Windows pode partilhar dados de aplicações entre os utilizadores do dispositivo. A capacidade de partilhar dados pode ser definida ao nível da família de pacotes ou por dispositivo.

Observação

Isto só é aplicável a dispositivos multiutilizador.

A política ApplicationManagement/AllowSharedUserAppData permite ou desativa pacotes de aplicações para partilhar dados entre pacotes de aplicações quando existem vários utilizadores. Se ativar esta política, as aplicações podem partilhar dados entre pacotes na respetiva família de pacotes. Os dados podem ser partilhados através da pasta ShareLocal para essa família de pacotes e o computador local. Esta pasta está disponível através da API Windows.Storage.

Se desativar esta política, as aplicações não podem partilhar dados de aplicações de utilizador entre vários utilizadores. No entanto, os dados partilhados pré-escritos persistem. Para limpo dados partilhados pré-escritos, utilize DISM (/Get-ProvisionedAppxPackage para detetar se existem dados partilhados e /Remove-SharedAppxData removê-los).

Os valores válidos são 0 (desativado, valor predefinido) e 1 (ativado).

Veja um exemplo.

<!-- Get policy (Default)-->
<Get>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowSharedUserAppData?list=StructData</LocURI>
      </Target>
   </Item>
</Get>
<!-- Update policy -->
<Replace>
   <CmdID>2</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowSharedUserAppData</LocURI>
      </Target>
   <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
   </Meta>
   <Data>1</Data>
   </Item>
</Replace>