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
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:
- Crea una política en NinjaOne.
- En la política, selecciona la acción «Script».
- Pega el script de shell en el editor de scripts.
- En la sección «Argumentos», especifica el nombre de la aplicación que quieres desinstalar.
- 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.