Skip to main content

So, here's a thing:

Have you ever wished your users didn't try to use Migration Assistant? Maybe you have something better (Alectrona Migrator, Druva - that's what I used to use & it was the best...) 

But, maybe, you just want to stop them. Yes, you can use Restricted Software. But, maybe, for some reason, the internet has led you here & you don't use Jamf, or, you don't want to use Restricted Software. Ta da.

#!/bin/sh # write out blocking script /bin/cat << 'EOF' > /opt/blk.migr.asst.sh #!/bin/sh if /usr/bin/pgrep -ail 'Migration Assistant' then /usr/bin/osascript -e "display dialog \\"Migration Assistant is blocked on this computer. Please contact your administrator for help.\\" buttons {\\"OK\\"} default button 1 with title \\"Migration Assistant Blocked\\" with icon file \\"System:Library:CoreServices:CoreTypes.bundle:Contents:Resources:AlertStopIcon.icns\\"" /usr/bin/pkill -ail 'Migration Assistant' fi EOF /bin/chmod 755 /opt/blk.migr.asst.sh /usr/sbin/chown 0:0 /opt/blk.migr.asst.sh # write out launch daemon /bin/cat << 'EOF' > /Library/LaunchDaemons/com.blk.migr.asst.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.blk.migr.asst</string> <key>ProgramArguments</key> <array> <string>/bin/sh</string> <string>/opt/blk.migr.asst.sh</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist> EOF /bin/chmod 644 /Library/LaunchDaemons/com.blk.migr.asst.plist /usr/sbin/chown 0:0 /Library/LaunchDaemons/com.blk.migr.asst.plist /usr/bin/plutil -convert binary1 /Library/LaunchDaemons/com.blk.migr.asst.plist # start launch daemon /bin/launchctl bootstrap system /Library/LaunchDaemons/com.blk.migr.asst.plist

I am both fascinated by this workflow, and feel I just watched an oxiclean commercial all at the same time.


I am both fascinated by this workflow, and feel I just watched an oxiclean commercial all at the same time.


I had to look up oxiclean, rofl.

"Aaand just when you thought those dirty restricted items were taking toooo lonnng to update, 
we created a powerful launchdaemon, which is loaded via bootstrap,
 all before the exit of our oxidizing scriiiiiippptttt."


I think this is cool, thanks for sharing your work. Kudos