Cómo automatizar la desinstalación de aplicaciones en macOS con un script de shell

Cuando se trata de macOS, hay varias formas de desinstalar aplicaciones: arrastrándolas y soltándolas en la papelera, usando un desinstalador específico o a través del Launchpad. Sin embargo, estos métodos suelen carecer de la eficacia y automatización necesarias para las operaciones a gran escala en entornos informáticos. Para los profesionales de TI y los proveedores de servicios gestionados (MSP) encargados de gestionar una flota de dispositivos Mac, el uso de un script de shell para este fin se convierte en el método más eficiente y eficaz.

Script de shell para automatizar la desinstalación de aplicaciones en macOS

#!/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

 

Accede a más de 300 scripts en el Dojo de NinjaOne

Obtén acceso

Análisis del script: cómo funciona

Utilizarmdfindysystem_profiler

El script emplea utilidades nativas de macOS para realizar su tarea. mdfind, una parte de Spotlight, se utiliza inicialmente para consultar los metadatos de los archivos. Esto permite al script compilar una lista de todos los paquetes de aplicaciones, centrándose únicamente en aquellos ubicados en /Applications y /Users/<username> /Applications.

system_profiler, otra utilidad de macOS, recopila información detallada sobre las aplicaciones instaladas. Cuando se utiliza con SPApplicationsDataType, enumera todas las aplicaciones instaladas en el equipo.

Filtrar resultados con grep

La utilidad de la línea de comandos grep se utiliza dos veces en el script. La primera opción filtra la salida de system_profiler para encontrar rutas que empiecen por /Applications o por /Users/<username>/Applications. El segundo uso reduce estos resultados para que coincidan con el nombre exacto de la aplicación especificada.

El potente rm

La desinstalación de aplicaciones propiamente dicha se realiza con el comando rm -rf, una potente utilidad que elimina archivos y directorios. En este caso, se enfoca en el paquete de aplicaciones encontrado por los comandos anteriores y lo elimina del sistema.

Las ventajas de la automatización: por qué utilizar este script

Ahorro de tiempo

Automatización es sinónimo de ahorro de tiempo. Este script elimina el tedio de la desinstalación de aplicaciones manual, lo que permite al personal informático centrarse en tareas más críticas.

Escalabilidad

El script puede formar parte de un esquema de automatización más amplio. Imagínate incorporarlo a una herramienta de gestión de sistemas que active remotamente este script en todos los dispositivos Mac de una red. La escalabilidad es inmensa.

Precisión

A diferencia de los métodos manuales, en los que el error humano es un factor a tener en cuenta, el script está programado para encontrar el paquete de aplicaciones exacto, reduciendo así las posibilidades de que se produzcan eliminaciones involuntarias o se pasen por alto.

Flexibilidad

Gracias a la posibilidad de especificar el nombre exacto de la aplicación como argumento, puedes adaptar el proceso de desinstalación de aplicaciones a tus necesidades específicas. Inserta este script en otro y tendrás una potente herramienta para desinstalar varias aplicaciones de forma secuencial.

Ventajas en términos de cumplimiento

En los sectores regulados o con normas de cumplimiento estrictas, no eliminar las aplicaciones no autorizadas o que incumplen la normativa puede acarrear sanciones. La automatización del proceso de desinstalación de aplicaciones garantiza que siempre se cumpla la normativa con el mínimo esfuerzo.

Conclusión

NinjaOne es una plataforma de gestión de TI basada en la nube que puede utilizarse para automatizar diversas tareas, incluida la desinstalación de aplicaciones. Con NinjaOne, puedes crear una política que ejecute el script de shell. Esta política puede programarse para que se ejecute de forma recurrente o se active por un evento específico, como la instalación de una nueva aplicación.

Aquí tienes los pasos sobre cómo utilizar NinjaOne para automatizar el script de desinstalación de aplicaciones:

  1. Crea una política en NinjaOne.
  2. En la política, selecciona la acción «Script».
  3. Pega el script de shell en el editor de scripts.
  4. En la sección «Argumentos», especifica el nombre de la aplicación que quieres desinstalar.
  5. Programa la política para que se ejecute de forma recurrente, o actívala por un evento específico.

Una vez creada la política, desinstalará automáticamente la aplicación especificada de todos los dispositivos macOS gestionados por NinjaOne. Esto puede ahorrarte una cantidad significativa de tiempo y esfuerzo y ayudarte a garantizar que todos tus dispositivos macOS cumplen con las políticas de seguridad de tu organización.

Estas son algunas ventajas adicionales de usar NinjaOne para automatizar el script de desinstalación de aplicaciones:

  • Gestión centralizada: NinjaOne proporciona una consola centralizada donde puedes gestionar todos tus dispositivos macOS. De esta forma, es fácil crear e implementar políticas, así como hacer un seguimiento del estado de los dispositivos.
  • Escalabilidad: NinjaOne puede escalarse para gestionar un gran número de dispositivos macOS. Esto lo convierte en una buena opción para organizaciones con una gran infraestructura informática.
  • Seguridad: NinjaOne es una plataforma segura que utiliza el cifrado estándar de la industria para proteger tus datos. Esto ayuda a garantizar que tus scripts de desinstalación de aplicaciones sean seguros y que tus datos estén protegidos.

Próximos pasos

La creación de un equipo de TI próspero y eficaz requiere contar con una solución centralizada que se convierta en tu principal herramienta de prestación de servicios. NinjaOne permite a los equipos de TI supervisar, gestionar, proteger y dar soporte a todos sus dispositivos, estén donde estén, sin necesidad de complejas infraestructuras locales.

Obtén más información sobre NinjaOne Endpoint Management, echa un vistazo a un tour en vivoo tu prueba gratuita de la plataforma NinjaOne.

Categorías:

Quizá también te interese…

×

¡Vean a NinjaOne en acción!

Al enviar este formulario, acepto la política de privacidad de NinjaOne.

Términos y condiciones de NinjaOne

Al hacer clic en el botón «Acepto» que aparece a continuación, estás aceptando los siguientes términos legales, así como nuestras Condiciones de uso:

  • Derechos de propiedad: NinjaOne posee y seguirá poseyendo todos los derechos, títulos e intereses sobre el script (incluidos los derechos de autor). NinjaOne concede al usuario una licencia limitada para utilizar el script de acuerdo con estos términos legales.
  • Limitación de uso: solo podrás utilizar el script para tus legítimos fines personales o comerciales internos, y no podrás compartirlo con terceros.
  • Prohibición de republicación: bajo ninguna circunstancia está permitido volver a publicar el script en ninguna biblioteca de scripts que pertenezca o esté bajo el control de cualquier otro proveedor de software.
  • Exclusión de garantía: el script se proporciona «tal cual» y «según disponibilidad», sin garantía de ningún tipo. NinjaOne no promete ni garantiza que el script esté libre de defectos o que satisfaga las necesidades o expectativas específicas del usuario.
  • Asunción de riesgos: el uso que el usuario haga del script corre por su cuenta y riesgo. El usuario reconoce que existen ciertos riesgos inherentes al uso del script, y entiende y asume cada uno de esos riesgos.
  • Renuncia y exención: el usuario no hará responsable a NinjaOne de cualquier consecuencia adversa o no deseada que resulte del uso del script y renuncia a cualquier derecho o recurso legal o equitativo que pueda tener contra NinjaOne en relación con su uso del script.
  • CLUF: si el usuario es cliente de NinjaOne, su uso del script está sujeto al Contrato de Licencia para el Usuario Final (CLUF).