Voor macOS zijn er verschillende manieren om apps te verwijderen: door ze naar de prullenbak te slepen, met een speciaal verwijderprogramma of via het Launchpad. Deze methoden missen echter vaak de efficiĂ«ntie en automatisering die nodig is voor grootschalige activiteiten in IT-omgevingen. Voor IT-professionals en Managed Service Providers (MSP’s) die een vloot van Mac-apparaten moeten beheren, wordt het gebruik van een shellscript voor dit doel de meest efficiĂ«nte en effectieve methode.
Apps op macOS verwijderen met 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
Toegang tot meer dan 300 scripts in de NinjaOne Dojo
De anatomie van het script: Hoe het werkt
Gebruiken mdfind en systeemprofiler
Het script maakt gebruik van eigen hulpprogramma’s van macOS om zijn taak uit te voeren. mdfind, een onderdeel van Spotlight, wordt in eerste instantie gebruikt om de metagegevens van bestanden op te vragen. Hierdoor kan het script een lijst samenstellen van alle applicatiebundels en zich alleen richten op de bundels die zich bevinden in /Applications en /Users/<gebruikersnaam>/Applications.
system_profiler, een ander hulpprogramma voor macOS, verzamelt gedetailleerde informatie over de geĂŻnstalleerde programma’s. Bij gebruik in combinatie met SPApplicationsDataType worden alle applicaties opgesomd die op de machine geĂŻnstalleerd zijn.
Resultaten filteren met grep
Het hulpprogramma grep wordt twee keer gebruikt in het script. Het eerste voorval filtert de uitvoer van system_profiler om paden te vinden die beginnen met /Applications of met /Users/<gebruikersnaam>/Applications. Het tweede gebruik beperkt deze resultaten tot de exacte naam van de gespecificeerde app.
De machtige rm
De eigenlijke de-installatie gebeurt met het commando rm -rf, een krachtig hulpprogramma dat bestanden en mappen verwijdert. Hier richt het zich op de applicatiebundel die door de vorige commando’s is gevonden en verwijdert het van het systeem.
De voordelen van automatisering: Waarom dit script gebruiken
Tijdbesparing
Automatisering staat synoniem voor tijdbesparing. Dit script maakt een einde aan de vervelende handmatige deĂŻnstallatie, zodat IT-personeel zich kan richten op belangrijkere taken.
Schaalbaarheid
Het script kan deel uitmaken van een uitgebreider automatiseringsschema. Stel u voor dat u het in een systeembeheertool zou verwerken die dit script op afstand activeert op alle Mac-apparaten binnen een netwerk. De schaalbaarheid is hier enorm.
Nauwkeurigheid
In tegenstelling tot handmatige methoden waarbij menselijke fouten een rol spelen, is het script geprogrammeerd om de exacte app-bundel te vinden, waardoor de kans op onbedoelde verwijderingen of overlappingen wordt verkleind.
Flexibiliteit
Met de mogelijkheid om de exacte naam van de applicatie als argument op te geven, kunt u het verwijderingsproces aanpassen aan uw specifieke behoeften. Verpak dit script in een ander script en u hebt een krachtig hulpmiddel om meerdere apps achtereenvolgens te verwijderen.
Voordelen voor naleving
In industrieën die gereguleerd zijn of strikte compliancenormen hebben, kan het niet verwijderen van niet-conforme of niet-geautoriseerde apps leiden tot boetes. Het automatiseren van het verwijderingsproces zorgt ervoor dat je altijd aan de eisen voldoet met minimale inspanningen.
Inpakken
NinjaOne is een cloudgebaseerd IT-beheerplatform dat kan worden gebruikt om verschillende taken te automatiseren, waaronder het verwijderen van apps. Met NinjaOne kunt u een beleid maken dat het shellscript uitvoert. Dit beleid kan worden ingepland om herhaaldelijk te worden uitgevoerd, of het kan worden geactiveerd door een specifieke gebeurtenis, zoals de installatie van een nieuwe app.
Hier zijn de stappen om NinjaOne te gebruiken om het app uninstall script te automatiseren:
- Maak een beleid aan in NinjaOne.
- Selecteer in het beleid de actie “Script”.
- Plak het shellscript in de scripteditor.
- Geef in het gedeelte “Argumenten” de naam op van de app die u wilt verwijderen.
- Plan het beleid zo dat het op een terugkerende basis wordt uitgevoerd, of activeer het door een specifieke gebeurtenis.
Zodra de policy is gemaakt, wordt de opgegeven app automatisch verwijderd van alle macOS-apparaten die worden beheerd door NinjaOne. Dit kan u veel tijd en moeite besparen, en het kan u helpen om ervoor te zorgen dat al uw macOS-apparaten voldoen aan het beveiligingsbeleid van uw organisatie.
Hier zijn enkele extra voordelen van het gebruik van NinjaOne om het app uninstall script te automatiseren:
- Gecentraliseerd beheer: NinjaOne biedt een gecentraliseerde console waarmee u al uw macOS-apparaten kunt beheren. Dit maakt het makkelijk om policy-regels te maken en te implementeren, en het maakt het ook makkelijker om de status van uw apparaten te volgen.
- Schaalbaarheid: NinjaOne kan worden geschaald om een groot aantal macOS-apparaten te beheren. Dit maakt het een goede keuze voor organisaties met een grote IT-infrastructuur.
- Beveiliging: NinjaOne is een veilig platform dat gebruikmaakt van encryptie volgens de industrienormen om uw gegevens te beschermen. Dit helpt ervoor te zorgen dat uw app uninstall scripts veilig zijn en dat je gegevens beschermd zijn.