Een harde schijf van een Mac op afstand wissen met een Bash-script

Als IT-professional of Managed Service Provider (MSP) kan het beheren van gebruikersaccounts op een netwerk van Mac-computers een hele uitdaging zijn. Stelt u zich eens voor dat u een apparaat opnieuw moet gebruiken, uitgebreide problemen moet oplossen of ervoor moet zorgen dat gevoelige gegevens volledig worden verwijderd. Dit zijn ontmoedigende taken die een aanzienlijke hoeveelheid tijd en middelen kunnen vergen. Dit is waar het bash-script ‘Wipe a Mac Hard Drive Remotely’ bij komt kijken. Vandaag gaan wedieper in op hoe dit krachtige bash-script uw IT-activiteiten kan verbeteren. 

Introductie van het ‘Wis een Mac harde schijf op afstand’ Bash Script

Dit bash-script is niet zomaar een hulpmiddel, hetiseen krachtige oplossing die is ontworpen om enkele van de meest uitdagende situaties in IT-beheer aan te kunnen. De primaire functie? Een Mac harde schijf op afstand wissen. Maar het biedt meer dan alleen dat: biedt granulaire controle, waardoor IT-professionals bepaalde gebruikersaccounts kunnen behouden en anderekunnen verwijderen.  

#!/usr/bin/env bash
# Description: Remove all users and their data.
#
# Release Notes: Initial Release
# (c) 2023 NinjaOne
#   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: <url> <download file path> [expected md5 sum]
# <> are required
# [] are optional
# Example: https://www.nirsoft.net/utils/advancedrun.zip /tmp/advancedrun.zip
#  Downloads advancedrun.zip
# Example: https://www.nirsoft.net/utils/advancedrun.zip /tmp/advancedrun.zip 1f0913135878bb6cd30c1f3f6cf4b882
#  Downloads advancedrun.zip, verify's the provided md5 summed hash
#
# Notes: If the path doesn't exist this script will create the folders needed to place it there.
#  If you used /tmp/MyFiles/advancedrun.zip and the MyFiles folder didn't exist then it would create it.
#  The same for /tmp/MyFiles/Tools/advancedrun.zip, it would create MyFiles and Tools.
#
# To exclude users from being removed, specify each user as a parameter.
# Usage:
# [user1] [user2] ... [userN]
# Example:
# Admin HelpDesk Bob

