Usando PowerShell para desinstalar aplicativos

Parte do meu Relatório de informações do monitor (MIR) teste (MIR agora faz parte do Relatório Enhansoft) envolveu a implantação de várias atualizações nos clientes do meu laboratório ConfigMgr. Meu laboratório é uma mistura de sistemas operacionais (SO) x86 e x64. Depois de implantar todas essas versões do MIR, fiquei procurando uma solução que me permitisse limpar rapidamente as instalações do cliente. No final das contas, eu queria apenas a versão final instalada em cada cliente. Nesta postagem do blog, mostrarei minha solução de como usei o PowerShell para desinstalar aplicativos.

Infelizmente, não havia como saber quais versões do MIR foram implantadas em quais computadores de teste. Havia também a possibilidade de que vários computadores de teste pudessem ter mais de uma versão do MIR instalada. Eu precisava desinstalar automaticamente o MIR sem ter que desinstalá-lo manualmente em cada computador. Eu queria um script que detectasse todas as versões do MIR em um computador e desinstalasse cada uma, uma de cada vez.

Você pensaria que já existia uma solução simples! Já implantou Adobe Reader? Então você saberia que pode haver várias versões diferentes de Adobe Reader listado dentro Adicionar / Remover Programa (ARP) em um computador. Por que não haveria uma maneira fácil de excluir as versões anteriores?

Depois de pesquisar na internet por um tempo, encontrei muitos scripts que me ajudariam a desinstalar apenas um aplicativo por vez. Havia até mesmo alguns scripts por aí que consultavam Win32_Product e, em seguida, desinstale dois ou mais aplicativos. No entanto, se você já leu a postagem do blog de Greg Ramsey Win32_Product Is Evil então você saberá que esta é uma má ideia. Você nunca deve fazer isso! É por isso que eu nunca poderia usar Win32_Product em meu script devido aos problemas que ele cria.

No final, eu montei um script que em alto nível:

  • Detecta se o script está sendo executado no modo x84, x64 ou WoW32.
  • Lê as chaves de registro de desinstalação x86 e x64.
  • Localiza todas as versões de um aplicativo.
  • Percorrendo a lista de entradas ARP, ele coleta:
    o Nome MSI / GUID.
    o Desinstalar detalhes em cada MSI.
  • Registra cada etapa em um arquivo de log.

Qual é a aparência do script final? Veja a imagem abaixo. Você também pode baixar isso do Enhansoft local na rede Internet.

Usando o PowerShell para desinstalar o script final de aplicativos

Como você pode implantar este script com ConfigMgr?

Primeiro, comece editando o script. Substitua o nome do aplicativo pelo que deseja desinstalar. Na versão de download, atualmente está definido para: Monitorar * Informações * Relatórios *

Lembre-se de que o * é um curinga usado na pesquisa de entradas ARP.

Em segundo lugar, crie um pacote e um programa para sua linha de comando. Deve ser semelhante ao seguinte:
powershell.exe -ExecutionPolicy bypass -file MIR_Uninstallv9.ps1

Terceiro, implante o pacote e o programa como faria com qualquer outro programa.

A seguir, mostrarei o que fiz em um dos meus computadores de teste. Você pode ver na imagem abaixo que eu tinha várias cópias do MIR instaladas.

Usando o PowerShell para desinstalar versões de aplicativos-MIR

Eu configurei meu programa para implantar silenciosamente em segundo plano. Nada para ver da perspectiva do usuário final! No entanto, posso verificar que o PowerShell o script está sendo executado olhando para o Gerenciador de tarefas. Você terá que ser rápido se quiser fazer isso também! O script leva apenas alguns segundos a alguns minutos para ser executado, dependendo do número de ARP que precisa remover.

Como um aparte, você também pode ver que o script foi executado dentro do Execmgr.log em seu computador de teste.

Usando PowerShell para desinstalar aplicativos-MIR desinstalado

Você pode ver na captura de tela acima que depois de alguns minutos todos os Relatório de informações do monitor As entradas ARP foram removidas. Lembre-se de que, em alguns casos, você pode querer que seu script também reinicie os computadores, portanto, se quiser fazer isso, adicione ao script o comando:
reiniciar o computador -force

Espero que você ache esta postagem do blog útil. Se você tiver alguma dúvida sobre como usei o PowerShell para desinstalar aplicativos, sinta-se à vontade para entrar em contato comigo @GarthMJ.

Veja como Right Click Tools está mudando a forma como os sistemas são gerenciados.

Aumente imediatamente a produtividade com o nosso limitado e gratuito, Community Edition.

Comece com Right Click Tools hoje:

Compartilhar isso:

Suporte

  • Este campo é para fins de validação e não deve ser alterado.

Contato

  • Este campo é para fins de validação e não deve ser alterado.

Ao enviar este formulário, você entende que o Recast Software pode processar seus dados conforme descrito no Recast Software Política de Privacidade.

pt_BRPortuguese