Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo discute um dos principais recursos do MDM (Gerenciamento de Dispositivos Móveis) do Windows: a capacidade de gerenciar o ciclo de vida de aplicativos em todos os dispositivos Windows. Isso inclui aplicativos da Store e que não são da Store, que podem ser gerenciados nativamente por meio do MDM.
Usando o MDM do Windows para gerenciar ciclos de vida de aplicativos, os administradores podem implantar e gerenciar atualizações, remover aplicativos desatualizados ou não utilizados e garantir que todos os dispositivos tenham os aplicativos necessários instalados para atender às necessidades da organização. Esse recurso simplifica o processo de gerenciamento de aplicativos e economiza tempo e esforço para profissionais de TI.
Metas do gerenciamento de aplicativos
O Windows oferece aos servidores de gerenciamento a capacidade de:
- Implantar aplicativos e licenças da loja offline
- Implantar aplicativos de linha de negócios (LOB) (aplicativos que não são da Store)
- Inventariar todos os aplicativos para um usuário (aplicativos da Store e não da Store)
- Inventariar todos os aplicativos para um dispositivo (aplicativos da Store e não da Store)
- Desinstalar todos os aplicativos para um usuário (aplicativos da Store e não da Store)
- Provisionar aplicativos para que sejam instalados para todos os usuários de um dispositivo que executa as edições da área de trabalho do Windows (Home, Pro, Enterprise e Education)
- Remova o aplicativo provisionado no dispositivo que executa as edições da área de trabalho do Windows
Aplicativos de inventário
O Windows permite inventariar todos os aplicativos implantados para um usuário e inventariar todos os aplicativos para todos os usuários de um dispositivo Windows. O CSP (provedor de serviços de configuração) EnterpriseModernAppManagement inventária aplicativos empacotados e não inclui aplicativos Win32 tradicionais instalados por meio de MSI ou executáveis. Quando os aplicativos são inventariados, eles são separados com base nas seguintes classificações de aplicativo:
- Loja: aplicativos que foram adquiridos da Microsoft Store.
- nonStore: aplicativos que não foram adquiridos da Microsoft Store.
- Sistema: aplicativos que fazem parte do sistema operacional e não podem ser desinstalados. Essa classificação é somente leitura e só pode ser inventariada.
Cada aplicativo é identificado por um nome de família de pacotes e um ou mais nomes completos de pacotes, e os aplicativos são agrupados com base em sua origem. O CSP EnterpriseModernAppManagement exibe essas classificações como nós.
O inventário pode ser executado recursivamente em qualquer nível do nó AppManagement até o nome completo do pacote. Você também pode optar por inventariar apenas atributos específicos. O inventário é específico para o nome completo do pacote e lista pacotes agrupados e pacotes de recursos, conforme aplicável no nome da família de pacotes.
Para obter mais informações sobre cada nó, consulte as descrições detalhadas fornecidas no CSP EnterpriseModernAppManagement.
Inventário de aplicativos
Você pode usar o CSP EnterpriseModernAppManagement para consultar todos os aplicativos instalados para um usuário ou dispositivo. A consulta retorna todos os aplicativos, mesmo que eles tenham sido instalados usando o MDM ou outros métodos. O inventário pode ser executado no nível do usuário ou do dispositivo. O inventário no nível do dispositivo retorna informações para todos os usuários no dispositivo.
Fazer um inventário completo de um dispositivo pode consumir muitos recursos com base no hardware e no número de aplicativos instalados. Os dados retornados também podem ser grandes. Talvez você queira dividir essas solicitações em partes para reduzir o impacto sobre os clientes e o tráfego de rede.
Consulta de exemplo para todos os aplicativos 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>Exemplo de consulta para um aplicativo específico para um usuário.
<!-- 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>
Inventário de licenças da Store
Você pode usar o CSP EnterpriseModernAppManagement para consultar todas as licenças de aplicativo instaladas para um usuário ou dispositivo. A consulta retorna todas as licenças de aplicativo, caso tenha sido instalado via MDM ou outros métodos. O inventário pode ser executado no nível do usuário ou do dispositivo. O inventário no nível do dispositivo retorna informações para todos os usuários no dispositivo.
Para obter descrições detalhadas de cada nó, consulte CSP EnterpriseModernAppManagement.
Observação
O LicenseID no CSP é o ID de conteúdo da licença.
Aqui está um exemplo de uma consulta para todas as licenças de aplicativo em um 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>Aqui está um exemplo de uma consulta para todas as licenças de aplicativo de um usuário.
<!-- 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>
Habilitar o dispositivo para instalar aplicativos que não são da Store
Existem dois tipos básicos de aplicativos que você pode implantar:
- Aplicativos da Store.
- Aplicativos assinados pela empresa.
Para implantar aplicativos assinados pela empresa, você deve habilitar uma configuração no dispositivo para permitir aplicativos confiáveis. Os aplicativos podem ser assinados por uma raiz aprovada pela Microsoft (como a Symantec), uma raiz implantada pela empresa ou aplicativos autoassinados. Esta seção aborda as etapas para configurar o dispositivo para implantação de aplicativos que não são da Store.
Desbloquear o dispositivo para aplicativos que não são da Store
Para implantar aplicativos que não são da Microsoft Store, você deve configurar a política ApplicationManagement/AllowAllTrustedApps . Essa política permite a instalação de aplicativos que não são da Store no dispositivo se houver uma cadeia para um certificado no dispositivo. O aplicativo pode ser assinado com um certificado raiz no dispositivo (como o Symantec Enterprise), um certificado raiz de propriedade da empresa ou um certificado de confiança de par implantado no dispositivo. Para obter mais informações sobre como implantar uma licença de usuário, consulte Implantar uma licença offline para um usuário.
A política AllowAllTrustedApps permite a instalação de aplicativos que são confiáveis para um certificado em Trusted People no dispositivo ou um certificado raiz em uma Raiz Confiável do dispositivo. A política não é configurada por padrão, o que significa que somente aplicativos da Microsoft Store podem ser instalados. Se o servidor de gerenciamento definir implicitamente o valor como desativado, a configuração será desabilitada no painel de configuraçõ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 desenvolvedor
O desenvolvimento de aplicativos em dispositivos Windows não requer mais uma licença especial. Você pode habilitar a depuração e a implantação de aplicativos não empacotados usando a política ApplicationManagement/AllowDeveloperUnlock no CSP da Política.
A política AllowDeveloperUnlock habilita o modo de desenvolvimento no dispositivo. O AllowDeveloperUnlock não está configurado por padrão, o que significa que somente aplicativos da Microsoft Store podem ser instalados. Se o servidor de gerenciamento definir explicitamente o valor como desativado, a configuração será desabilitada no painel de configurações do dispositivo.
A implantação de aplicativos em dispositivos Windows requer que haja uma cadeia para um certificado no dispositivo. O aplicativo pode ser assinado com um certificado raiz no dispositivo (como o Symantec Enterprise), um certificado raiz de propriedade da empresa ou um certificado de confiança de par implantado 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
Você pode instalar aplicativos para um usuário específico ou para todos os usuários de um dispositivo. Os aplicativos são instalados diretamente da Microsoft Store. Ou são instalados de um local host, como um disco local, caminho UNC ou local HTTPS. Use o nó AppInstallation do CSP EnterpriseModernAppManagement para instalar aplicativos.
Implantar aplicativos para o usuário da Store
Para implantar um aplicativo para um usuário diretamente da Microsoft Store, o servidor de gerenciamento executa um comando Add and Exec no nó AppInstallation do CSP EnterpriseModernAppManagement. Esse recurso só tem suporte no contexto do usuário e não no contexto do dispositivo.
Se você comprou um aplicativo na Store para Empresas e o aplicativo estiver especificado para uma licença online, o aplicativo e a licença deverão ser adquiridos diretamente da Microsoft Store.
Observação
A Microsoft Store para Empresas e a Microsoft Store para Educação foram descontinuadas. Para obter mais informações, consulte a Microsoft Store para Empresas e Educação descontinuada em 31 de março de 2023.
Aqui estão os requisitos para este cenário:
- O aplicativo é atribuído a uma identidade do usuário do Microsoft Entra na Store para Empresas. Você pode atribuir diretamente na Store para Empresas ou por meio de um servidor de gerenciamento.
- O dispositivo requer conectividade com a Microsoft Store.
- Os serviços da Microsoft Store devem estar habilitados no dispositivo. A interface do usuário da Microsoft Store pode ser desabilitada pelo administrador corporativo.
- O usuário deve estar conectado com sua identidade do 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>
Aqui estão as mudanças da versão anterior:
- A
{CatID}referência deve ser atualizada para{ProductID}. Esse valor é adquirido como parte da ferramenta de gerenciamento da Store para Empresas. - O valor dos sinalizadores pode ser 0 ou 1.
- 0: a ferramenta de gerenciamento chama de volta a sincronização da Loja para Empresas para atribuir a um usuário uma estação de um aplicativo.
- 1: a ferramenta de gerenciamento não chama de volta para a sincronização da Store para Empresas para atribuir a um usuário uma estação de um aplicativo. O CSP reivindica uma estação se houver uma disponível.
- É
skuidum novo parâmetro necessário. Esse valor é adquirido como parte da sincronização da Store para Empresas com a ferramenta de gerenciamento.
Implantar uma licença offline para um usuário
Se você comprou um aplicativo na Store para Empresas, a licença do aplicativo deve ser implantada no dispositivo. A licença do aplicativo só precisa ser implantada como parte da instalação inicial do aplicativo. Durante uma atualização, somente o aplicativo é implantado para o usuário.
No SyncML, você precisa especificar as seguintes informações no Exec comando:
- ID da licença - essa ID é especificada no LocURI. A ID de licença para a licença offline é chamada de "ID de conteúdo" no arquivo de licença. Você pode recuperar essas informações no download da licença codificada em Base 64 na Store para Empresas.
- Conteúdo da Licença - Este conteúdo é especificado na seção de dados. O Conteúdo da Licença é o blob codificado em Base 64 da licença.
Veja 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>
Implantar aplicativos para um usuário de um local hospedado
Se você comprou um aplicativo da Store para Empresas e o aplicativo está especificado para uma licença offline ou o aplicativo é um aplicativo que não pertence à Store, o aplicativo deve ser implantado de um local hospedado.
Aqui estão os requisitos para este cenário:
- O local do aplicativo pode ser um sistema de arquivos local (C:\StagedApps\app1.appx), um caminho UNC (\\server\share\app1.apx) ou um local HTTPS (
https://contoso.com/app1.appx). - O usuário deve ter permissão para acessar o local do conteúdo. Para HTTPs, você pode usar a autenticação do servidor ou a autenticação de certificado usando um certificado associado ao registro. Os locais HTTP são suportados, mas não recomendados devido à falta de requisitos de autenticação.
- O dispositivo não precisa ter conectividade com a Microsoft Store, serviços da loja ou ter a interface do usuário da Microsoft Store habilitada.
- O usuário deve estar conectado, mas a associação com a identidade do Microsoft Entra não é necessária.
Observação
Você deve desbloquear o dispositivo para implantar aplicativos que não são da Store ou deve implantar a licença do aplicativo antes de implantar os aplicativos offline. Para obter detalhes, consulte Implantar uma licença offline para um usuário.
O comando Adicionar do nome da família de pacotes é necessário para garantir a remoção adequada do aplicativo no cancelamento do registro.
Aqui está um exemplo de uma instalação de aplicativo de linha de negócios.
<!-- 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>Aqui está um exemplo de uma instalação de aplicativo 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>Aqui está um exemplo de uma instalação de aplicativo 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>
Provisionar aplicativos para todos os usuários de um dispositivo
O provisionamento permite que você teste o aplicativo para o dispositivo e todos os usuários do dispositivo podem ter o aplicativo registrado no próximo login. Esse recurso só tem suporte para aplicativo comprado da Store para Empresas, e o aplicativo é especificado para uma licença offline ou o aplicativo é um aplicativo que não pertence à Store. O aplicativo deve ser oferecido de um local hospedado. O aplicativo é instalado como um sistema local. Para instalar em um compartilhamento de arquivo local, o 'sistema local' do dispositivo deve ter acesso ao compartilhamento.
Aqui estão os requisitos para este cenário:
- O local do aplicativo pode ser o sistema de arquivos local (C:\StagedApps\app1.appx), um caminho UNC (\\server\share\app1.apx) ou um local HTTPS (
https://contoso.com/app1.appx\) - O usuário deve ter permissão para acessar o local do conteúdo. Para HTTPs, você pode usar a autenticação do servidor ou a autenticação de certificado usando um certificado associado ao registro. Os locais HTTP são suportados, mas não recomendados devido à falta de requisitos de autenticação.
- O dispositivo não precisa ter conectividade com a Microsoft Store ou serviços da Store habilitados.
- O dispositivo não precisa de nenhuma identidade ou associação de domínio do Microsoft Entra.
- Para aplicativos que não são da Store, seu dispositivo deve ser desbloqueado.
- Para aplicativos offline da Store, as licenças necessárias devem ser implantadas antes de implantar os aplicativos.
Para provisionar o aplicativo para todos os usuários de um dispositivo de um local hospedado, o servidor de gerenciamento executa um comando Add and Exec no nó AppInstallation no contexto do dispositivo. O comando Adicionar do nome da família de pacotes é necessário para garantir a remoção adequada do aplicativo no cancelamento do registro.
Observação
Quando você remover o aplicativo provisionado, ele não o removerá dos usuários que já instalaram o aplicativo.
Aqui está um exemplo de instalação do aplicativo:
<!-- 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. Aqui estão os requisitos para o XML de dados:
- O nó do aplicativo tem um parâmetro necessário, PackageURI, que pode ser um local de arquivo local, local UNC ou 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 do usuário.
Aqui está um exemplo de instalação de aplicativo 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 o status das instalações do aplicativo
Quando uma instalação de aplicativo é concluída, uma notificação do Windows é enviada. Você também pode consultar o status de uso do nó AppInstallation. Aqui está a lista de informações que você pode obter de volta na consulta:
- Status - indica o status da instalação do aplicativo.
- NOT_INSTALLED (0) – O nó foi adicionado, mas a execução não foi concluída.
- INSTALANDO (1) - A execução começou, mas a implantação não foi concluída. Se a implantação for concluída independentemente do êxito, esse valor será atualizado.
- FALHA (2) - Falha na instalação. Os detalhes do erro podem ser encontrados em LastError e LastErrorDescription.
- INSTALADO (3) - Depois que uma instalação for bem-sucedida, esse nó será limpo. Se a ação de limpeza não for concluída, esse estado poderá aparecer brevemente.
- LastError - O último erro relatado pelo servidor de implantação do aplicativo.
- LastErrorDescription - Descreve o último erro relatado pelo servidor de implantação do aplicativo.
- Status – um número inteiro que indica o progresso da instalação do aplicativo. Nos casos de um local HTTPS, esse status mostra o progresso estimado do download. O status não está disponível para provisionamento e não é usado apenas para instalações baseadas no usuário. Para provisionamento, o valor é sempre 0.
Quando um aplicativo é instalado com êxito, o nó é limpo e não está mais presente. O status do aplicativo pode ser relatado no nó AppManagement.
Aqui está um exemplo de uma consulta para uma instalação de aplicativo 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>Aqui está um exemplo de uma consulta para todas as instalações do aplicativo.
<!-- 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
As instalações de aplicativos podem levar algum tempo para serem concluídas. Então, eles são feitos de forma assíncrona. Quando o comando Exec é concluído, o cliente envia uma notificação ao servidor de gerenciamento com um status, seja uma falha ou um sucesso.
Veja 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 instalação baseada no usuário, use o ./User caminho e para provisionamento de aplicativos, use o ./Device caminho.
O valor do campo de dados de 0 (zero) indica êxito. Caso contrário, é um código de erro. Se houver uma falha, você poderá obter mais detalhes do nó AppInstallation.
Observação
No momento, o alerta para a instalação do aplicativo da Store não está disponível.
Desinstalar seus aplicativos
Você pode desinstalar aplicativos de usuários de dispositivos Windows. Para desinstalar um aplicativo, exclua-o do nó AppManagement do CSP. No nó AppManagement, os pacotes são organizados com base em sua origem de acordo com os seguintes nós:
- AppStore – esses aplicativos são para a Microsoft Store. Os aplicativos podem ser instalados diretamente da Store ou entregues à empresa da Store para Empresas.
- não Store - esses aplicativos que não foram adquiridos da Microsoft Store.
- Sistema - Esses aplicativos fazem parte do sistema operacional. Não é possível desinstalar esses aplicativos.
Para desinstalar um aplicativo, exclua-o no nó de origem, no nome da família de pacotes e no nome completo do pacote. Para desinstalar um XAP, use a ID do produto no lugar do nome da família de pacotes e do nome completo do pacote.
Aqui está um exemplo para desinstalar todas as versões de um aplicativo para um usuário.
<!-- Uninstall App for a Package Family-->
<Delete>
<CmdID>1</CmdID>
<Item>
<Target>
<LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}</LocURI>
</Target>
</Item>
</Delete>
-Aqui está um exemplo para desinstalar uma versão específica do aplicativo para um usuário.
<!-- 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>
Aplicativos provisionados removidos de um dispositivo
Você pode remover aplicativos provisionados de um dispositivo para uma versão específica ou para todas as versões de uma família de pacotes. Quando um aplicativo provisionado é removido, ele não está disponível para futuros usuários do dispositivo. Os usuários conectados que têm o aplicativo registrado para eles continuam a ter acesso ao aplicativo. Se você quiser remover o aplicativo para esses usuários, deverá desinstalar explicitamente o aplicativo para esses usuários.
Observação
Você só pode remover um aplicativo que tenha um valor de inventário IsProvisioned = 1.
A remoção do aplicativo provisionado ocorre no contexto do dispositivo.
Aqui está um exemplo para remover um aplicativo provisionado 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>Aqui está um exemplo para remover uma versão específica de um aplicativo provisionado 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 aplicativo da loja
Você pode remover licenças de aplicativo de um dispositivo por aplicativo com base na ID do conteúdo.
Aqui está um exemplo para remover uma licença de aplicativo de um usuário.
<!-- 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>Aqui está um exemplo para remover uma licença de aplicativo de um pacote provisionado (contexto de 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 do aplicativo
A desinstalação de um aplicativo pode levar algum tempo para ser concluída. Portanto, a desinstalação é executada de forma assíncrona. Quando o comando Exec é concluído, o cliente envia uma notificação ao servidor de gerenciamento com um status, seja uma falha ou um sucesso.
Para desinstalação baseada no usuário, use ./User no LocURI e, para provisionamento, use ./Device no LocURI.
Veja um exemplo. Há apenas uma desinstalação para aplicativos hospedados 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
Os aplicativos instalados em um dispositivo podem ser atualizados usando o servidor de gerenciamento. Os aplicativos podem ser atualizados diretamente da loja ou instalados de um local hospedado.
Atualizar aplicativos diretamente da loja
Para atualizar um aplicativo da Microsoft Store, o dispositivo requer contato com os serviços da Store.
Aqui está um exemplo de uma verificação 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>Veja 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 aplicativos de um local hospedado
A atualização de um aplicativo existente segue o mesmo processo de uma instalação inicial. Para obter mais informações, consulte Implantar aplicativos para um usuário de um local hospedado.
Atualizar aplicativos provisionados
Um aplicativo provisionado é atualizado automaticamente quando uma atualização de aplicativo é enviada ao usuário. Você também pode atualizar um aplicativo provisionado usando o mesmo processo de um provisionamento inicial. Para obter mais informações sobre o provisionamento inicial, consulte Provisionar aplicativos para todos os usuários de um dispositivo.
Impedir que o aplicativo use atualizações automáticas
Você pode impedir que aplicativos específicos sejam atualizados automaticamente. Esse recurso permite que você ative atualizações automáticas para aplicativos, com aplicativos específicos excluídos conforme definido pelo administrador de TI.
A desativação das atualizações só se aplica às atualizações da Microsoft Store no nível do dispositivo. Este recurso não está disponível em um nível de usuário. Você ainda poderá atualizar um aplicativo se os pacotes offline forem enviados por push do local de instalação hospedado.
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 gerenciamento de aplicativos
As subseções a seguir fornecem informações sobre mais configurações de configurações.
Habilitar dados de aplicativo de usuário compartilhados
O aplicativo Universal do Windows pode compartilhar dados de aplicativos entre os usuários do dispositivo. A capacidade de compartilhar dados pode ser definida em um nível de família de pacotes ou por dispositivo.
Observação
Isso só é aplicável a dispositivos multiusuário.
A política ApplicationManagement/AllowSharedUserAppData habilita ou desabilita pacotes de aplicativos para compartilhar dados entre pacotes de aplicativos quando há vários usuários. Se você habilitar essa política, os aplicativos poderão compartilhar dados entre pacotes em sua família de pacotes. Os dados podem ser compartilhados por meio da pasta ShareLocal para essa família de pacotes e para o computador local. Essa pasta está disponível por meio da API Windows.Storage.
Se você desabilitar essa política, os aplicativos não poderão compartilhar dados do aplicativo do usuário entre vários usuários. No entanto, os dados compartilhados pré-gravados persistem. Para limpar dados compartilhados pré-escritos, use o DISM (/Get-ProvisionedAppxPackagepara detectar se há dados compartilhados e /Remove-SharedAppxData removê-los).
Os valores válidos são 0 (desativado, valor padrão) 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>