Como automatizar a desinstalação de aplicativos no macOS com o Shell Script

Quando se trata do macOS, há vários caminhos para desinstalar aplicativos: arrastar e soltar na lixeira, usar um desinstalador dedicado ou usar o Launchpad. No entanto, esses métodos geralmente não têm a eficiência e a automação necessárias para operações de grande escala em ambientes de TI. Para profissionais de TI e provedores de serviços gerenciados (MSPs) encarregados de gerenciar uma frota de dispositivos Mac, o uso de um script de shell para essa finalidade se torna o método mais eficiente e eficaz.

Desinstalação de aplicativos no macOS com o Shell Script

#!/usr/bin/env bash
# Description: This will search under /Applications/* and under each user's Applications folder for the app you speficy to remove and will only remove the first found app.
#
# Release Notes: Initial Release
# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
# Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#
# Usage:
#  <ApplicationName.app>
# Accepts only one application
# Specify the exact name of the application.
# Applications with space(s) in the name will need double quotes surrounding it. Example: "Google Chrome.app"
# As macOS's file system is typically case sensitive, matching the case is important.
#
# EXAMPLE
#  If we have /Applications/Docker.app installed.
#  Then our argument would be:
#    Docker.app
# EXAMPLE
#  If we have /Applications/Google Chrome.app installed.
#  Then our argument would be:
#    "Google Chrome.app"
APP=$1
# Get a list of all installed app's, filter to only have /Applications and /User/<username>/Applications, filter the requested app, select the first found app
mdfind kMDItemContentTypeTree=com.apple.application-bundle -onlyin >/dev/null
APP_TO_UNINSTALL=$(system_profiler SPApplicationsDataType 2>/dev/null | sed -n 's/^ *Location: (.*)/1/p' | grep -E '^/Applications.*|/Users/.+/Applications.*' | grep "${APP}" | head -n 1)
echo "Found ${APP_TO_UNINSTALL}"
echo "Removing ${APP_TO_UNINSTALL}"
# Remove app
rm -rf "${APP_TO_UNINSTALL}"
status=$?
# Output result
[ $status -eq 0 ] && echo "Removed ${APP_TO_UNINSTALL}" || echo "Failed to remove ${APP_TO_UNINSTALL}"
# Return status
exit $status

 

Acesse mais de 300 scripts no NinjaOne Dojo

Obter acesso

A Anatomia do Roteiro: Como funciona

Utilizando o mdfind e system_profiler

O script emprega utilitários nativos do macOS para realizar sua tarefa. O mdfind, uma parte do Spotlight, é usado inicialmente para consultar os metadados dos arquivos. Isso permite que o script compile uma lista de todos os pacotes de aplicativos, concentrando-se apenas naqueles localizados em /Applications e /Users/<username>/Applications.

o system_profiler, outro utilitário do macOS, reúne informações detalhadas sobre os aplicativos instalados. Quando usado com o SPApplicationsDataType, ele lista todos os aplicativos instalados no computador.

Filtragem de resultados com o grep

O utilitário de linha de comando grep é usado duas vezes no script. A primeira ocorrência filtra a saída do system_profiler para encontrar caminhos que começam com /Applications ou com /Users/<username>/Applications. O segundo uso restringe esses resultados para corresponder ao nome exato do aplicativo especificado.

O poderoso rm

A desinstalação real ocorre com o comando rm -rf, um poderoso utilitário que remove arquivos e diretórios. Aqui, ele tem como alvo o pacote de aplicativos encontrado pelos comandos anteriores e o remove do sistema.

As vantagens da automação: Por que usar esse script

Economia de tempo

Automação é sinônimo de economia de tempo. Esse script elimina a tediosidade da desinstalação manual, permitindo que a equipe de TI se concentre em tarefas mais importantes.

Escalabilidade

O script pode ser parte de um esquema de automação mais abrangente. Imagine incorporá-lo a uma ferramenta de gerenciamento de sistemas que aciona remotamente esse script em todos os dispositivos Mac em uma rede. A escalabilidade aqui é imensa.

