Por que o Get-AppxPackage relata um nome de família órfão no Windows 11
🔍 WiseChecker

Por que o Get-AppxPackage relata um nome de família órfão no Windows 11

Ao executar o cmdlet Get-AppxPackage no Windows 11, a saída pode mostrar um pacote com um valor FamilyName que não corresponde a nenhum aplicativo instalado. Essa entrada órfã geralmente aparece após uma falha na atualização do aplicativo, remoção manual do pacote ou perfil de usuário corrompido. O nome de família órfão não afeta a estabilidade do sistema, mas pode poluir listas de pacotes e quebrar scripts que dependem de uma saída limpa. Este artigo explica por que a entrada órfã persiste e como removê-la com segurança.

Principais conclusões: Identificando e removendo pacotes Appx órfãos

  • Get-AppxPackage -Name orfão: Lista pacotes com um padrão de nome específico para ajudar a localizar entradas órfãs.
  • Get-AppxPackage -AllUsers: Revela pacotes instalados para todas as contas de usuário, incluindo entradas órfãs não visíveis no usuário atual.
  • Remove-AppxPackage -Package FullName: Exclui o pacote órfão da conta de usuário atual após obter o nome completo do pacote.

ADVERTISEMENT

Por que um nome de família órfão aparece na saída do Get-AppxPackage

Um nome de família órfão ocorre quando o registro do pacote no sistema de implantação AppX do Windows permanece após a remoção dos arquivos reais do pacote. A propriedade FamilyName na saída do Get-AppxPackage identifica o editor e o nome do pacote, como Microsoft.WindowsStore_8wekyb3d8bbwe. Quando um pacote é parcialmente desinstalado ou uma atualização falha, a entrada de registro persiste mesmo que o aplicativo não possa ser iniciado.

As causas comuns incluem:

  • Falha em atualizações de aplicativos: O Windows Update ou a Microsoft Store podem deixar uma entrada obsoleta quando uma atualização não é concluída.
  • Remoção manual de pacotes: Usar Remove-AppxPackage sem o parâmetro -AllUsers pode deixar entradas órfãs para outras contas.
  • Perfil de usuário corrompido: Um perfil danificado pode fazer com que o gerenciador de pacotes perca o controle dos aplicativos instalados, mantendo seus nomes registrados.
  • Desinstaladores de terceiros: Ferramentas que removem aplicativos fora das APIs AppX padrão geralmente deixam registros residuais.

O nome de família órfão não consome espaço em disco, mas pode fazer com que scripts que iteram sobre a saída do Get-AppxPackage falhem ou produzam resultados incorretos. Por exemplo, um script que verifica a presença do Microsoft Teams pode relatá-lo incorretamente como instalado.

Etapas para identificar e remover um pacote Appx órfão

Siga estas etapas para localizar o pacote órfão e removê-lo da sua conta de usuário. Execute o PowerShell como administrador para acesso total.

  1. Abra o PowerShell como administrador
    Pressione a tecla Windows, digite PowerShell, clique com o botão direito em Windows PowerShell nos resultados da pesquisa e selecione Executar como administrador. Confirme o prompt do Controle de Conta de Usuário.
  2. Liste todos os pacotes Appx para o usuário atual
    Execute o comando Get-AppxPackage | Select-Object Name, PackageFullName, PublisherId. Revise a saída em busca de qualquer pacote com um Name ou PublisherId que não corresponda a um aplicativo que você reconheça ou use.
  3. Verifique pacotes instalados para todos os usuários
    Execute Get-AppxPackage -AllUsers | Select-Object Name, PackageFullName, PublisherId. Este comando mostra pacotes provisionados para todas as contas de usuário no dispositivo. Uma entrada órfã pode aparecer aqui mesmo que não apareça apenas no usuário atual.
  4. Identifique o pacote órfão
    Compare a saída dos dois comandos. Se um pacote aparecer apenas na lista -AllUsers e não na lista do usuário atual, provavelmente é órfão. Anote o valor PackageFullName, que se parece com Microsoft.WindowsStore_22110.1401.1.0_x64__8wekyb3d8bbwe.
  5. Remova o pacote órfão do usuário atual
    Execute Remove-AppxPackage -Package "FullNameHere", substituindo FullNameHere pelo valor PackageFullName da etapa 4. Por exemplo: Remove-AppxPackage -Package "Microsoft.WindowsStore_22110.1401.1.0_x64__8wekyb3d8bbwe". Se o comando for bem-sucedido, a entrada órfã é removida do perfil do usuário atual.
  6. Remova o pacote órfão para todos os usuários, se necessário
    Se o pacote ainda aparecer na lista -AllUsers após a etapa anterior, execute Remove-AppxPackage -Package "FullNameHere" -AllUsers. Isso remove o registro para todas as contas de usuário no dispositivo. Reinicie o PowerShell e execute Get-AppxPackage -AllUsers | Select-Object Name para confirmar que a entrada desapareceu.

