Skip to content

Instantly share code, notes, and snippets.

View TheRossRoss's full-sized avatar

TheRossRoss

View GitHub Profile
@talkingmoose
talkingmoose / RemoveApplication.zsh
Created May 27, 2022 15:39
Remove a drag-and-drop application before performing another task such as a software update.
#!/bin/zsh
<<ABOUT_THIS_SCRIPT
-----------------------------------------------------------------------
Written by:William Smith
Professional Services Engineer
Jamf
bill@talkingmoose.net
https://gist.github.com/bd4abab222685c4e3781967a4d0491f6
@talkingmoose
talkingmoose / RemoveUsersFromAdmin.zsh
Last active October 24, 2022 21:01
Removes all users with UIDs greater than 500 from local admin group.
#!/bin/zsh
# these local accounts will not be removed from admins
# one account name per line; keep the beginning and closing quotes
exceptionsList="talkingmoose
bill.smith
oszein
jamfadmin"
@talkingmoose
talkingmoose / Eraseinstall or Upgrade macOS.zsh
Last active October 24, 2022 21:09
Purpose: Creates a launch daemon and script on target Macs to erase and install or upgrade macOS. Allows the installing policy to finish in a few secconds and report complete rather than never finishing at all.
#!/bin/zsh
:<<ABOUT_THIS_SCRIPT
-------------------------------------------------------------------------------
Alert! This script will only work with Intel Macs. There is no secure automated
locally-initiated way to trigger an update or upgrade for Apple Silicon Macs.
Those require an MDM command be sent from their Mobile Device Management (MDM)
server.
@talkingmoose
talkingmoose / Download macOS Monterey in Background.zsh
Last active October 6, 2022 12:04
Creates a launch daemon and script on target Macs in a Jamf Pro policy to download the specified macOS installer and update Jamf Pro's inventory. This is preferable to running a command directlt in policy, which can take 30+ minutes to complete, preventing other policies from running. The script self destructs once it sees the installer in the A…
#!/bin/zsh
:<<ABOUT_THIS_SCRIPT
-------------------------------------------------------------------------------
Written by:William Smith
Partner Program Manager
Jamf
bill@talkingmoose.net
https://gist.github.com/6b78ba3fc4a6623dbc8225e2df38d570
@talkingmoose
talkingmoose / Monterey-compatible Macs (regex).txt
Last active February 5, 2023 18:45
Regex looks for all Mac models compatible with macOS Monterey. May not be up-to-date with newly released models.
Model information: https://support.apple.com/en-us/HT212551
Published Date: June 24, 2022
Verification: https://regex101.com/r/OozSRv/9
1) Regex matches major identifier — Matches major model identifier numbers based on Apple's knowledge base article (more accurate):
(^Mac1[34]|MacBook(10|9)|MacBookAir(10|[7-9])|Macmini[7-9]|MacPro[6-7]|iMacPro1|iMac(1[6-9]|2[0-2])),\d|MacBookPro1(1,[45]|[2-8],\d)
2) Regex matches current or higher — Matches model identifiers based on Apple's knowledge base article and may match higher versions before this regex is updated (more future-proof).
@shurkin18
shurkin18 / installbrewthenloadjq.sh
Last active May 23, 2023 11:55
Installs brew via script, then installs/loads jq JSON parser
###########################################################################################
# There is also an alternative way of running jq JSON parser, without installing the whole brew suite
# You can download the jq binary here: https://techstoreon.com/files/jq-osx-amd64
# Pre-load it to each mac via the policy and store it somewhere (in /var for example) and just point your script to it
# every time jq needs to be used
###########################################################################################
#!/bin/bash
# Checks if jq is not already present, and if not - installs brew via script, then installs/loads jq JSON parser
#
@shurkin18
shurkin18 / druvainsyncactivationstatus.sh
Last active October 3, 2023 21:45
Checks if Druva inSync client is Active using UAPI and returns the status which can be used as JSS Computer Extension Attribute
#!/bin/bash
##########################################################################################################################################################################
##########################################################################################################################################################################
# Please note: this script requires jq JSON parser to be installed on the mac, otherwise the script won't work
# You can install jq JSON parser using brew by running this script, which will install brew and jq automatically (non-interactive):
# https://gist.github.com/shurkin18/62ec34967794a32f9d63615db881ab5c
#
# There is also an alternative way of running jq JSON parser, without installing the whole brew suite
# You can download the jq binary here: https://techstoreon.com/files/jq-osx-amd64
@talkingmoose
talkingmoose / Create User Account.zsh
Last active April 3, 2024 10:01
Simple script to create a new macOS user account. Will not provide a SecureToken.
#!/bin/zsh
# new user account details
username="lapsadmin"
displayName="LAPS Admin"
password="P@55w0rd"
admin="yes"
hidden="yes"
# determine next available UID
@talkingmoose
talkingmoose / Report admin status.bash
Created August 26, 2020 22:29
Report if any macOS user accounts with admin privileges exist.
#!/bin/bash
# list all users with UIDs above 501
usersList=$( /usr/bin/dscl . -list /Users uid | /usr/bin/awk '$2 >= 501 { print $1 }' )
# test for admin
while IFS= read aUser
do
/usr/sbin/dseditgroup -o checkmember -u "$aUser" admin 1>/dev/null
@talkingmoose
talkingmoose / "Early Adopter" extension attribute
Last active November 21, 2023 22:31
Self Service policy to enable end users to enroll their Macs into an "Early Adopter Program" or any other type of enrollment. Create a Smart Computer Group to identify early adopters and scope policies.
#!/bin/zsh
enrollmentStatus=$( /usr/bin/defaults read '/Library/Preferences/EarlyAdopter.plist' Enrolled )
echo "<result>$enrollmentStatus</result>"