├── .gitattributes ├── DEP-DEPNotify-assignFacstaff ├── JNUC2018 Presentation - Leveraging DEPNotify and Jamf Pro.pdf ├── README.md ├── com.uarts.DEPprovisioning ├── com.uarts.launch.plist ├── dep-postinstall.sh ├── install-CHECKOUT-software ├── install-FACSTAFF-software ├── install-KIOSK-software ├── install-MUSIC-software ├── install-OFFICE-software └── install-PUBLIC-software /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /DEP-DEPNotify-assignFacstaff: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # 4 | # Created by John Mahlman, University of the Arts Philadelphia (jmahlman@uarts.edu) 5 | # Name: DEP-DEPNotify-assignFacstaff 6 | # 7 | # Purpose: Will populate the server with appropriate username and rename the machine 8 | # at deployment time. Run AFTER DEPNotify collects information. 9 | # 10 | # Changelog 11 | # 12 | # 8/22/18 - New script to go with single DEPprovisioning instance. 13 | # 14 | # 15 | # Get the JSS URL from the Mac's jamf plist file 16 | if [ -e "/Library/Preferences/com.jamfsoftware.jamf.plist" ]; then 17 | JSSURL=$(defaults read /Library/Preferences/com.jamfsoftware.jamf.plist jss_url) 18 | else 19 | echo "No JSS server set. Exiting..." 20 | exit 1 21 | fi 22 | 23 | # Define API username and password information & JSS Group name from passed parameters 24 | if [ ! -z "$4" ]; then 25 | APIUSER="$4" 26 | else 27 | echo "No value passed to $4 for api username. Exiting..." 28 | exit 1 29 | fi 30 | 31 | if [ ! -z "$5" ]; then 32 | APIPASS="$5" 33 | else 34 | echo "No value passed to $5 for api password. Exiting..." 35 | exit 1 36 | fi 37 | 38 | SERIAL=$(ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformSerialNumber/{print $4}') 39 | MODEL=$(system_profiler SPHardwareDataType | awk '/Model Identifier/ {print $3}') 40 | if echo "$MODEL" | grep -q "MacBookAir" 41 | then 42 | PREFIX="MBA" 43 | elif echo "$MODEL" | grep -q "MacBookPro" 44 | then 45 | PREFIX="MBP" 46 | else 47 | echo "No model identifier found." 48 | PREFIX="" 49 | fi 50 | DNPLIST=/var/tmp/DEPNotify.plist 51 | USERNAME=$(/usr/libexec/plistbuddy $DNPLIST -c "print 'Computer or User Name'" | tr [A-Z] [a-z]) 52 | COMPUTERNAME="${USERNAME}-${PREFIX}" 53 | COMPUTERNAME=`echo ${COMPUTERNAME:0:15}` 54 | 55 | # Update User in JSS 56 | cat << EOF > /var/tmp/tempInfo.xml 57 | 58 | 59 | $USERNAME 60 | 61 | 62 | EOF 63 | ## Upload the xml file 64 | /usr/bin/curl -sfku "$APIUSER":"$APIPASS" "$JSSURL"JSSResource/computers/serialnumber/"$SERIAL" -H "Content-type: text/xml" -T /var/tmp/tempInfo.xml -X PUT 65 | rm -Rf /var/tmp/tempInfo.xml 66 | 67 | # rename the computer 68 | /usr/local/jamf/bin/jamf setComputerName -name "${COMPUTERNAME}" 69 | -------------------------------------------------------------------------------- /JNUC2018 Presentation - Leveraging DEPNotify and Jamf Pro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmahlman/DEPNotify-automated/c941ab5e3db9874656da6f056d5c2b50a34acc0c/JNUC2018 Presentation - Leveraging DEPNotify and Jamf Pro.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPNotify-Automated 2 | 3 | At the moment, the provisioning script is tested and working but is not being used in production yet. 4 | I will be creating actual documentation on how to set this up and what to use once I finish writing everything. 5 | -------------------------------------------------------------------------------- /com.uarts.DEPprovisioning: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # 4 | # Created by John Mahlman, University of the Arts Philadelphia (jmahlman@uarts.edu) 5 | # Name: com.uarts.DEPprovisioning 6 | # 7 | # Purpose: Install and run DEPNotify at enrollment time and do some final touches 8 | # for public machines. If the machine is already in the jss it will automatically continue 9 | # and complete setup. If the machine isn't in the jss or it's a FACSATFF or OFFICE machine, 10 | # it will ask the tech to assign it a name and cohort. It also checks for software updates 11 | # and installs them if found. 12 | # This gets put in the composer package along with DEPNotofy, com.uarts.launch.plist, 13 | # and any supporting files. Then add the post install script to the package. 14 | # 15 | # 16 | # Changelog 17 | # 18 | # 10/17/18- Removed some curly braces that I think were causing issues. 19 | # 9/10/18 - Fixed some format issues and an if-statement that was incorrect. Oh, and spell check :P 20 | # 8/24/18 - Removed an entire section of "MainText" because it was redundant. 21 | # 8/23/18 - Moved the caffeinate command because it obviously wasn't running if a machine already existed. Oops. 22 | # 8/22/18 - New script to merge all DEPprovisioning instances 23 | # 24 | # Get the JSS URL from the Mac's jamf plist file, we'll use this to check if the machine is already in the jss 25 | if [ -e "/Library/Preferences/com.jamfsoftware.jamf.plist" ]; then 26 | JSSURL=$(defaults read /Library/Preferences/com.jamfsoftware.jamf.plist jss_url) 27 | else 28 | echo "No JSS server set. Exiting..." 29 | exit 1 30 | fi 31 | # I don't like hardcoding passwords but since we're putting this locally on the machine... 32 | APIUSER="USERNAME" 33 | APIPASS="PASSWORD" 34 | 35 | JAMFBIN=/usr/local/bin/jamf 36 | OSVERSION=$(sw_vers -productVersion) 37 | serial=$(ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformSerialNumber/{print $4}') 38 | # get all EAs of this machine from the JSS and break down the ones we need (If they're in the JSS) 39 | eaxml=$(curl "$JSSURL"JSSResource/computers/serialnumber/"$serial"/subset/extension_attributes -u "$APIUSER":"$APIPASS" -H "Accept: text/xml") 40 | jssMacName=$(echo "$eaxml" | xpath '//extension_attribute[name="New Computer Name"' | awk -F'|' '{print $2}') 41 | jssCohort=$(echo "$eaxml" | xpath '//extension_attribute[name="New Cohort"' | awk -F'|' '{print $2}') 42 | # Get the logged in user 43 | CURRENTUSER=$(/usr/bin/python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "\n");') 44 | # Setup Done File 45 | setupDone="/var/db/receipts/com.uarts.provisioning.done.bom" 46 | # DEPNotify Log file 47 | DNLOG=/var/tmp/depnotify.log 48 | 49 | # If the receipt is found, DEP already ran so let's remove this script and 50 | # the launch Daemon. This helps if someone re-enrolls a machine for some reason. 51 | if [ -f "${setupDone}" ]; then 52 | # Remove the Launch Daemon 53 | /bin/rm -Rf /Library/LaunchDaemons/com.uarts.launch.plist 54 | # Remove this script 55 | /bin/rm -- "$0" 56 | exit 0 57 | fi 58 | 59 | # This is where we wait until a user is completely logged in 60 | if pgrep -x "Finder" \ 61 | && pgrep -x "Dock" \ 62 | && [ "$CURRENTUSER" != "_mbsetupuser" ] \ 63 | && [ ! -f "${setupDone}" ]; then 64 | 65 | # Let's caffinate the mac because this can take long 66 | /usr/bin/caffeinate -d -i -m -u -s & 67 | caffeinatepid=$! 68 | 69 | # Kill any installer process running 70 | killall Installer 71 | # Wait a few seconds 72 | sleep 5 73 | 74 | # If the computer is NOT in the jss or if it's an OFFICE or FACSTAFF machine 75 | # we want to get user input because most likely this is being reprovisioned. 76 | 77 | if [[ "$jssMacName" == "" ]] || [[ "$jssCohort" == "" ]] || [[ "$jssCohort" == "OFFICE" ]] || [[ "$jssCohort" == "FACSTAFF" ]]; then 78 | # Configure DEPNotify registration window 79 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify PathToPlistFile /var/tmp/ 80 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify RegisterMainTitle "Setup..." 81 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify RegisterButtonLabel Setup 82 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UITextFieldUpperPlaceholder "T1337-M01 or uname" 83 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UITextFieldUpperLabel "Computer or User Name" 84 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UITextFieldLowerPlaceholder "UA42DSK1337" 85 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UITextFieldLowerLabel "Asset Tag" 86 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UIPopUpMenuUpper -array 'Public' 'Facstaff' 'Kiosk' 'Music' 'Office' 'Checkout' 87 | sudo -u "$CURRENTUSER" defaults write menu.nomad.DEPNotify UIPopUpMenuUpperLabel "Cohort" 88 | 89 | # Configure DEPNotify starting window 90 | echo "Command: MainTitle: New Mac Setup" >> $DNLOG 91 | echo "Command: Image: /var/tmp/uarts-logo.png" >> $DNLOG 92 | echo "Command: WindowStyle: NotMovable" >> $DNLOG 93 | echo "Command: DeterminateManual: 5" >> $DNLOG 94 | 95 | # Open DepNotify fullscreen 96 | sudo -u "$CURRENTUSER" /var/tmp/DEPNotify.app/Contents/MacOS/DEPNotify -fullScreen & 97 | echo "Command: MainText: Make sure this Mac is plugged into a wired network connection before beginning. \n \n \ 98 | If this is a FACSTAFF machine, enter the username in the \"Computer or User Name\" field." >> $DNLOG 99 | 100 | # get user input... 101 | echo "Command: ContinueButtonRegister: Begin" >> $DNLOG 102 | echo "Status: Please click the button below..." >> $DNLOG 103 | DNPLIST=/var/tmp/DEPNotify.plist 104 | # hold here until the user enters something 105 | while : ; do 106 | [[ -f $DNPLIST ]] && break 107 | sleep 1 108 | done 109 | 110 | # Let's read the user data into some variables... 111 | computerUserName=$(/usr/libexec/plistbuddy $DNPLIST -c "print 'Computer or User Name'" | tr [a-z] [A-Z]) 112 | cohort=$(/usr/libexec/plistbuddy $DNPLIST -c "print 'Cohort'" | tr [a-z] [A-Z]) 113 | ASSETTAG=$(/usr/libexec/plistbuddy $DNPLIST -c "print 'Asset Tag'" | tr [a-z] [A-Z]) 114 | # Let's set the asset tag in the JSS 115 | cat << EOF > /var/tmp/assetTag.xml 116 | 117 | 118 | $ASSETTAG 119 | 120 | 121 | EOF 122 | # Upload the asset tag xml file 123 | /usr/bin/curl -sfku "$APIUSER":"$APIPASS" "$JSSURL"JSSResource/computers/serialnumber/"$serial" -H "Content-type: text/xml" -T /var/tmp/assetTag.xml -X PUT 124 | 125 | else 126 | # This is if the machine is already found on the server 127 | # Set variables for Computer Name and Role to those from the receipts 128 | computerUserName=$jssMacName 129 | cohort=$jssCohort 130 | 131 | # Launch DEPNotify 132 | echo "Command: Image: /var/tmp/uarts-logo.png" >> $DNLOG 133 | echo "Command: MainTitle: Setting things up..." >> $DNLOG 134 | echo "Command: WindowStyle: NotMovable" >> $DNLOG 135 | echo "Command: DeterminateManual: 4" >> $DNLOG 136 | sudo -u "$CURRENTUSER" /var/tmp/DEPNotify.app/Contents/MacOS/DEPNotify -fullScreen & 137 | echo "Status: Please wait..." >> $DNLOG 138 | fi # End of "is this a known or unknown machine" section..this is the merge 139 | 140 | # Carry on with the setup... 141 | # This is where we do everything else... 142 | 143 | # Since we have a different naming convention for FACSTAFF machines and we need to set the "User" info in the jss 144 | # we're going to break down the naming of the system by cohort here. 145 | echo "Command: DeterminateManualStep:" >> $DNLOG 146 | if [[ "$cohort" == "FACSTAFF" ]]; then 147 | echo "Status: Assigning and renaming device..." >> $DNLOG 148 | $JAMFBIN policy -event enroll-assignFacstaff # This runs the script 'DEP-DEPNotify-assignFacstaff.sh' 149 | userName=$(/usr/libexec/plistbuddy $DNPLIST -c "print 'Computer or User Name'" | tr [A-Z] [a-z]) 150 | echo "Status: Creating local user account with password as username..." >> $DNLOG 151 | $JAMFBIN createAccount -username $userName -realname $userName -password $userName -admin 152 | else 153 | echo "Status: Setting computer name..." >> $DNLOG 154 | $JAMFBIN setComputerName -name "$computerUserName" 155 | fi 156 | 157 | # The firstRun scripts policies are were we set our receipts on the machines, no need to do them in this script. 158 | echo "Command: MainTitle: $computerUserName" >> $DNLOG 159 | echo "Status: Running FirstRun scripts and installing packages..." >> $DNLOG 160 | echo "Command: DeterminateManualStep:" >> $DNLOG 161 | echo "Command: MainText: This Mac is installing all necessary software and running some installation scripts. \ 162 | Please do not interrupt this process. This may take a few hours to complete; the machine restart \ 163 | automatically when it's finished. \n \n Cohort: $cohort \n \n macOS Version: $OSVERSION" >> $DNLOG 164 | 165 | if [[ "$cohort" == "CHECKOUT" ]] || [[ "$cohort" == "OFFICE" ]] || [[ "$cohort" == "FACSTAFF" ]] \ 166 | || [[ "$cohort" == "MUSIC" ]] || [[ "$cohort" == "KIOSK" ]]; then 167 | $JAMFBIN policy -event install-"$cohort"-software 168 | $JAMFBIN policy -event enroll-firstRun"$cohort"-scripts 169 | else 170 | $JAMFBIN policy -event install-PUBLIC-software 171 | $JAMFBIN policy -event enroll-firstRunPUBLIC-scripts 172 | fi 173 | 174 | echo "Command: DeterminateManualStep:" >> $DNLOG 175 | echo "Status: Updating Inventory..." >> $DNLOG 176 | $JAMFBIN recon 177 | 178 | # Run Software updates, Make sure you have the SUS set to an internal one in your first run. You can also hardcode it here. 179 | echo "Command: DeterminateManualStep:" >> $DNLOG 180 | echo "Status: Checking for and installing any OS updates..." >> $DNLOG 181 | /usr/sbin/softwareupdate -ia 182 | 183 | echo "Command: DeterminateManualStep:" >> $DNLOG 184 | echo "Status: Cleaning up files and restarting system..." >> $DNLOG 185 | kill $caffeinatepid 186 | echo "Command: RestartNow:" >> $DNLOG 187 | 188 | # Remove DEPNotify and the logs 189 | /bin/rm -Rf /var/tmp/DEPNotify.app 190 | /bin/rm -Rf /var/tmp/uarts-logo.png 191 | /bin/rm -Rf $DNLOG 192 | /bin/rm -Rf $DNPLIST 193 | 194 | # Wait a few seconds 195 | sleep 5 196 | # Remove the autologin user password file so it doesn't login again 197 | /bin/rm -Rf /etc/kcpassword 198 | # Create a bom file that allow this script to stop launching DEPNotify after done 199 | /usr/bin/touch /var/db/receipts/com.uarts.provisioning.done.bom 200 | # Remove the Launch Daemon 201 | /bin/rm -Rf /Library/LaunchDaemons/com.uarts.launch.plist 202 | # Remove this script 203 | /bin/rm -- "$0" 204 | 205 | fi 206 | exit 0 207 | -------------------------------------------------------------------------------- /com.uarts.launch.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GroupName 6 | wheel 7 | InitGroups 8 | 9 | Label 10 | com.uarts.launch 11 | Program 12 | /var/tmp/com.uarts.DEPprovisioning 13 | RunAtLoad 14 | 15 | StartInterval 16 | 10 17 | UserName 18 | root 19 | StandardErrorPath 20 | /var/tmp/depnotify.launch.err 21 | StandardOutPath 22 | /var/tmp/depnotify.launch.out 23 | 24 | 25 | -------------------------------------------------------------------------------- /dep-postinstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ## postinstall 3 | 4 | echo "disable auto updates ASAP" >> /var/log/jamf.log 5 | # Disable Software Updates during imaging 6 | /usr/sbin/softwareupdate --schedule off 7 | 8 | echo "set power management" >> /var/log/jamf.log 9 | #set power management settings 10 | pmset -c displaysleep 60 disksleep 0 sleep 0 womp 0 ring 0 autorestart 0 halfdim 1 sms 1 11 | pmset -b displaysleep 5 disksleep 1 sleep 10 womp 0 ring 0 autorestart 0 halfdim 1 sms 1 12 | 13 | ## Make the main script executable 14 | echo "setting main script permissions" >> /var/log/jamf.log 15 | chmod a+x /var/tmp/com.uarts.DEPprovisioning 16 | 17 | ## Set permissions and ownership for launch daemon 18 | echo "set LaunchDaemon permissions" >> /var/log/jamf.log 19 | chmod 644 /Library/LaunchDaemons/com.uarts.launch.plist 20 | chown root:wheel /Library/LaunchDaemons/com.uarts.launch.plist 21 | 22 | ## Load launch daemon into the Launchd system 23 | echo "load LaunchDaemon" >> /var/log/jamf.log 24 | launchctl load /Library/LaunchDaemons/com.uarts.launch.plist 25 | 26 | # We have to wait for the login window to show because the machine will reboot... 27 | # so let's start this after the setup assistant is done. 28 | CURRENTUSER=$(/usr/bin/python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "\n");') 29 | while [[ "$CURRENTUSER" == "_mbsetupuser" ]]; do 30 | sleep 5 31 | CURRENTUSER=$(/usr/bin/python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "\n");') 32 | done 33 | 34 | echo "add auto-login user" >> /var/log/jamf.log 35 | /usr/local/jamf/bin/jamf policy -event dep-autologin 36 | 37 | echo "Rebooting!" >> /var/log/jamf.log 38 | /sbin/shutdown -r +1 & 39 | 40 | # Wait a few seconds 41 | sleep 5 42 | 43 | exit 0 ## Success 44 | exit 1 ## Failure 45 | -------------------------------------------------------------------------------- /install-CHECKOUT-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install CHECKOUT software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-mobile" 13 | "Installing Microsoft Office 2016,install-office2016" 14 | "Setting Office 2016 Prefs,install-office2016-prefs" 15 | "Installing Pharos,install-pharos" 16 | "Installing Symantec,install-SEP-academic" 17 | "Installing Xerox Drivers,install-xerox-drivers" 18 | "Installing iWork,install-iwork" 19 | "Installing Chrome,install-chrome" 20 | "Installing Adobe Acrobat,install-acrobat" 21 | "Installing Flash,install-flash" 22 | "Installing PUBLIC Utilities,install-public-utils" 23 | "Installing Pulse Secure VPN,install-pulse" 24 | "Installing Microsoft Remote Desktop,install-microsoft-rd" 25 | ) 26 | 27 | # Loop to run policies 28 | for POLICY in "${POLICY_ARRAY[@]}"; do 29 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 30 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 31 | done 32 | 33 | # don't update inventory, the provisioning script will do that for you! 34 | -------------------------------------------------------------------------------- /install-FACSTAFF-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install FACSTAFF software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-mobile" 13 | "Installing Microsoft Office 2016,install-office2016" 14 | "Setting Office 2016 Prefs,install-office2016-prefs" 15 | "Installing Pharos,install-pharos" 16 | "Installing Symantec,install-SEP-facstaff" 17 | "Installing Xerox Drivers,install-xerox-drivers" 18 | "Installing Chrome,install-chrome" 19 | "Installing Adobe Acrobat,install-acrobat" 20 | "Installing Flash,install-flash" 21 | "Installing Pulse Secure VPN,install-pulse" 22 | "Installing Microsoft Remote Desktop,install-microsoft-rd" 23 | ) 24 | 25 | # Loop to run policies 26 | for POLICY in "${POLICY_ARRAY[@]}"; do 27 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 28 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 29 | done 30 | 31 | # don't update inventory, the provisioning script will do that for you! 32 | -------------------------------------------------------------------------------- /install-KIOSK-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install KIOSK software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-mobile" 13 | "Installing Pharos,install-pharos" 14 | "Installing Symantec,install-SEP-facstaff" 15 | "Installing Xerox Drivers,install-xerox-drivers" 16 | "Installing Chrome,install-chrome" 17 | "Installing Adobe Acrobat,install-acrobat" 18 | "Installing Flash,install-flash" 19 | "Installing OIV,install-oiv" 20 | ) 21 | 22 | # Loop to run policies 23 | for POLICY in "${POLICY_ARRAY[@]}"; do 24 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 25 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 26 | done 27 | 28 | # don't update inventory, the provisioning script will do that for you! 29 | -------------------------------------------------------------------------------- /install-MUSIC-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install MUSIC software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-desktop" 13 | "Installing Pharos,install-pharos" 14 | "Installing Symantec,install-SEP-academic" 15 | "Installing Xerox Drivers,install-xerox-drivers" 16 | "Installing GarageBand,install-garageband" 17 | "Installing iMovie,install-imovie" 18 | "Installing Final Cut Pro X,install-finalcutapps" 19 | "Installing VLC,install-vlc" 20 | "Installing Chrome,install-chrome" 21 | "Installing Flash,install-flash" 22 | "Installing Max,install-max" 23 | "Installing PUBLIC Utilities,install-public-utils" 24 | "Binding to Active Directory,install-bind-to-ad" 25 | ) 26 | 27 | # Loop to run policies 28 | for POLICY in "${POLICY_ARRAY[@]}"; do 29 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 30 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 31 | done 32 | 33 | # don't update inventory, the provisioning script will do that for you! 34 | -------------------------------------------------------------------------------- /install-OFFICE-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install OFFICE software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-desktop" 13 | "Installing Microsoft Office 2016,install-office2016" 14 | "Setting Office 2016 Prefs,install-office2016-prefs" 15 | "Installing Pharos,install-pharos" 16 | "Installing Symantec,install-SEP-office" 17 | "Installing Xerox Drivers,install-xerox-drivers" 18 | "Installing iWork,install-iwork" 19 | "Installing Chrome,install-chrome" 20 | "Installing OIV,install-oiv" 21 | "Installing Adobe Acrobat,install-acrobat" 22 | "Installing Flash,install-flash" 23 | "Installing Fetch,install-fetch" 24 | "Installing Firefox ESR,install-firefox-esr" 25 | "Installing OFFICE Utilities,install-office-utils" 26 | ) 27 | 28 | # Loop to run policies 29 | for POLICY in "${POLICY_ARRAY[@]}"; do 30 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 31 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 32 | done 33 | 34 | # don't update inventory, the provisioning script will do that for you! 35 | -------------------------------------------------------------------------------- /install-PUBLIC-software: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # script to install PUBLIC software with an array. Taken from jamf professional services script 4 | # which can be found here: https://github.com/jamfprofessionalservices/DEP-Notify/blob/master/depNotify.sh 5 | 6 | JAMFBIN=/usr/local/bin/jamf 7 | DNLOG=/var/tmp/depnotify.log 8 | 9 | # The policy array must be formatted "Progress Bar text,customTrigger". These will be 10 | # run in order as they appear below. 11 | POLICY_ARRAY=( 12 | "Installing KeyClient,install-keyclient-desktop" 13 | "Installing Microsoft Office 2016,install-office2016" 14 | "Setting Office 2016 Prefs,install-office2016-prefs" 15 | "Installing Pharos,install-pharos" 16 | "Installing Symantec,install-SEP-academic" 17 | "Installing Xerox Drivers,install-xerox-drivers" 18 | "Installing iWork,install-iwork" 19 | "Installing GarageBand,install-garageband" 20 | "Installing iMovie,install-imovie" 21 | "Installing Final Cut Pro X,install-finalcutapps" 22 | "Installing Corel Painter 2017,install-corel2017" 23 | "Installing VLC,install-vlc" 24 | "Installing Maya,install-maya2018" 25 | "Installing Mudbox,install-mudbox2018" 26 | "Installing Chrome,install-chrome" 27 | "Installing Rhino,install-rhino" 28 | "Installing OIV,install-oiv" 29 | "Installing Adobe CC,install-adobeCC-2018" 30 | "Installing Adobe Acrobat,install-acrobat" 31 | "Installing Flash,install-flash" 32 | "Installing Fetch,install-fetch" 33 | "Installing BBEdit,install-bbedit" 34 | "Installing Max,install-max" 35 | "Installing Poser,install-poser" 36 | "Installing PUBLIC Utilities,install-public-utils" 37 | "Binding to Active Directory,install-bind-to-ad" 38 | ) 39 | 40 | # Loop to run policies 41 | for POLICY in "${POLICY_ARRAY[@]}"; do 42 | echo "Status: $(echo "$POLICY" | cut -d ',' -f1)" >> "$DNLOG" 43 | "$JAMFBIN" policy -event "$(echo "$POLICY" | cut -d ',' -f2)" 44 | done 45 | 46 | # don't update inventory, the provisioning script will do that for you! 47 | --------------------------------------------------------------------------------