ADVERTISEMENT

O que fazer se o pacote órfão não puder ser removido

Remove-AppxPackage retorna um erro de acesso negado

Esse erro ocorre quando o pacote é provisionado para o sistema ou protegido pelo Windows. Execute o comando em uma sessão elevada do PowerShell. Se o erro persistir, o pacote pode fazer parte da imagem base do Windows. Use a ferramenta Deployment Image Servicing and Management para removê-lo. Execute DISM /Online /Remove-ProvisionedAppxPackage /PackageName:"FullNameHere".

Entrada órfã reaparece após reinicialização do sistema

Um nome de família órfão que reaparece indica que o pacote está sendo registrado novamente por uma tarefa agendada ou uma Política de Grupo. Verifique o Agendador de Tarefas em Microsoft > Windows > Appx em busca de tarefas relacionadas à implantação de pacotes. Procure políticas em Configuração do Computador > Modelos Administrativos > Componentes do Windows > Implantação de Pacotes de Aplicativos no Editor de Política de Grupo Local. Desabilite qualquer política que force a reinstalação do aplicativo.

Get-AppxPackage ainda mostra a entrada órfã para um usuário diferente

Alterne para a conta de usuário afetada saindo e entrando como esse usuário. Repita as etapas de remoção dentro dessa sessão de usuário. Se não for possível entrar como esse usuário, use os comandos Get-AppxPackage -User "Domínio\NomeDeUsuário" e Remove-AppxPackage -User "Domínio\NomeDeUsuário" -Package "FullNameHere" em uma sessão elevada do PowerShell.

Saída do Get-AppxPackage: Entrada órfã vs Pacote normal

Item Pacote órfão Pacote normal
PackageFamilyName Presente e válido Presente e válido
IsDevelopmentMode Falso Falso
IsFramework Pode ser falso Pode ser falso
IsResourcePackage Falso Pode ser falso
SignatureKind Pode ser Store ou System Store ou System
Pode iniciar o aplicativo Não Sim
Aparece no menu Iniciar Não Sim

Um pacote órfão geralmente tem um PackageFamilyName válido, mas não pode iniciar o aplicativo. O PackageFullName de uma entrada órfã pode ter um número de versão que não corresponde a nenhum aplicativo instalado. Use a verificação “Pode iniciar o aplicativo” para confirmar se um pacote é órfão.

Para verificar se a entrada órfão desapareceu, execute Get-AppxPackage -Name "NomeOrfão" após a remoção. Se o comando não retornar saída, o pacote foi removido com sucesso. Agora você pode executar scripts que dependem da saída do Get-AppxPackage sem falsos positivos. Para entradas órfãs persistentes, considere usar o comando DISM com a opção /Remove-ProvisionedAppxPackage para limpar a imagem do sistema.

ADVERTISEMENT