2 weeks ago
How do you all keep your Mac Clients on the latest MacOS Version? Is there a way to force an Upgrade? Because the "new" Software Updates Option doesnt do anything for us. When we try to trigger updates on the Clients nothing happens.
Solved! Go to Solution.
2 weeks ago
read / test / deploy https://github.com/macadmins/nudge
its pretty simple.. deploy the pkg.. setup the config profile (less is more) and job done..
2 weeks ago
For us, the scheduled install option has the highest success rate for updating devices. We also have a "nudge" like notification for users who fall through the cracks of the mechanism.
2 weeks ago
You mean the scheduled install Version within the Software Updates function? That is unfortunately unavailable to us, as we have a on premise installation.
How do you do the "nudge" notification for your users?
2 weeks ago
read / test / deploy https://github.com/macadmins/nudge
its pretty simple.. deploy the pkg.. setup the config profile (less is more) and job done..
2 weeks ago
This seems to me like the best solution for my use case. I will try it. Thank you!
2 weeks ago
you can also try using https://github.com/Macjutsu/super
2 weeks ago
I do my best to avoid installing additional software to complete tasks, so if I can rely on native tools and the Jamf binaries, I will. I have as script that performs Nudge-like functions without installing tools. The script does require some updates occasionally as Apple releases new OS's.
#!/bin/bash
# Update Notification.sh
#
#
# Created by Ed C on 11/22/22.
# Edited to correct the date variable (line 11).
# Edited to add new OS names - 6.18.2024
# Edited to correct path for Software Updates prefs pane - 12.10.2024
#
# Get Version of macOS
date=$4
version=$(sw_vers -productVersion)
getversion=$(
if [[ $version == 15.* ]]; then
echo "macOS Sequoia"
fi
if [[ $version == 14.* ]]; then
echo "macOS Sonoma"
fi
if [[ $version == 13.* ]]; then
echo "macOS Ventura"
fi
if [[ $version == 12.* ]]; then
echo "macOS Monterey"
fi
)
updates=$(/usr/libexec/PlistBuddy -c "Print :RecommendedUpdates" /Library/Preferences/com.apple.SoftwareUpdate.plist | grep "Display Name" | sed 's/Display Name = //' | awk '{$1=$1};1')
/Library/Application\ Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -lockHUD -title "Corporate Workstation Software Update Needed" -alignDescription justified -description "Your computer requires an update to the Operating System - $getversion.
Please update your workstation at your earliest convenience to prevent an unplanned forced restart. The following updates are available:
$updates
Forced updates are scheduled to begin $4.
Thank you for your prompt attention and cooperation in keeping Corporate workstations safe and functioning efficiently!" -icon "/Applications/Utilities/path/to/corp/logo.png" -button1 "Update" -timeout 900 -countdown
## Previously used this command
# /usr/bin/open /System/Library/PreferencePanes/SoftwareUpdate.prefPane
## But updated to this to reflect changes in macOS
/usr/bin/open "x-apple.systempreferences:com.apple.preferences.softwareupdate?client=softwareupdateapp"
exit 0
$4 is a customizable date that you can drop into the message with a "due date" for your associates before you send the push out to attempt force updating. I find this to be fairly successful. During build we deploy a folder full of corporate icons and I just call one to display in the message so that it looks more official.
2 weeks ago
Personally, I use SUPER, which allows for quite a few notification settings.
2 weeks ago
Thank you all for your responses!