# store arguments in a special array
args=("$@")
# get number of elements
USER_COUNT=${#args[@]}

# Print out list of user and count the number of users
EXCLUDED_USERS=("${args[*]}")
echo "User that will be excluded: ${EXCLUDED_USERS[*]}"

# List all users that should be under /Users/
USERS=("$(dscacheutil -q user | grep -A 3 -B 2 -e uid: 5'[0-9][0-9]' | grep -E "^name: " | awk '{print $2}')")
# Don't filter out user if we don't have a list to exclude
if ((0 == USER_COUNT)); then
    USER_LIST=("${USERS[@]}")
    # We have decided to not exclude any users
    # Remove the .AppleSetupDone file so that on reboot we prompt to create a new first user
    rm -rf "/var/db/.AppleSetupDone"
else
    # Filter out users that we want to exclude
    USER_LIST=()
    while IFS='' read -r line; do USER_LIST+=("$line"); done < <(echo "${USERS[@]}" "${EXCLUDED_USERS[@]}" | tr ' ' 'n' | sort | uniq -u)
fi

# Remove users from system, along with their data.
for USER in "${USER_LIST[@]}"; do
    echo "Removing user: ${USER}"
    echo "Running: dscl . -delete "/Users/${USER}""
    dscl . -delete "/Users/${USER}"
    status=$?
    # Output result
    # If status is 0 and USER is not an empty string and /Users/${USER} is a folder
    if [ $status -eq 0 ]; then
        echo "Removed ${USER} from login"
        if [ -n "${USER}" ] && [ -d "/Users/${USER}" ]; then
            # Double quote prevent spaces from breaking things,
            #  even though user names should never have spaces in them
            # ${} around a variable prevent globbing: https://tldp.org/LDP/abs/html/globbingref.html
            rm -rf "/Users/${USER}"
            rmStatus=$?
            [ $rmStatus -eq 0 ] && echo "Removed /Users/${USER}" || echo "Failed to remove /Users/${USER}"
        else
            echo "Folder /Users/${USER} is not a folder or doesn't exist"
        fi
    else
        echo "Failed to remove ${USER} from login"
    fi
done
# Wait 1 minute so we can report back
echo "Rebooting in 1 minute."
echo "If this computer doesn't reboot, manual rebooting might be needed."
shutdown -r +2
osascript -e 'tell app "System Events" to restart'

Ontdek ook: Hoe het script ‘De harde schijf van een Mac op afstand wissen’ werkt

Het script identificeert en verwijdert gebruikersaccounts op een Mac, waardoor alle bijbehorende gegevens worden verwijderd. Om dit te bereiken wordt het `dscl` commando gebruikt, een opdrachtregelhulpprogramma voor directoryservices dat onderdeel is van macOS. Met deze opdracht kunt u Directory Service-gegevens maken, lezen en beheren. 

Dit is het spannende gedeelte: U kunt gebruikersaccounts opgeven die het script moet uitsluiten van het wissen. Dit betekent dat u uw admin- of helpdeskaccounts intact kunt houden en alle andere accounts kunt verwijderen, een functie die cruciaal is als u een harde schijf van een Mac op afstand wilt wissen en toch de controle over het systeem wilt behouden. 

Bovendien zorgt het script voor het bestand `.AppleSetupDone`. Wanneer dit bestand wordt verwijderd, activeert de Mac het installatieproces om een nieuwe gebruiker aan te maken bij de volgende keer opstarten. Dit is een essentiële stap in het herwinnen van de controle over het systeem na het wissen. 

Tenslotte voert het script een reboot commando uit, waardoor het systeem opnieuw opstart en alle gemaakte wijzigingen worden verzegeld. 

Potentiële toepassingen

Dit script bevat een grote hoeveelheid aan toepassingen, waardoor het een essentieel hulpmiddel is in het arsenaal van een IT-professional of MSP. Hier zijn enkele scenario’s waarin dit script uitblinkt: 

  1. Hergebruik van apparaten: Zet een machine snel terug naar de oorspronkelijke instelling, perfect voor wanneer een apparaat aan een nieuwe gebruiker moet worden toegewezen.
  2. Problemen oplossen: In situaties waar uitgebreide problemen een gebruikersprofiel onstabiel hebben gemaakt, kan een volledige verwijdering de snelste oplossing zijn.
  3. Gegevensbeveiliging: Wanneer het dienstverband van een gebruiker eindigt of een apparaat uit gebruik wordt genomen, kan het script ervoor zorgen dat gevoelige gegevens niet in verkeerde handen vallen door gebruikersgegevens volledig te verwijderen.

Implicaties voor de veiligheid: Gegevens beveiligen

Hoe krachtig het script ook is, het is cruciaal om rekening te houden met de gevolgen voor de beveiliging. Het script is ontworpen om gegevens te verwijderen, dus als het eenmaal is uitgevoerd, zijn de gegevens voorgoed verdwenen. Daarom is het noodzakelijk om altijd een back-up te hebben van alle noodzakelijke gegevens voordat het script wordt uitgevoerd. Onthoud altijd de gouden regel in IT: gegevens waarvan geen back-up is gemaakt, zijn gegevens die als verloren worden beschouwd. 

Bovendien mag deze tool alleen op verantwoorde wijze en binnen de grenzen van uw rechten worden gebruikt. Ongeoorloofd gebruik van dergelijke tools kan leiden tot ernstige juridische gevolgen. 

Slotbeschouwingen:

In de snelle wereld van IT zijn tools als dit script niet alleen handig, ze zijn een noodzaak. Met dit bash-script kunt u een harde schijf van een Mac op afstand wissen, wat tijd bespaart en zorgt voor een robuuste gegevensbeveiliging. In het grote geheel van IT-beheer kunnen middelen als deze een wereld van verschil maken.  

Onthoud dat autoriteit grote verantwoordelijkheid met zich meebrengt. Zorg er altijd voor dat u de benodigde machtigingen en back-ups hebt voordat u bewerkingen uitvoert die kunnen leiden tot gegevensverlies. De ‘Wipe a Mac Hard Drive Remotely’ is een krachtig hulpmiddel, maar het moet altijd zorgvuldig worden gebruikt. 

Wanneer u Mac-gebruikersaccounts op afstand beheert, kan NinjaOne een hulpmiddel van onschatbare waarde zijn. Als een cloudgebaseerd platform voor bewaking en beheer op afstand ondersteunt NinjaOne naadloos scripts zoals ‘De harde schijf van een Mac op afstand wissen’. Het maakt niet alleen efficiënte uitvoering van het script op veel apparaten mogelijk, maar biedt ook robuuste functies voor tracking en rapportage. Dit betekent dat IT-professionals en MSP’s het script kunnen uitvoeren, de voortgang kunnen bewaken en de resultaten kunnen documenteren, allemaal binnen één enkel platform. NinjaOne kan het gemak en de effectiviteit van het gebruik van scripts zoals dit script in grootschalige IT-omgevingen aanzienlijk verbeteren

U vraagt zich misschien af: “Hoe zit het met het wissen van een Windows harde schijf?” Wij hebben dit voor u op een rijtje gezet. Bekijk onze blogpost over “Een Windows harde schijf wissen met PowerShell“.

Probeer dit script op NinjaOne.

Volgende stappen

Het opbouwen van een efficiënt en effectief IT-team vereist een gecentraliseerde oplossing die fungeert als uw kerndienstleveringstool. NinjaOne stelt IT-teams in staat om al hun apparaten te monitoren, beheren, beveiligen en ondersteunen, waar ze ook zijn, zonder de noodzaak van complexe on-premises infrastructuur.

Leer meer over NinjaOne Endpoint Management, bekijk een live rondleiding, of start uw gratis trial van het NinjaOne-platform

Categorieën:

Dit vindt u misschien ook leuk

Bekijk een demo×
×

Zie NinjaOne in actie!

Door dit formulier in te dienen geef ik aan akkoord te gaan met het privacybeleid van NinjaOne.

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).