Precisão

Ao contrário dos métodos manuais, em que o erro humano é um fator, o script é programado para encontrar o pacote exato de aplicativos, reduzindo assim as chances de exclusões não intencionais ou negligências.

Flexibilidade

Com a capacidade de especificar o nome exato do aplicativo como um argumento, você pode adaptar o processo de desinstalação às suas necessidades específicas. Envolva esse script em outro script e você terá uma ferramenta poderosa para desinstalar vários aplicativos sequencialmente.

Benefícios de conformidade

Nos setores que são regulamentados ou que têm padrões de conformidade rigorosos, a não remoção de aplicativos não compatíveis ou não autorizados pode resultar em penalidades. A automação do processo de desinstalação garante que você esteja sempre em conformidade com o mínimo de esforço.

Concluindo

O NinjaOne é uma plataforma de gerenciamento de TI baseada em nuvem que pode ser usada para automatizar uma variedade de tarefas, incluindo a desinstalação de aplicativos. Com o NinjaOne, você pode criar uma política que executa o script de shell. Essa política pode ser programada para ser executada de forma recorrente ou pode ser acionada por um evento específico, como a instalação de um novo aplicativo.

Aqui estão as etapas sobre como usar o NinjaOne para automatizar o script de desinstalação do aplicativo:

  1. Crie uma política no NinjaOne.
  2. Na política, selecione a ação “Script”.
  3. Cole o script de shell no editor de scripts.
  4. Na seção “Arguments” (Argumentos), especifique o nome do aplicativo que deseja desinstalar.
  5. Programe a política para ser executada em uma base recorrente ou acione-a por um evento específico.

Depois que a política for criada, ela desinstalará automaticamente o aplicativo especificado de todos os dispositivos macOS gerenciados pelo NinjaOne. Isso pode economizar uma quantidade significativa de tempo e esforço, além de ajudá-lo a garantir que todos os seus dispositivos macOS estejam em conformidade com as políticas de segurança da sua organização.

Aqui estão alguns benefícios adicionais de usar o NinjaOne para automatizar o script de desinstalação do aplicativo:

  • Gerenciamento centralizado: O NinjaOne oferece um console centralizado no qual você pode gerenciar todos os seus dispositivos macOS. Isso facilita a criação e a implementação de políticas, além de facilitar o rastreamento do status de seus dispositivos.
  • Escalabilidade: O NinjaOne pode ser dimensionado para gerenciar um grande número de dispositivos macOS. Isso o torna uma boa opção para organizações com uma grande infraestrutura de TI.
  • Segurança: O NinjaOne é uma plataforma segura que usa criptografia padrão do setor para proteger seus dados. Isso ajuda a garantir que os scripts de desinstalação de aplicativos sejam seguros e que seus dados estejam protegidos.

Próximas etapas

Montar uma equipe de TI eficaz requer uma solução centralizada que seja a principal ferramenta de entrega de serviços. Com NinjaOne, a TI monitora, gerencia, protege e oferece suporte a todos os dispositivos, onde quer que estejam, dispensando infraestrutura complexa no local.

Saiba mais sobre a solução NinjaOne Remote Script Deployment, agende uma demonstração, ou inicie sua avaliação gratuita da plataforma NinjaOne.

Categories:

You might also like

Como desativar a atualização automática do Windows 11 [Script do PowerShell]

Como verificar se há um arquivo de hosts modificado com o PowerShell

Como garantir que a autenticação moderna esteja ativada no Office 365 com o PowerShell

Automatize o gerenciamento de ferramentas administrativas no Windows com este script essencial do PowerShell

Identificação e gerenciamento de contas locais não utilizadas em sistemas Windows

Script do PowerShell para identificar conexões Ethernet lentas no Windows

NinjaOne Terms & Conditions

By clicking the “I Accept” button below, you indicate your acceptance of the following legal terms as well as our Terms of Use:

  • Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms.
  • Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party.
  • Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library belonging to or under the control of any other software provider.
  • Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations.
  • Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks.
  • Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script.
  • EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).