{"id":208617,"date":"2024-01-22T14:55:21","date_gmt":"2024-01-22T14:55:21","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/desinstalacion-de-aplicaciones-en-macos\/"},"modified":"2024-02-28T22:17:38","modified_gmt":"2024-02-28T22:17:38","slug":"desinstalacion-de-aplicaciones-en-macos","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/es\/script-hub\/desinstalacion-de-aplicaciones-en-macos\/","title":{"rendered":"C\u00f3mo automatizar la desinstalaci\u00f3n de aplicaciones en macOS con un script de shell"},"content":{"rendered":"<p>Cuando se trata de macOS, hay varias formas de <strong>desinstalar aplicaciones<\/strong>: arrastr\u00e1ndolas y solt\u00e1ndolas en la papelera, usando un desinstalador espec\u00edfico o a trav\u00e9s del Launchpad. Sin embargo, estos m\u00e9todos suelen carecer de la eficacia y automatizaci\u00f3n necesarias para las operaciones a gran escala en entornos inform\u00e1ticos. 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\u00e9todo m\u00e1s eficiente y eficaz.<\/p>\n<h2>Script de shell para automatizar la desinstalaci\u00f3n de aplicaciones en macOS<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">#!\/usr\/bin\/env bash\r\n# 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.\r\n#\r\n# Release Notes: Initial Release\r\n# 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.\r\n# 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. \r\n# 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. \r\n# 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. \r\n# Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, 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. \r\n# 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. \r\n# 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. \r\n# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#\r\n# Usage:\r\n#  &lt;ApplicationName.app&gt;\r\n# Accepts only one application\r\n# Specify the exact name of the application.\r\n# Applications with space(s) in the name will need double quotes surrounding it. Example: \"Google Chrome.app\"\r\n# As macOS's file system is typically case sensitive, matching the case is important.\r\n#\r\n# EXAMPLE\r\n#  If we have \/Applications\/Docker.app installed.\r\n#  Then our argument would be:\r\n#    Docker.app\r\n# EXAMPLE\r\n#  If we have \/Applications\/Google Chrome.app installed.\r\n#  Then our argument would be:\r\n#    \"Google Chrome.app\"\r\nAPP=$1\r\n# Get a list of all installed app's, filter to only have \/Applications and \/User\/&lt;username&gt;\/Applications, filter the requested app, select the first found app\r\nmdfind kMDItemContentTypeTree=com.apple.application-bundle -onlyin &gt;\/dev\/null\r\nAPP_TO_UNINSTALL=$(system_profiler SPApplicationsDataType 2&gt;\/dev\/null | sed -n 's\/^ *Location: (.*)\/1\/p' | grep -E '^\/Applications.*|\/Users\/.+\/Applications.*' | grep \"${APP}\" | head -n 1)\r\necho \"Found ${APP_TO_UNINSTALL}\"\r\necho \"Removing ${APP_TO_UNINSTALL}\"\r\n# Remove app\r\nrm -rf \"${APP_TO_UNINSTALL}\"\r\nstatus=$?\r\n# Output result\r\n[ $status -eq 0 ] &amp;&amp; echo \"Removed ${APP_TO_UNINSTALL}\" || echo \"Failed to remove ${APP_TO_UNINSTALL}\"\r\n# Return status\r\nexit $status\r\n<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Accede a m\u00e1s de 300 scripts en el Dojo de NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Obt\u00e9n acceso<\/a><\/p>\n<\/div>\n<h2>An\u00e1lisis del script: c\u00f3mo funciona<\/h2>\n<p><strong>Utilizar<\/strong><strong>mdfind<\/strong><strong>y<\/strong><strong>system_profiler<\/strong><\/p>\n<p>El script emplea utilidades nativas de macOS para realizar su tarea. <strong>mdfind<\/strong>, 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\u00e1ndose \u00fanicamente en aquellos ubicados en <strong>\/Applications<\/strong> y <strong>\/Users\/&lt;username&gt; \/Applications<\/strong>.<\/p>\n<p><strong>system_profiler<\/strong>, otra utilidad de macOS, recopila informaci\u00f3n detallada sobre las aplicaciones instaladas. Cuando se utiliza con <strong>SPApplicationsDataType<\/strong>, enumera todas las aplicaciones instaladas en el equipo.<\/p>\n<h2>Filtrar resultados con grep<\/h2>\n<p>La utilidad de la l\u00ednea de comandos grep se utiliza dos veces en el script. La primera opci\u00f3n filtra la salida de <strong>system_profiler<\/strong> para encontrar rutas que empiecen por<strong> \/Applications o por \/Users\/&lt;username&gt;\/Applications<\/strong>. El segundo uso reduce estos resultados para que coincidan con el nombre exacto de la aplicaci\u00f3n especificada.<\/p>\n<h2>El potente rm<\/h2>\n<p>La desinstalaci\u00f3n 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.<\/p>\n\n<h2>Las ventajas de la automatizaci\u00f3n: por qu\u00e9 utilizar este script<\/h2>\n<h3>Ahorro de tiempo<\/h3>\n<p>Automatizaci\u00f3n es sin\u00f3nimo de ahorro de tiempo. Este script elimina el tedio de la desinstalaci\u00f3n de aplicaciones manual, lo que permite al personal inform\u00e1tico centrarse en tareas m\u00e1s cr\u00edticas.<\/p>\n<h3>Escalabilidad<\/h3>\n<p>El script puede formar parte de un esquema de automatizaci\u00f3n m\u00e1s amplio. Imag\u00ednate incorporarlo a una herramienta de gesti\u00f3n de sistemas que active remotamente este script en todos los dispositivos Mac de una red. La escalabilidad es inmensa.<\/p>\n<h3>Precisi\u00f3n<\/h3>\n<p>A diferencia de los m\u00e9todos manuales, en los que el error humano es un factor a tener en cuenta, el script est\u00e1 programado para encontrar el paquete de aplicaciones exacto, reduciendo as\u00ed las posibilidades de que se produzcan eliminaciones involuntarias o se pasen por alto.<\/p>\n<h3>Flexibilidad<\/h3>\n<p>Gracias a la posibilidad de especificar el nombre exacto de la aplicaci\u00f3n como argumento, puedes adaptar el proceso de desinstalaci\u00f3n de aplicaciones a tus necesidades espec\u00edficas. Inserta este script en otro y tendr\u00e1s una potente herramienta para desinstalar varias aplicaciones de forma secuencial.<\/p>\n<h3>Ventajas en t\u00e9rminos de cumplimiento<\/h3>\n<p>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\u00f3n del proceso de desinstalaci\u00f3n de aplicaciones garantiza que siempre se cumpla la normativa con el m\u00ednimo esfuerzo.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>NinjaOne es una <a href=\"https:\/\/www.ninjaone.com\/es\/\">plataforma de gesti\u00f3n de TI basada en la nube<\/a> que puede utilizarse para automatizar diversas tareas, incluida la desinstalaci\u00f3n de aplicaciones. Con NinjaOne, puedes crear una pol\u00edtica que ejecute el script de shell. Esta pol\u00edtica puede programarse para que se ejecute de forma recurrente o se active por un evento espec\u00edfico, como la instalaci\u00f3n de una nueva aplicaci\u00f3n.<\/p>\n<p>Aqu\u00ed tienes los pasos sobre c\u00f3mo utilizar NinjaOne para automatizar el script de desinstalaci\u00f3n de aplicaciones:<\/p>\n<ol>\n<li>Crea una pol\u00edtica en NinjaOne.<\/li>\n<li>En la pol\u00edtica, selecciona la acci\u00f3n \u00abScript\u00bb.<\/li>\n<li>Pega el script de shell en el editor de scripts.<\/li>\n<li>En la secci\u00f3n \u00abArgumentos\u00bb, especifica el nombre de la aplicaci\u00f3n que quieres desinstalar.<\/li>\n<li>Programa la pol\u00edtica para que se ejecute de forma recurrente, o act\u00edvala por un evento espec\u00edfico.<\/li>\n<\/ol>\n<p>Una vez creada la pol\u00edtica, desinstalar\u00e1 autom\u00e1ticamente la aplicaci\u00f3n 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\u00edticas de seguridad de tu organizaci\u00f3n.<\/p>\n<p>Estas son algunas ventajas adicionales de usar NinjaOne para automatizar el script de desinstalaci\u00f3n de aplicaciones:<\/p>\n<ul>\n<li>Gesti\u00f3n centralizada: NinjaOne proporciona una consola centralizada donde puedes gestionar todos tus dispositivos macOS. De esta forma, es f\u00e1cil crear e implementar pol\u00edticas, as\u00ed como hacer un seguimiento del estado de los dispositivos.<\/li>\n<li>Escalabilidad: NinjaOne puede escalarse para gestionar un gran n\u00famero de dispositivos macOS. Esto lo convierte en una buena opci\u00f3n para organizaciones con una gran infraestructura inform\u00e1tica.<\/li>\n<li>Seguridad: NinjaOne es una plataforma segura que utiliza el cifrado est\u00e1ndar de la industria para proteger tus datos. Esto ayuda a garantizar que tus scripts de desinstalaci\u00f3n de aplicaciones sean seguros y que tus datos est\u00e9n protegidos.<\/li>\n<\/ul>\n","protected":false},"author":35,"featured_media":206948,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4210],"use_cases":[4265],"class_list":["post-208617","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-macos","use_cases-configuracion-del-sistema"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub\/208617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/comments?post=208617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media\/206948"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media?parent=208617"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/operating_system?post=208617"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/use_cases?post=208617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}