From 9fab01b524e6fb3fb8a38bcc918301a778083e62 Mon Sep 17 00:00:00 2001 From: Zack T Date: Fri, 18 Feb 2022 21:22:01 -0700 Subject: [PATCH] v2.0.0 = Revised into a postinstall script used in an AutoPkg Recipe This script is now used in an AutoPkg recipe. The recipe builds a pkg and uses this script as a postinstall script to provide a similar functionality as the previous revision. This change will allow for quicker and easier support for updates to the Office Reset utility. --- Software/Reset-MSOffice.sh | 1017 ++++++------------------------------ 1 file changed, 169 insertions(+), 848 deletions(-) diff --git a/Software/Reset-MSOffice.sh b/Software/Reset-MSOffice.sh index 1e6c99e..8627445 100644 --- a/Software/Reset-MSOffice.sh +++ b/Software/Reset-MSOffice.sh @@ -3,919 +3,240 @@ ################################################################################################### # Script Name: Reset-Office.sh # By: Zack Thompson / Created: 10/14/2020 -# Version: 1.1.1 / Updated: 11/29/2021 / By: ZT +# Version: 2.0.0 / Updated: 2/11/2022 / By: ZT # -# Description: Allows for users via self service or a Site Admin to reset (and optionally uninstall) -# specific or all Microsoft apps. Supports Office 2016 and newer. +# Description: Allows for users via a self service option to reset specific and optionally uninstall +# all Microsoft apps. Supports Office 2016 and newer. # -# Based on Paul Bowden's Office Reset: https://office-reset.com/macadmins/ +# Utilizes Paul Bowden's Office Reset: https://office-reset.com/macadmins/ # ################################################################################################### -echo -e "***** Reset Office Process: START *****\n" +echo -e "***** %PROMPT_TITLE% Process: START *****\n" ################################################## # Define Variables -action="${4}" -force_uninstall="false" +# Set working directory +temp_pkg_dir=$( /usr/bin/dirname "${0}" ) -available_actions="Word -Excel -PowerPoint -Outlook -OneNote -OneDrive -Teams -Skype for Business -Microsoft AutoUpdate -Sign-In Credentials -All Apps" -# Uninstall All" +# Get the filename of the .pkg file +pkg=$( /bin/ls "${temp_pkg_dir}" | /usr/bin/grep .pkg) -if [[ "${action}" == "Self Service" ]]; then - - # Prompt user for actions to take - selectedAction=$( /usr/bin/osascript 2>/dev/null << EndOfScript - tell application "System Events" - activate - choose from list every paragraph of "${available_actions}" ¬ - with multiple selections allowed ¬ - with title "Fix-IT: Reset Microsoft Office" ¬ - with prompt "Choose application(s) to reset:" ¬ - OK button name "Select" ¬ - cancel button name "Cancel" - end tell -EndOfScript - ) - - if [[ "${selectedAction}" == "false" ]]; then - - echo -e "NOTICE: User canceled the prompt.\n" - echo "***** Reset Office Process: COMPLETE *****" - exit 0 - - elif [[ "${selectedAction}" == *"All Apps"* ]]; then - - apps="All" - - elif [[ "${selectedAction}" == "Uninstall All" ]]; then - - apps="All" - force_uninstall="true" - - else - - apps="${selectedAction}" - - fi - - echo "Selected Action: ${selectedAction}" - - # Prompt user warning of potential data loss - acceptWarning=$( /usr/bin/osascript 2>/dev/null << EndOfScript - tell application "System Events" - activate - display dialog "Warning - potential Data Loss \n\nThis action has the potential for data loss. Please ensure all data stored in Microsoft applications is backed up and/or synced to the cloud. \n\nDo you accept this risk?" ¬ - with title "Fix-IT: Reset Microsoft Office" ¬ - buttons {"No", "I Accept"} default button 1 ¬ - giving up after 60 ¬ - with icon caution - end tell -EndOfScript - ) - - # If you want to use JamfHelper - # Setup jamfHelper window - # jamfHelper="/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper" - # title="Reset Microsoft Office" - # windowType="utility" - # Heading="Warning - potential Data Loss" - # Description="This action has the potential for data loss. Please ensure all data stored in Microsoft applications is backed up and/or synced to the cloud. -# -# Do you accept this risk?" - # Icon="/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns" - # extras="-button1 \"Accept\" -button2 \"Cancel\" -defaultButton 2" - - # acceptWarning=$( "${jamfHelper}" -windowType "${windowType}" -title "${title}" -icon "${Icon}" -heading "${Heading}" -description "${Description}" $extras 2>&1 > /dev/null ) - - # if [[ "${acceptWarning}" != "0" ]]; then - if [[ "${acceptWarning}" != "button returned:I Accept, gave up:false" ]]; then - - echo -e "NOTICE: User did not accept potential data loss warning.\n" - echo "***** Reset Office Process: COMPLETE *****" - exit 0 - - fi - -elif [[ "${action}" == "Auto" ]]; then - - # Performed actions in specified apps in $5 - apps="${5}" - - if [[ "${6}" == "true" || "${6}" == "Yes" ]]; then - - force_uninstall="true" - - fi - -else - - echo -e "ERROR: Requested action is not supported!\n" - echo "***** Reset Office Process: FAILED *****" - exit 1 - -fi +# Available options discovered in the .pkg +available_actions="%prompt_choices%" ################################################## # Define Functions -# Get the Logged In Console User -GetLoggedInUser() { - - LOGGEDIN=$( echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}' ) - - if [[ "${LOGGEDIN}" = "" ]]; then - - echo "${USER}" - - else - - echo "${LOGGEDIN}" - - fi - +exit_check() { + if [[ $1 != 0 ]]; then + echo "ERROR: ${3}" + echo "Reason: ${2}" + echo "Exit Code: ${1}" + echo "***** Fix-IT - Adobe CC: FAILED *****" + exit 2 + fi } -# Get the passed accounts' home directory -SetHomeFolder() { +# This is a helper function to interact with plists. +PlistBuddy_Helper() { + key="${1}" + type="${2}" + value="${3}" + plist="${4}" + action="${5}" - HOME=$( /usr/bin/dscl . read /Users/"${1}" NFSHomeDirectory | /usr/bin/cut -d ':' -f2 | /usr/bin/cut -d ' ' -f2 ) + # Delete existing values if required + if [[ "${action}" = "delete" ]]; then - if [[ "${HOME}" = "" ]]; then + /usr/libexec/PlistBuddy -c "Delete :${key} ${type}" "${plist}" > /dev/null 2>&1 - if [[ -d "/Users/${1}" ]]; then + elif [[ "${action}" = "clear" ]]; then - HOME="/Users/${1}" + /usr/libexec/PlistBuddy -c "clear ${type}" "${plist}" > /dev/null 2>&1 - else + fi - HOME=$(eval echo "~${1}") - - fi - - fi + # Configure values + /usr/libexec/PlistBuddy -c "Add :${key} ${type} ${value}" "${plist}" > /dev/null 2>&1 || /usr/libexec/PlistBuddy -c "Set :${key} ${value}" "${plist}" > /dev/null 2>&1 } -# Kill the passed app name -kill_App() { - - app="${1}" - /usr/bin/pkill -9 "${app}" - -} - -# Stop and unload the passed service name -stop_Service() { - - service="${1}" - /bin/launchctl stop "${service}" - /bin/launchctl unload "${service}" - -} - -# Delete the passed path -uninstall_App() { - - app="${1}" - app_location="${2}" - - if [ -d "${app_location}" ]; then - - /bin/rm -rf "${app_location}" - - else - - echo "${app} was not found in the default location" - - fi - -} - -# Reset Microsoft Word -reset_Word() { - - kill_App "Microsoft Word" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft Word" "/Applications/Microsoft Word.app" - - fi - - echo "Microsoft Word: Removing configuration data..." - /bin/rm -f "/Library/Preferences/com.microsoft.Word.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.Word.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.Word.plist" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Word" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.Word" - /bin/rm -rf "/Applications/Microsoft Word.app.installBackup" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Startup.localized/Word" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.dot" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.dotx" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.dotm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Startup.localized/Word" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.dot" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.dotx" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.dotm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/mip_policy" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/FontCache" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/ComRPC32" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/TemporaryItems" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/Microsoft Office ACL*" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg" - -} - -# Reset Microsoft Excel -reset_Excel() { - - kill_App "Microsoft Excel" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft Excel" "/Applications/Microsoft Excel.app" - - fi - - echo "Microsoft Excel: Removing configuration data..." - /bin/rm -f "/Library/Preferences/com.microsoft.Excel.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.Excel.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.Excel.plist" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Excel" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.Excel" - /bin/rm -rf "/Applications/Microsoft Excel.app.installBackup" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Startup.localized/Excel" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.xlt" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.xltx" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.xltm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Startup.localized/Excel" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.xlt" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.xltx" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.xltm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/mip_policy" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/ComRPC32" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/TemporaryItems" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg" - -} - -# Reset Microsoft PowerPoint -reset_PowerPoint() { - - kill_App "Microsoft PowerPoint" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft PowerPoint" "/Applications/Microsoft PowerPoint.app" - - fi - - echo "Microsoft PowerPoint: Removing configuration data..." - /bin/rm -f "/Library/Preferences/com.microsoft.Powerpoint.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.Powerpoint.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.Powerpoint.plist" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Powerpoint" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.Powerpoint" - /bin/rm -rf "/Applications/Microsoft PowerPoint.app.installBackup" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Startup.localized/PowerPoint" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.pot" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.potx" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Templates.localized/*.potm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Startup.localized/PowerPoint" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.pot" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.potx" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Templates.localized/*.potm" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Add-Ins/*.ppam" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Add-Ins/*.ppam" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Themes" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Themes" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/mip_policy" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/FontCache" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/ComRPC32" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/TemporaryItems" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/Microsoft Office ACL*" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg" - -} - -# Reset Microsoft Outlook -reset_Outlook() { - - kill_App "Microsoft Outlook" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft Outlook" "/Applications/Microsoft Outlook.app" - - fi - - echo "Microsoft Outlook: Removing configuration data..." - /bin/rm -f "/Library/Preferences/com.microsoft.Outlook.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.Outlook.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.Outlook.plist" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Outlook" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.Outlook" - /bin/rm -rf "/Library/Application Support/Microsoft/WebExPlugin" - /bin/rm -rf "/Library/Application Support/Microsoft/ZoomOutlookPlugin" - /bin/rm -rf "/Users/Shared/ZoomOutlookPlugin" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365/User Content.localized/Startup.localized/Word/NormalEmail.dotm" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/User Content.localized/Startup.localized/Word/NormalEmail.dotm" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/DRM_Evo.plist" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/mip_policy" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/FontCache" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/ComRPC32" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/TemporaryItems" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/Microsoft Office ACL*" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg" - /bin/rm -rf "/Applications/Microsoft Outlook.app.installBackup" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.Outlook.plist" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/Outlook" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/OutlookProfile.plist" - - KeychainHasLogin=$( /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains | /usr/bin/grep 'login.keychain' ) - - if [[ "${KeychainHasLogin}" == "" ]]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains -s "${HOME}/Library/Keychains/login.keychain-db" - - fi - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-internet-password -s 'msoCredentialSchemeADAL' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-internet-password -s 'msoCredentialSchemeLiveId' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 2' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 3' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 2' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 3' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.adalcache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.adalcache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MSProtection.framework.service' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MSProtection.framework.service' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - -} - -# Reset Microsoft OneNote -reset_OneNote() { - - kill_App "Microsoft OneNote" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft OneNote" "/Applications/Microsoft OneNote.app" - - fi - - echo "Microsoft OneNote: Removing configuration data..." - /bin/rm -f "/Library/Preferences/com.microsoft.onenote.mac.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.onenote.mac.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.onenote.mac.plist" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.onenote.mac" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.onenote.mac.shareextension" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.onenote.mac" - /bin/rm -rf "/Applications/Microsoft OneNote.app.installBackup" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T369G9.Office/OneNote" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T369G9.Office/FontCache" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T369G9.Office/TemporaryItems" - -} - -# Reset Microsoft OneDrive -reset_OneDrive() { - - kill_App "OneDrive" - kill_App "FinderSync" - kill_App "OneDriveStandaloneUpdater" - kill_App "OneDriveUpdater" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "OneDrive" "/Applications/OneDrive.app" - - fi - - echo "Microsoft OneDrive: Removing configuration data..." - /bin/rm -rf "${HOME}/Library/Caches/OneDrive" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.OneDrive" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.OneDriveUpdater" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.OneDriveStandaloneUpdater" - /bin/rm -f "${HOME}/Library/Cookies/com.microsoft.OneDrive.binarycookies" - /bin/rm -f "${HOME}/Library/Cookies/com.microsoft.OneDriveUpdater.binarycookies" - /bin/rm -f "${HOME}/Library/Cookies/com.microsoft.OneDriveStandaloneUpdater.binarycookies" - /bin/rm -rf "${HOME}/Library/WebKit/com.microsoft.OneDrive" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.OneDrive-mac" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.OneDrive.FinderSync" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.OneDrive-mac.FinderSync" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.OneDriveLauncher" - /bin/rm -rf "${HOME}/Library/Logs/OneDrive" - /bin/rm -rf "${HOME}/Library/Application Support/OneDrive" - /bin/rm -rf "${HOME}/Library/Application Support/com.microsoft.OneDrive" - /bin/rm -rf "${HOME}/Library/Application Support/com.microsoft.OneDriveUpdater" - /bin/rm -rf "${HOME}/Library/Application Support/com.microsoft.OneDriveStandaloneUpdater" - /bin/rm -rf "${HOME}/Library/Application Support/OneDriveUpdater" - /bin/rm -rf "${HOME}/Library/Application Support/OneDriveStandaloneUpdater" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.OneDrive.FinderSync" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.OfficeOneDriveSyncIntegration" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.OneDriveStandaloneSuite" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.OneDriveSyncClientSuite" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.OneDrive.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.OneDriveStandaloneUpdater.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.OneDriveUpdater.plist" - /bin/rm -f "${HOME}/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.OneDrive.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.OneDriveStandaloneUpdater.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.OneDriveUpdater.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.OneDrive.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.OneDriveStandaloneUpdater.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.OneDriveUpdater.plist" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.com.microsoft.oneauth" - - KeychainHasLogin=$( /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains | /usr/bin/grep 'login.keychain' ) - - if [[ "${KeychainHasLogin}" == "" ]]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains -s "${HOME}/Library/Keychains/login.keychain-db" - - fi - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.FinderSync.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveUpdater.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveStandaloneUpdater.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential Business - Business1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -s 'OneAuthAccount' - -} - -# Reset Microsoft Teams -reset_Teams() { - - kill_App "Microsoft Teams" - kill_App "Microsoft Teams Helper" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft Teams" "/Applications/Microsoft Teams.app" - - fi - - echo "Microsoft Teams: Removing configuration data..." - /bin/rm -rf "${HOME}/Library/Application Support/Microsoft/Teams" - /bin/rm -rf "${HOME}/Library/Application Support/com.microsoft.teams" - /bin/rm -rf "${HOME}/Library/Application Support/com.microsoft.teams.helper" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.teams" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.teams.helper" - /bin/rm -f "${HOME}/Library/Cookies/com.microsoft.teams.binarycookies" - /bin/rm -rf "${HOME}/Library/Logs/Microsoft Teams" - /bin/rm -rf "${HOME}/Library/Saved Application State/com.microsoft.teams.savedState" - /bin/rm -rf "/Library/Application Support/TeamsUpdaterDaemon" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.teams.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.teams.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.teams.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.teams.helper.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.teams.helper.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.teams.helper.plist" - - KeychainHasLogin=$( /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains | /usr/bin/grep 'login.keychain' ) - - if [[ "${KeychainHasLogin}" == "" ]]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains -s "${HOME}/Library/Keychains/login.keychain-db" - - fi - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Teams Identities Cache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.teams.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.teams.helper.HockeySDK' - -} - -# Reset Skype for Business -reset_Skype() { - - kill_App "Skype for Business" - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Skype for Business" "/Applications/Skype for Business.app" - - fi - - echo "Skype for Business: Removing configuration data..." - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.SkypeForBusiness" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.SkypeForBusiness" - /bin/rm -rf "${HOME}/Library/Preferences/com.microsoft.OutlookSkypeIntegration.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.SkypeForBusiness.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.SkypeForBusiness.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.SkypeForBusiness.plist" - - KeychainHasLogin=$( /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains | /usr/bin/grep 'login.keychain' ) - - if [[ "${KeychainHasLogin}" == "" ]]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains -s "${HOME}/Library/Keychains/login.keychain-db" - - fi - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.SkypeForBusiness.HockeySDK' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Skype for Business' - -} - -# Reset Microsoft AutoUpdate -reset_MAU() { - - kill_App "Skype for Business" - kill_App 'Microsoft AutoUpdate' - kill_App 'Microsoft Update Assistant' - kill_App 'Microsoft AU Daemon' - kill_App 'Microsoft AU Bootstrapper' - kill_App 'com.microsoft.autoupdate.helper' - kill_App 'com.microsoft.autoupdate.helpertool' - kill_App 'com.microsoft.autoupdate.bootstrapper.helper' - - stop_Service /Library/LaunchAgents/com.microsoft.update.agent.plist - stop_Service /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist - stop_Service /Library/LaunchDaemons/com.microsoft.autoupdate.helper - stop_Service /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist - - if [[ "${force_uninstall}" == "true" ]]; then - - uninstall_App "Microsoft AutoUpdate" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app" - uninstall_App "Microsoft AutoUpdate LaunchAgent com.microsoft.update.agent.plist" /Library/LaunchAgents/com.microsoft.update.agent.plist - uninstall_App "Microsoft AutoUpdate LaunchAgent com.microsoft.autoupdate.helper.plist" /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist - uninstall_App "Microsoft AutoUpdate LaunchADaemon com.microsoft.autoupdate.helper" /Library/LaunchDaemons/com.microsoft.autoupdate.helper - uninstall_App "Microsoft AutoUpdate LaunchADaemon com.microsoft.autoupdate.helper.plist" /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist - - fi - - echo "Microsoft AutoUpdate: Removing configuration data..." - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.autoupdate2.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.autoupdate.fba.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.autoupdate2.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.autoupdate.fba.plist" - /bin/rm -f "/var/root/Library/Preferences/com.microsoft.autoupdate2.plist" - /bin/rm -f "/var/root/Library/Preferences/com.microsoft.autoupdate.fba.plist" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.autoupdate2" - /bin/rm -rf "${HOME}/Library/Caches/com.microsoft.autoupdate.fba" - /bin/rm -rf "${HOME}/Library/Application Support/Microsoft AU Daemon" - /bin/rm -rf "/Library/Application Support/Microsoft/MERP2.0" - - /usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 AcknowledgedDataCollectionPolicy -string 'RequiredDataOnly' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Preferences/com.microsoft.autoupdate2" IgnoreUIOpenAfterInstall -bool TRUE - -} - -# Reset Stored Microsoft Office Credentials -reset_Office_Credentials() { - - echo "Microsoft Office Credentials: Quitting all apps gracefully" - /usr/bin/pkill -HUP 'Microsoft Word' - /usr/bin/pkill -HUP 'Microsoft Excel' - /usr/bin/pkill -HUP 'Microsoft PowerPoint' - /usr/bin/pkill -HUP 'Microsoft Outlook' - /usr/bin/pkill -HUP 'Microsoft OneNote' - - KeychainHasLogin=$( /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains | /usr/bin/grep 'login.keychain' ) - - if [[ "${KeychainHasLogin}" == "" ]]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security list-keychains -s "${HOME}/Library/Keychains/login.keychain-db" - - fi - - echo "Microsoft Office Credentials: Removing KeyChain data..." - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -s 'OneAuthAccount' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-internet-password -s 'msoCredentialSchemeADAL' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-internet-password -s 'msoCredentialSchemeLiveId' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 2' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 3' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 2' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 3' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.microsoft.adalcache' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MSProtection.framework.service' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'MSProtection.framework.service' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/security delete-generic-password -l 'Exchange' - - echo "Microsoft Office Credentials: Removing credential and license files" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/mip_policy" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/DRM_Evo.plist" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.com.microsoft.oneauth" - /bin/rm -f "/Library/Application Support/Microsoft/Office365/com.microsoft.Office365.plist" - /bin/rm -f "/Library/Application Support/Microsoft/Office365/com.microsoft.Office365V2.plist" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/com.microsoft.Office365.plist" - /bin/mv "${HOME}/Library/Group Containers/UBF8T346G9.Office/com.microsoft.Office365V2.plist" "${HOME}/Library/Group Containers/UBF8T346G9.Office/com.microsoft.Office365V2.backup" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/com.microsoft.e0E2OUQxNUY1LTAxOUQtNDQwNS04QkJELTAxQTI5M0JBOTk4O.plist" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/e0E2OUQxNUY1LTAxOUQtNDQwNS04QkJELTAxQTI5M0JBOTk4O" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/com.microsoft.O4kTOBJ0M5ITQxATLEJkQ40SNwQDNtQUOxATL1YUNxQUO2E0e.plist" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/O4kTOBJ0M5ITQxATLEJkQ40SNwQDNtQUOxATL1YUNxQUO2E0e" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office/Licenses" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.RMS-XPCService" - /bin/rm -rf "${HOME}/Library/Application Scripts/com.microsoft.Office365ServiceV2" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Word/Data/Library/Application Support/Microsoft" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Excel/Data/Library/Application Support/Microsoft" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Powerpoint/Data/Library/Application Support/Microsoft" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Outlook/Data/Library/Application Support/Microsoft" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.onenote.mac/Data/Library/Application Support/Microsoft" - /bin/rm -f "${HOME}/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg" - - echo "Microsoft Office Credentials: Changing preferences" - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults delete "${HOME}/Library/Preferences/com.microsoft.office" OfficeActivationEmailAddress - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Preferences/com.microsoft.office" OfficeAutoSignIn -bool TRUE - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Preferences/com.microsoft.office" HasUserSeenFREDialog -bool TRUE - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Preferences/com.microsoft.office" HasUserSeenEnterpriseFREDialog -bool TRUE - - if [ -d "${HOME}/Library/Containers/com.microsoft.Word/Data/Library/Preferences" ]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Containers/com.microsoft.Word/Data/Library/Preferences/com.microsoft.Word" kSubUIAppCompletedFirstRunSetup1507 -bool FALSE - - fi - - if [ -d "${HOME}/Library/Containers/com.microsoft.Excel/Data/Library/Preferences" ]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Containers/com.microsoft.Excel/Data/Library/Preferences/com.microsoft.Excel" kSubUIAppCompletedFirstRunSetup1507 -bool FALSE - - fi - - if [ -d "${HOME}/Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences" ]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences/com.microsoft.Powerpoint" kSubUIAppCompletedFirstRunSetup1507 -bool FALSE - - fi - - if [ -d "${HOME}/Library/Containers/com.microsoft.Outlook/Data/Library/Preferences" ]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Containers/com.microsoft.Outlook/Data/Library/Preferences/com.microsoft.Outlook" kSubUIAppCompletedFirstRunSetup1507 -bool FALSE - - fi - - if [ -d "${HOME}/Library/Containers/com.microsoft.onenote.mac/Data/Library/Preferences" ]; then - - /usr/bin/sudo -u "${LoggedInUser}" /usr/bin/defaults write "${HOME}/Library/Containers/com.microsoft.onenote.mac/Data/Library/Preferences/com.microsoft.onenote.mac" kSubUIAppCompletedFirstRunSetup1507 -bool FALSE - - fi - - /usr/bin/killall cfprefsd - -} - -# Delete all the things -full_uninstall() { - - stop_Service /Library/LaunchAgents/com.microsoft.OneDriveStandaloneUpdater.plist - stop_Service /Library/LaunchDaemons/com.microsoft.OneDriveUpdaterDaemon.plist - stop_Service /Library/LaunchDaemons/com.microsoft.teams.TeamsUpdaterDaemon.plist - - echo "Microsoft Office Full Uninstall: Removing preferences and containers..." - /bin/rm -rf "/Library/Logs/Microsoft/autoupdate.log" - /bin/rm -rf "/Library/Logs/Microsoft/InstallLogs" - /bin/rm -rf "/Library/Logs/Microsoft/Teams" - /bin/rm -rf "/Library/Logs/Microsoft/OneDrive" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.shared.plist" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.office.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.shared.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.office.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.shared.plist" - /bin/rm -f "/Library/Managed Preferences/com.microsoft.office.plist" - /bin/rm -rf "${HOME}/Library/Application Support/Microsoft" - /bin/rm -rf "/Library/Application Support/Microsoft/Office365" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.Office" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.ms" - /bin/rm -rf "${HOME}/Library/Group Containers/UBF8T346G9.OfficeOsfWebHost" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.errorreporting" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.netlib.shipassertprocess" - /bin/rm -rf "${HOME}/Library/Containers/com.microsoft.Office365ServiceV2" - /bin/rm -f "${HOME}/Library/Preferences/com.microsoft.autoupdate2.plist" - /bin/rm -f "/Library/Preferences/com.microsoft.autoupdate2.plist" - - echo "Microsoft Office Full Uninstall: Removing app data" - /bin/rm -rf "/Library/Application Support/Microsoft" - /bin/rm -f "/Library/LaunchAgents/com.microsoft.update.agent.plist" - /bin/rm -f "/Library/LaunchAgents/com.microsoft.OneDriveStandaloneUpdater.plist" - /bin/rm -f "/Library/LaunchAgents/com.microsoft.autoupdate.helper.plist" - /bin/rm -f "/Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist" - /bin/rm -f "/Library/LaunchDaemons/com.microsoft.office.licensingV2.helper.plist" - /bin/rm -f "/Library/LaunchDaemons/com.microsoft.OneDriveStandaloneUpdaterDaemon.plist" - /bin/rm -f "/Library/LaunchDaemons/com.microsoft.OneDriveUpdaterDaemon.plist" - /bin/rm -f "/Library/LaunchDaemons/com.microsoft.teams.TeamsUpdaterDaemon.plist" - /bin/rm -f "/Library/PrivilegedHelperTools/com.microsoft.autoupdate.helper" - /bin/rm -f "/Library/PrivilegedHelperTools/com.microsoft.autoupdate.helpertool" - /bin/rm -f "/Library/PrivilegedHelperTools/com.microsoft.office.licensingV2.helper" - /bin/rm -rf "/Library/Logs/Microsoft" - /bin/rm -rf "${HOME}/Library/Caches/Microsoft" - /bin/rm -f "/Library/Preferences/com.microsoft.office.licensingV2.plist" - - OneDriveFolder=$( /bin/ls "${HOME}" | /usr/bin/grep 'OneDrive' --max-count=1 ) - - if [ "${OneDriveFolder}" != "" ]; then - - IsOneDrive=$( /usr/bin/xattr "${HOME}/${OneDriveFolder}" | /usr/bin/grep 'com.apple.fileutil.SyncRootProviderRootContextList' ) - - if [ "${IsOneDrive}" = "com.apple.fileutil.SyncRootProviderRootContextList" ]; then - - echo "Microsoft Office Full Uninstall: Removing OneDrive folder ${OneDriveFolder}" - /bin/rm -rf "${HOME}/${OneDriveFolder}" - - fi - fi - - echo "Microsoft Office Full Uninstall: Forgetting pkg recipes..." - /usr/sbin/pkgutil --forget com.microsoft.Word - /usr/sbin/pkgutil --forget com.microsoft.Excel - /usr/sbin/pkgutil --forget com.microsoft.Powerpoint - /usr/sbin/pkgutil --forget com.microsoft.Outlook - /usr/sbin/pkgutil --forget com.microsoft.onenote.mac - /usr/sbin/pkgutil --forget com.microsoft.OneDrive-mac - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_Word.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_Excel.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_PowerPoint.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_Outlook.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_OneNote.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_AutoUpdate.app - /usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_AU_Bootstrapper.app - /usr/sbin/pkgutil --forget com.microsoft.package.Proofing_Tools - /usr/sbin/pkgutil --forget com.microsoft.package.Fonts - /usr/sbin/pkgutil --forget com.microsoft.package.DFonts - /usr/sbin/pkgutil --forget com.microsoft.package.Frameworks - /usr/sbin/pkgutil --forget com.microsoft.pkg.licensing - /usr/sbin/pkgutil --forget com.microsoft.pkg.licensing.volume - /usr/sbin/pkgutil --forget com.microsoft.teams - /usr/sbin/pkgutil --forget com.microsoft.OneDrive - /usr/sbin/pkgutil --forget com.microsoft.SkypeForBusiness - -} - - ################################################## # Bits staged... -LoggedInUser=$( GetLoggedInUser ) -SetHomeFolder "${LoggedInUser}" -echo "Running as: ${LoggedInUser}" -echo "Home Folder: ${HOME}" +if [[ $3 != "/" ]]; then + echo "[ERROR] Target disk is not the startup disk." + echo "***** %PROMPT_TITLE% Process: FAILED *****" + exit 1 +fi -# Turn on case-insensitive pattern matching -shopt -s nocasematch +# Prompt user for action(s) to take +selected_actions=$( /usr/bin/osascript 2>/dev/null << EndOfScript + tell application "System Events" + activate + choose from list every paragraph of "${available_actions}" ¬ + with multiple selections allowed ¬ + with title "%PROMPT_TITLE%" ¬ + with prompt "Choose from one or more of the available actions:" ¬ + OK button name "Select" ¬ + cancel button name "Cancel" + end tell +EndOfScript +) -# In case multiple applications were provided, loop through them... -while read -r app; do +if [[ "${selected_actions}" == "false" ]]; then - # Determine requested task. - case "${app}" in + echo -e "NOTICE: User canceled the prompt.\n" + echo "***** %PROMPT_TITLE% Process: COMPLETE *****" + exit 0 - "All" ) - reset_Word - reset_Excel - reset_PowerPoint - reset_Outlook - reset_OneNote - reset_OneDrive - reset_Teams - reset_Skype - reset_MAU +fi - if [[ "${force_uninstall}" == "true" ]]; then +echo "Selected Actions: ${selected_actions}" - full_uninstall +# Prompt user warning of potential data loss +accept_warning=$( /usr/bin/osascript 2>/dev/null << EndOfScript + tell application "System Events" + activate + display dialog "Warning - potential Data Loss \n\nThis action has the potential for data loss. Please ensure all data stored in Microsoft applications is backed up and/or synced to the cloud. \n\nDo you accept this risk?" ¬ + with title "%PROMPT_TITLE%" ¬ + buttons {"No", "I Accept"} default button 1 ¬ + giving up after 60 ¬ + with icon caution + end tell +EndOfScript +) - else +# If you want to use JamfHelper +# Setup jamfHelper window +# jamfHelper="/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper" +# title="%PROMPT_TITLE%" +# windowType="utility" +# Heading="Warning - potential Data Loss" +# Description="This action has the potential for data loss. Please ensure all data stored in Microsoft applications is backed up and/or synced to the cloud. +# +# Do you accept this risk?" +# Icon="/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns" +# extras="-button1 \"Accept\" -button2 \"Cancel\" -defaultButton 2" - reset_Office_Credentials +# accept_warning=$( "${jamfHelper}" -windowType "${windowType}" -title "${title}" -icon "${Icon}" -heading "${Heading}" -description "${Description}" $extras 2>&1 > /dev/null ) - fi - ;; - "Word" ) - reset_Word +# if [[ "${accept_warning}" != "0" ]]; then +if [[ "${accept_warning}" != "button returned:I Accept, gave up:false" ]]; then + + echo -e "NOTICE: User did not accept potential data loss warning.\n" + echo "***** %PROMPT_TITLE% Process: COMPLETE *****" + exit 0 + +fi + +# Create an empty array +PlistBuddy_Helper "" "array" "" "${temp_pkg_dir}/choices.plist" "clear" + +# Setting starting point for the array +array_item=0 + +# In case multiple actions were selected, loop through them... +while read -r action; do + + # Determine requested task + case "${action}" in + + # Selected = 1 = Install + # Selected = 0 = Do Not Install + + "Reset Word" ) + PlistBuddy_Helper "${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper "${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper "${array_item}:choiceIdentifier" "string" "com.microsoft.reset.Word" "${temp_pkg_dir}/choices.plist" ;; - "Excel" ) - reset_Excel + "Reset Excel" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.Excel" "${temp_pkg_dir}/choices.plist" ;; - "PowerPoint" ) - reset_PowerPoint + "Reset PowerPoint" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.PowerPoint" "${temp_pkg_dir}/choices.plist" ;; - "Outlook" ) - reset_Outlook + "Reset Outlook" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.Outlook" "${temp_pkg_dir}/choices.plist" ;; - "OneNote" ) - reset_OneNote + "Reset OneNote" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.OneNote" "${temp_pkg_dir}/choices.plist" ;; - "OneDrive" ) - reset_OneDrive + "Reset OneDrive" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.OneDrive" "${temp_pkg_dir}/choices.plist" ;; - "Teams" ) - reset_Teams + "Reset Teams" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.Teams" "${temp_pkg_dir}/choices.plist" ;; - "Skype for Business" ) - reset_Skype + "Reset AutoUpdate" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.AutoUpdate" "${temp_pkg_dir}/choices.plist" ;; - "MAU" | "Microsoft AutoUpdate" ) - reset_MAU + "Reset Credentials" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.reset.Credentials" "${temp_pkg_dir}/choices.plist" ;; - "Credentials" | "Sign-In Credentials" ) - reset_Office_Credentials + "Remove SkypeForBusiness" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.remove.SkypeForBusiness" "${temp_pkg_dir}/choices.plist" + ;; + + "Remove Office" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.remove.Office" "${temp_pkg_dir}/choices.plist" + ;; + + "Remove ZoomPlugin" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.remove.ZoomPlugin" "${temp_pkg_dir}/choices.plist" + ;; + + "Remove WebExPT" ) + PlistBuddy_Helper ":${array_item}:attributeSetting" "integer" "1" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceAttribute" "string" "selected" "${temp_pkg_dir}/choices.plist" + PlistBuddy_Helper ":${array_item}:choiceIdentifier" "string" "com.microsoft.remove.WebExPT" "${temp_pkg_dir}/choices.plist" ;; * ) echo "ERROR: Requested task is invalid" - echo "***** Reset Office Process: FAILED *****" + echo "***** %PROMPT_TITLE% Process: FAILED *****" exit 2 ;; esac -done < <( echo "${apps}" | /usr/bin/tr ',' '\n' ) + # Increase array count + array_item=$(( array_item+1 )) -# Turn off case-insensitive pattern matching -shopt -u nocasematch +done < <( echo "${selected_actions}" | /usr/bin/tr ',' '\n' ) -echo "***** Reset Office Process: COMPLETE *****" +echo "***** %PROMPT_TITLE% Process: COMPLETE *****" exit 0 \ No newline at end of file