Converted the Bash version into Python...because...why not? (Mainly a reason to learn more Python.)
This is a quick "Patch Management Framework" that I threw together quickly one day for a need (cough zoom cough).
Not a big fan of the built in patch "features" in Jamf Pro -- they leave a bit to be desired. This, more or less, combines the functionality of the two approaches (Standard Policies and Patch Policies) and makes them appear more "user friendly."
Initial version of a quick "Patch Management Framework" that I threw together quickly one day for a need (cough zoom cough).
Not a big fan of the built in patch "features" in Jamf Pro -- they leave a bit to be desired. This, more or less, combines the functionality of the two approaches (Standard Policies and Patch Policies) and makes them appear more "user friendly."
So....my logic didn't even consider if the files we're looking for didn't exist... #Fail
+ Checking if the required files exist, if they don't, then...report that
+ Fixed an issue with the logic regarding the user preferences (they were always being preserved)
+ Restructured the removal functions to be a little more clear
+ A few other minor tweaks, including redirecting `ls` stderr to null
+ Fixed an issue with the logic regarding the user preferences (they were always being preserved)
+ Restructured the removal functions to be a little more clear
+ A few other minor tweaks, including redirecting `ls` stderr to null
+ Added preliminary support for macOS 10.15 Catalina
+ Reordered model strings to make it "easier" to add support for future OS Versions
+ Reordered some logic in the macProModelCheck function
+ Customized the uninstall script for use in a management solution
+ Pass an argument to leave or remove user preferences
+ Replaced all occurrences of `$HOME` with the actual folder directory
+ Replaced all usage of `sudo` with the expectation of this running from a management solution with root-level permissions
+ Minor other changes and tweaks
+ Added support for multiple environments (prod and dev)
+ Added support for multiple domains/LDAP Servers
+ Added confirmation step
+ Added checks before performing AD cmdlet actions
+ Added supporting logic for all changes