Posted on 07-28-2022 12:09 PM
We have our macs setup with a local admin account and student login with their AD info and creates a mobile account. Does anyone have a script they use that works to delete all the users minus the admin account?
Posted on 07-28-2022 01:06 PM
This works for me. I have not tried it with mobile accounts.
You can manually set the age in the script or use $4 in the policy.
Set the profile paths you don't want deleted. You can add more if needed.
#!/bin/bash
AGE=## # Delete /Users/ folders inactive longer than this many days
# CHECK TO SEE IF A VALUE WAS PASSED IN PARAMETER 4 AND, IF SO, ASSIGN TO "AGE"
if [ "$4" != "" ]; then
AGE=$4
fi
KEEP=("/Users/user1" "/Users/user2" "/Users/user3")
#--End variables--
### Delete Inactive Users ###
if [[ ${UID} -ne 0 ]]; then
echo "$0 must be run as root."
exit 1
fi
USERLIST=$(/usr/bin/find /Users -type d -maxdepth 1 -mindepth 1 -not -name "." -mtime +"${AGE}")
echo "Performing inactive user cleanup"
for a in ${USERLIST}; do
if ! [[ ${KEEP[*]} =~ "$a" ]]; then
echo "Deleting inactive (over ${AGE} days) account and home directory: $a"
# delete user
/usr/bin/dscl . delete "$a" > /dev/null 2>&1
# delete home folder
/bin/rm -r "$a"
continue
else
echo "SKIPPING $a"
fi
done
echo "Cleanup complete"
exit 0
Posted on 02-13-2023 11:10 PM
What do I have to specify so that the accounts are deleted after logging out? Or what happens if I set $4 to 0?
Thanks in Advance
Robert