mirror of
https://github.com/NohamR/Office-Reset.git
synced 2026-05-24 19:59:35 +00:00
Add Office Reset scripts and README
This commit is contained in:
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Office Reset
|
||||
|
||||
A transparent backup of scripts from [office-reset.com](https://office-reset.com/) for resetting and removing Microsoft Office applications on macOS.
|
||||
|
||||
## About
|
||||
|
||||
This repository contains shell scripts extracted from the .pkg installer provided by [office-reset.com](https://office-reset.com/). Instead of running an opaque package installer, these scripts are provided in plain text so you can review exactly what will be executed on your system before running them.
|
||||
|
||||
## Why This Repository?
|
||||
|
||||
Running `.pkg` files without knowing their contents can be risky. This repository allows you to:
|
||||
- Review the script contents before execution
|
||||
- Understand exactly what changes will be made to your system
|
||||
- Run only the specific scripts you need
|
||||
- Maintain transparency and security
|
||||
|
||||
## Available Scripts
|
||||
|
||||
The following scripts are available in the `scripts/` directory:
|
||||
|
||||
### Office Applications
|
||||
- **Office_Excel_Reset.sh** - Reset Microsoft Excel to default settings
|
||||
- **Office_Word_Reset.sh** - Reset Microsoft Word to default settings
|
||||
- **Office_PowerPoint_Reset.sh** - Reset Microsoft PowerPoint to default settings
|
||||
- **Office_Outlook_Reset.sh** - Reset Microsoft Outlook to default settings
|
||||
- **Office_Outlook_Remove_Data.sh** - Remove Microsoft Outlook data
|
||||
- **Office_OneNote_Reset.sh** - Reset Microsoft OneNote to default settings
|
||||
- **Office_OneNote_Remove_Data.sh** - Remove Microsoft OneNote data
|
||||
|
||||
### Office Services & Add-ons
|
||||
- **Office_AutoUpdate_Reset.sh** - Reset Microsoft AutoUpdate
|
||||
- **Office_Credentials_Reset.sh** - Reset Office credentials
|
||||
- **Office_OneDrive_Reset.sh** - Reset OneDrive
|
||||
- **Office_Teams_Reset.sh** - Reset Microsoft Teams
|
||||
|
||||
### Removal Scripts
|
||||
- **Office_Remove.sh** - Remove Microsoft Office
|
||||
- **Office_Remove_2.sh** - Alternative Office removal script
|
||||
- **Office_Factory_Reset.sh** - Complete factory reset of Office
|
||||
- **Office_Defender_Remove.sh** - Remove Microsoft Defender
|
||||
- **Office_SkypeForBusiness_Remove.sh** - Remove Skype for Business
|
||||
|
||||
### Third-Party Tools
|
||||
- **WebExPT_Remove.sh** - Remove Cisco WebEx Productivity Tools
|
||||
- **ZoomPlugin_Remove.sh** - Remove Zoom plugin
|
||||
|
||||
## Usage
|
||||
|
||||
1. **Review the script** you want to run before executing it
|
||||
2. **Make the script executable**:
|
||||
```bash
|
||||
chmod +x scripts/[script-name].sh
|
||||
```
|
||||
3. **Run the script**:
|
||||
```bash
|
||||
sudo scripts/[script-name].sh
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
|
||||
⚠️ **Warning**: These scripts will modify or remove application data and settings. Some operations are irreversible.
|
||||
|
||||
- **Backup your data** before running any reset or removal scripts
|
||||
- Most scripts require **administrator privileges** (sudo)
|
||||
- Review each script carefully to understand what it does
|
||||
- Test on a non-production system first if possible
|
||||
|
||||
## Credits
|
||||
|
||||
All credit goes to **Paul Bowden** ([pbowden-msft](https://github.com/pbowden-msft)) for creating and maintaining these scripts.
|
||||
|
||||
Original source: [office-reset.com](https://office-reset.com/)
|
||||
|
||||
## License
|
||||
|
||||
These scripts are provided as-is from the original source. Please refer to the original author's repository for licensing information.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
This repository is an independent backup for transparency purposes. It is not affiliated with or endorsed by Microsoft Corporation or Paul Bowden. Use these scripts at your own risk.
|
||||
211
scripts/Office_AutoUpdate_Reset.sh
Executable file
211
scripts/Office_AutoUpdate_Reset.sh
Executable file
@@ -0,0 +1,211 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_AutoUpdate"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft AutoUpdate"
|
||||
DOWNLOAD_URL="https://go.microsoft.com/fwlink/?linkid=830196"
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $DOWNLOAD_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Stopping update services"
|
||||
/usr/bin/pkill -9 'Microsoft AutoUpdate'
|
||||
/usr/bin/pkill -9 'Microsoft Update Assistant'
|
||||
/usr/bin/pkill -9 'Microsoft AU Daemon'
|
||||
/usr/bin/pkill -9 'Microsoft AU Bootstrapper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helpertool'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.bootstrapper.helper'
|
||||
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.update.agent.plist
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.autoupdate.helper
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist
|
||||
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.microsoft.update.agent.plist
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.autoupdate.helper
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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/HTTPStorages/com.microsoft.autoupdate2
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.autoupdate.fba
|
||||
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Microsoft\ AU\ Daemon
|
||||
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/MERP2.0
|
||||
|
||||
/bin/rm -rf $TMPDIR/MSauClones
|
||||
/bin/rm -rf /Library/Caches/com.microsoft.autoupdate.helper/
|
||||
/bin/rm -rf /Library/Caches/com.microsoft.autoupdate.fba/
|
||||
/bin/rm -f $TMPDIR/TelemetryUploadFilecom.microsoft.autoupdate.fba.txt
|
||||
/bin/rm -f $TMPDIR/TelemetryUploadFilecom.microsoft.autoupdate2.txt
|
||||
|
||||
/bin/rm -rf /Applications/.Microsoft\ Word.app.installBackup
|
||||
/bin/rm -rf /Applications/.Microsoft\ Excel.app.installBackup
|
||||
/bin/rm -rf /Applications/.Microsoft\ PowerPoint.app.installBackup
|
||||
/bin/rm -rf /Applications/.Microsoft\ Outlook.app.installBackup
|
||||
/bin/rm -rf /Applications/.Microsoft\ OneNote.app.installBackup
|
||||
|
||||
/bin/rm -rf /Library/Logs/Microsoft/autoupdate.log
|
||||
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 AcknowledgedDataCollectionPolicy -string 'RequiredDataOnly'
|
||||
|
||||
if [ -d "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app" ]; then
|
||||
echo "Office-Reset: Installing the latest version of ${APP_NAME}"
|
||||
RepairApp
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Creating new preferences"
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app" "{ 'Application ID' = 'MSau04'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
|
||||
WORD_VERSION=$(defaults read /Applications/Microsoft\ Word.app/Contents/Info.plist CFBundleVersion)
|
||||
if [[ "${WORD_VERSION}" != "" ]]; then
|
||||
if is-at-least 16.17 $WORD_VERSION; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Word.app" "{ 'Application ID' = 'MSWD2019'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
else
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Word.app" "{ 'Application ID' = 'MSWD15'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
fi
|
||||
|
||||
EXCEL_VERSION=$(defaults read /Applications/Microsoft\ Excel.app/Contents/Info.plist CFBundleVersion)
|
||||
if [[ "${EXCEL_VERSION}" != "" ]]; then
|
||||
if is-at-least 16.17 $EXCEL_VERSION; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Excel.app" "{ 'Application ID' = 'XCEL2019'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
else
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Excel.app" "{ 'Application ID' = 'XCEL15'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
fi
|
||||
|
||||
POWERPOINT_VERSION=$(defaults read /Applications/Microsoft\ PowerPoint.app/Contents/Info.plist CFBundleVersion)
|
||||
if [[ "${POWERPOINT_VERSION}" != "" ]]; then
|
||||
if is-at-least 16.17 $POWERPOINT_VERSION; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft PowerPoint.app" "{ 'Application ID' = 'PPT32019'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
else
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft PowerPoint.app" "{ 'Application ID' = 'PPT315'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
fi
|
||||
|
||||
OUTLOOK_VERSION=$(defaults read /Applications/Microsoft\ Outlook.app/Contents/Info.plist CFBundleVersion)
|
||||
if [[ "${OUTLOOK_VERSION}" != "" ]]; then
|
||||
if is-at-least 16.17 $OUTLOOK_VERSION; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Outlook.app" "{ 'Application ID' = 'OPIM2019'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
else
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Outlook.app" "{ 'Application ID' = 'OPIM15'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
fi
|
||||
|
||||
ONENOTE_VERSION=$(defaults read /Applications/Microsoft\ OneNote.app/Contents/Info.plist CFBundleVersion)
|
||||
if [[ "${ONENOTE_VERSION}" != "" ]]; then
|
||||
if is-at-least 16.17 $ONENOTE_VERSION; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft OneNote.app" "{ 'Application ID' = 'ONMC2019'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
else
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft OneNote.app" "{ 'Application ID' = 'ONMC15'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/OneDrive.app" ]; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/OneDrive.app" "{ 'Application ID' = 'ONDR18'; LCID = 1033 ; 'App Domain' = 'com.microsoft.office' ; }"
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Microsoft Teams classic.app" ]; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Teams classic.app" "{ 'Application ID' = 'TEAMS10'; LCID = 1033 ; }"
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Microsoft Remote Desktop.app" ]; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Microsoft Remote Desktop.app" "{ 'Application ID' = 'MSRD10'; LCID = 1033 ; }"
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Skype For Business.app" ]; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Skype For Business.app" "{ 'Application ID' = 'MSFB16'; LCID = 1033 ; }"
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Company Portal.app" ]; then
|
||||
/usr/bin/defaults write /Library/Preferences/com.microsoft.autoupdate2 ApplicationsSystem -dict-add "/Applications/Company Portal.app" "{ 'Application ID' = 'IMCP01'; LCID = 1033 ; }"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
190
scripts/Office_Credentials_Reset.sh
Executable file
190
scripts/Office_Credentials_Reset.sh
Executable file
@@ -0,0 +1,190 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Credentials"
|
||||
autoload is-at-least
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
FindEntryOpenTech() {
|
||||
/usr/bin/security find-generic-password -G 'MSOpenTech.ADAL.1' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryOfficeData() {
|
||||
/usr/bin/security find-generic-password -G 'Microsoft Office Data' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryHelpShift() {
|
||||
/usr/bin/security find-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryRMSCredential() {
|
||||
/usr/bin/security find-generic-password -l 'MicrosoftOfficeRMSCredential' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryProtectionService() {
|
||||
/usr/bin/security find-generic-password -l 'MSProtection.framework.service' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryExchange() {
|
||||
/usr/bin/security find-generic-password -l 'Exchange' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryTeamsIdentity() {
|
||||
/usr/bin/security find-generic-password -l 'Microsoft Teams Identities Cache' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: 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/security list-keychains | grep 'login.keychain')
|
||||
if [ "$KeychainHasLogin" = "" ]; then
|
||||
echo "Office-Reset: Adding user login keychain to list"
|
||||
/usr/bin/security list-keychains -s "$HOME/Library/Keychains/login.keychain-db"
|
||||
fi
|
||||
|
||||
echo "Display list-keychains for logged-in user"
|
||||
/usr/bin/security list-keychains
|
||||
|
||||
echo "Office-Reset: Removing keychain entries"
|
||||
/usr/bin/security delete-generic-password -s 'OneAuthAccount'
|
||||
|
||||
/usr/bin/security delete-internet-password -s 'msoCredentialSchemeADAL'
|
||||
/usr/bin/security delete-internet-password -s 'msoCredentialSchemeLiveId'
|
||||
while [[ $(FindEntryOpenTech) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1'
|
||||
done
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 2'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 3'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 2'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 3'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache 2'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.adalcache'
|
||||
while [[ $(FindEntryOfficeData) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -G 'Microsoft Office Data'
|
||||
done
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OutlookCore.Secret'
|
||||
|
||||
while [[ $(FindEntryHelpShift) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook'
|
||||
done
|
||||
while [[ $(FindEntryRMSCredential) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential'
|
||||
done
|
||||
while [[ $(FindEntryProtectionService) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'MSProtection.framework.service'
|
||||
done
|
||||
|
||||
while [[ $(FindEntryExchange) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'Exchange'
|
||||
done
|
||||
|
||||
while [[ $(FindEntryTeamsIdentity) -eq 0 ]]; do
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Microsoft Teams Identities Cache'
|
||||
done
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Teams Safe Storage'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Microsoft Teams (work or school) Safe Storage'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'teamsIv'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'teamsKey'
|
||||
/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'
|
||||
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.FinderSync.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveUpdater.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveStandaloneUpdater.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential Business - Business1'
|
||||
/usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential'
|
||||
/usr/bin/security delete-generic-password -s 'com.microsoft.onedrive.cookies'
|
||||
/usr/bin/security delete-generic-password -s 'OneAuthAccount'
|
||||
|
||||
echo "Office-Reset: 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/Preferences/com.microsoft.office.licensingV2.plist.bak
|
||||
/bin/mv /Library/Preferences/com.microsoft.office.licensingV2.plist /Library/Preferences/com.microsoft.office.licensingV2.backup
|
||||
|
||||
/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 /Library/Microsoft/Office/Licenses
|
||||
/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/Preferences/com.microsoft.msa-login-hint.plist
|
||||
|
||||
echo "Office-Reset: Changing preferences"
|
||||
if [ -e "$HOME/Library/Preferences/com.microsoft.office.plist" ]; then
|
||||
/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
|
||||
fi
|
||||
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
|
||||
|
||||
KEYCHAIN_2_PATH=$(find $HOME/Library/Keychains/**/keychain-2.db)
|
||||
/usr/bin/sqlite3 $KEYCHAIN_2_PATH "DELETE FROM genp WHERE agrp='UBF8T346G9.com.microsoft.identity.universalstorage';"
|
||||
|
||||
/bin/rm -f $HOME/Library/Keychains/Microsoft_Entity_Certificates-db
|
||||
/bin/rm -f $HOME/Library/Group\ Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg
|
||||
|
||||
/usr/bin/killall cfprefsd
|
||||
|
||||
exit 0
|
||||
62
scripts/Office_Defender_Remove.sh
Executable file
62
scripts/Office_Defender_Remove.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_Defender"
|
||||
autoload is-at-least
|
||||
SCRIPT_FOLDER=$(/usr/bin/dirname "$0")
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Defender*'
|
||||
|
||||
if [ -e "/Applications/Microsoft Defender.app/Contents/Resources/Tools/uninstall/uninstall" ]; then
|
||||
$(/Applications/Microsoft\ Defender.app/Contents/Resources/Tools/uninstall/uninstall)
|
||||
else
|
||||
/bin/rm -rf /Applications/Microsoft\ Defender.app
|
||||
fi
|
||||
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.com.microsoft.wdav
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/com.microsoft.wdav.tray
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/com.microsoft.wdav.mainux
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/com.microsoft.wdav.shim
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Microsoft\ Defender\ Helper
|
||||
|
||||
/bin/rm -rf $HOME/Library/Caches/com.microsoft.wdav.tray
|
||||
/bin/rm -rf $HOME/Library/Caches/com.microsoft.wdav.mainux
|
||||
/bin/rm -rf $HOME/Library/Caches/com.microsoft.wdav.shim
|
||||
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.wdav.tray
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.wdav.mainux
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.wdav.shim
|
||||
|
||||
/bin/rm -rf $HOME/Library/Logs/Microsoft/Defender
|
||||
|
||||
/bin/rm -f $HOME/Library/Preferences/UBF8T346G9.com.microsoft.wdav.plist
|
||||
|
||||
/usr/sbin/pkgutil --forget com.microsoft.dlp.ux
|
||||
/usr/sbin/pkgutil --forget com.microsoft.dlp.daemon
|
||||
/usr/sbin/pkgutil --forget com.microsoft.dlp.agent
|
||||
|
||||
exit 0
|
||||
190
scripts/Office_Excel_Reset.sh
Executable file
190
scripts/Office_Excel_Reset.sh
Executable file
@@ -0,0 +1,190 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Excel"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft Excel"
|
||||
APP_GENERATION="2019"
|
||||
DOWNLOAD_2019="https://go.microsoft.com/fwlink/?linkid=525135"
|
||||
DOWNLOAD_2016="https://go.microsoft.com/fwlink/?linkid=871750"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetPrefValue() { # $1: domain, $2: key
|
||||
osascript -l JavaScript << EndOfScript
|
||||
ObjC.import('Foundation');
|
||||
ObjC.unwrap($.NSUserDefaults.alloc.initWithSuiteName('$1').objectForKey('$2'))
|
||||
EndOfScript
|
||||
}
|
||||
|
||||
GetCustomManifestVersion() {
|
||||
CHANNEL_NAME=$(GetPrefValue "com.microsoft.autoupdate2" "ChannelName")
|
||||
if [ "${CHANNEL_NAME}" = "Custom" ]; then
|
||||
MANIFEST_SERVER=$(GetPrefValue "com.microsoft.autoupdate2" "ManifestServer")
|
||||
echo "Office-Reset: Found custom ManifestServer ${MANIFEST_SERVER}"
|
||||
FULL_UPDATER=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409XCEL2019.xml | grep -A1 -m1 'FullUpdaterLocation' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom FullUpdaterLocation ${FULL_UPDATER}"
|
||||
if [[ "${FULL_UPDATER}" = "https://"* ]]; then
|
||||
CUSTOM_VERSION=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409XCEL2019-chk.xml | grep -A1 -m1 'Update Version' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom update version ${CUSTOM_VERSION}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
DOWNLOAD_URL="${DOWNLOAD_2016}"
|
||||
else
|
||||
DOWNLOAD_URL="${DOWNLOAD_2019}"
|
||||
fi
|
||||
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
GetCustomManifestVersion
|
||||
if [[ -z "${CUSTOM_VERSION}" ]]; then
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
else
|
||||
CDN_PKG_URL="${FULL_UPDATER}"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $CDN_PKG_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $CDN_PKG_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
echo "Office-Reset: Exiting without removing configuration data"
|
||||
exit 0
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Excel'
|
||||
|
||||
if [ -d "/Applications/Microsoft Excel.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Excel.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 16.17 $APP_VERSION; then
|
||||
APP_GENERATION="2016"
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2019" ]]; then
|
||||
if ! is-at-least 16.73 $APP_VERSION && is-at-least 11.0.0 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2019 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
GetCustomManifestVersion
|
||||
if [[ "${CUSTOM_VERSION}" ]] && [[ "${APP_VERSION}" != "${CUSTOM_VERSION}" ]]; then
|
||||
echo "Office-Reset: ${APP_NAME} is ${APP_VERSION} on-disk, but the pinned version has been set to ${CUSTOM_VERSION}. Removing and reinstalling"
|
||||
/bin/rm -rf /Applications/Microsoft\ Excel.app
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
if ! is-at-least 16.16 $APP_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2016 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ Excel.app
|
||||
if [ $? -gt 0 ]; then
|
||||
CODESIGN_ERROR=$(/usr/bin/codesign -vv --deep /Applications/Microsoft\ Excel.app)
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and reporting error ${CODESIGN_ERROR}"
|
||||
if [[ "${CODESIGN_ERROR}" = *"OLE.framework"* ]]; then
|
||||
echo "Office-Reset: Only OLE.framework has been modified. Ignoring the repair"
|
||||
else
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ Excel.app
|
||||
RepairApp
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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
|
||||
|
||||
/usr/bin/security delete-certificate -c 'Microsoft.Office.Excel.ProtectedDataServices'
|
||||
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.Excel
|
||||
|
||||
exit 0
|
||||
51
scripts/Office_Factory_Reset.sh
Executable file
51
scripts/Office_Factory_Reset.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Factory"
|
||||
autoload is-at-least
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Stopping apps and services"
|
||||
/usr/bin/pkill -9 'Microsoft Word'
|
||||
/usr/bin/pkill -9 'Microsoft Excel'
|
||||
/usr/bin/pkill -9 'Microsoft PowerPoint'
|
||||
/usr/bin/pkill -9 'Microsoft Outlook'
|
||||
/usr/bin/pkill -9 'Microsoft OneNote'
|
||||
/usr/bin/pkill -9 'OneDrive'
|
||||
/usr/bin/pkill -9 'FinderSync'
|
||||
/usr/bin/pkill -9 'OneDriveStandaloneUpdater'
|
||||
/usr/bin/pkill -9 'OneDriveUpdater'
|
||||
/usr/bin/pkill -9 'Microsoft Teams*'
|
||||
/usr/bin/pkill -9 'Microsoft AutoUpdate'
|
||||
/usr/bin/pkill -9 'Microsoft Update Assistant'
|
||||
/usr/bin/pkill -9 'Microsoft AU Daemon'
|
||||
/usr/bin/pkill -9 'Microsoft AU Bootstrapper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helpertool'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.bootstrapper.helper'
|
||||
/usr/bin/pkill -9 'com.microsoft.teams2.launcher'
|
||||
|
||||
exit 0
|
||||
202
scripts/Office_OneDrive_Reset.sh
Executable file
202
scripts/Office_OneDrive_Reset.sh
Executable file
@@ -0,0 +1,202 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_OneDrive"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft OneDrive"
|
||||
DOWNLOAD_URL="https://go.microsoft.com/fwlink/?linkid=861011"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $DOWNLOAD_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'OneDrive'
|
||||
/usr/bin/pkill -9 'FinderSync'
|
||||
/usr/bin/pkill -9 'OneDriveStandaloneUpdater'
|
||||
/usr/bin/pkill -9 'OneDriveUpdater'
|
||||
|
||||
if [ -d "/Applications/OneDrive.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/OneDrive.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 23154.0 $APP_VERSION && is-at-least 10.15 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/OneDrive.app
|
||||
if [ $? -gt 0 ]; then
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/OneDrive.app
|
||||
RepairApp
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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 -rf $HOME/Library/Caches/com.microsoft.SyncReporter
|
||||
/bin/rm -rf $HOME/Library/Caches/com.microsoft.SharePoint-mac
|
||||
|
||||
/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/HTTPStorages/com.microsoft.OneDrive
|
||||
/bin/rm -f $HOME/Library/HTTPStorages/com.microsoft.OneDrive.binarycookies
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.OneDriveUpdater
|
||||
/bin/rm -f $HOME/Library/HTTPStorages/com.microsoft.OneDriveUpdater.binarycookies
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.SharePoint-mac
|
||||
/bin/rm -f $HOME/Library/HTTPStorages/com.microsoft.SharePoint-mac.binarycookies
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.SyncReporter
|
||||
/bin/rm -f $HOME/Library/HTTPStorages/com.microsoft.SyncReporter.binarycookies
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.OneDriveStandaloneUpdater
|
||||
/bin/rm -f $HOME/Library/HTTPStorages/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/Containers/com.microsoft.OneDrive.FileProvider
|
||||
|
||||
/bin/rm -rf $HOME/Library/Logs/OneDrive
|
||||
/bin/rm -rf /Library/Logs/Microsoft/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/com.microsoft.SharePoint-mac
|
||||
/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/Application\ Scripts/com.microsoft.OneDrive.FileProvider
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.OneDriveStandaloneSuite
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.OfficeOneDriveSyncIntegration
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.OneDriveSyncClientSuite
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.Kfm
|
||||
|
||||
/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 -rf $HOME/Library/Group\ Containers/UBF8T346G9.Kfm
|
||||
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.OneDrive.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.SharePoint-mac.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 $HOME/Library/Preferences/UBF8T346G9.OfficeOneDriveSyncIntegration.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 $TMPDIR/com.microsoft.OneDrive
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.OneDrive.FinderSync
|
||||
/bin/rm -f $TMPDIR/OneDriveVersion.xml
|
||||
|
||||
KeychainHasLogin=$(/usr/bin/security list-keychains | grep 'login.keychain')
|
||||
if [ "$KeychainHasLogin" = "" ]; then
|
||||
echo "Office-Reset: Adding user login keychain to list"
|
||||
/usr/bin/security list-keychains -s "$HOME/Library/Keychains/login.keychain-db"
|
||||
fi
|
||||
|
||||
echo "Display list-keychains for logged-in user"
|
||||
/usr/bin/security list-keychains
|
||||
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.FinderSync.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDrive.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveUpdater.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OneDriveStandaloneUpdater.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential Business - Business1'
|
||||
/usr/bin/security delete-generic-password -l 'OneDrive Standalone Cached Credential'
|
||||
/usr/bin/security delete-generic-password -s 'com.microsoft.onedrive.cookies'
|
||||
/usr/bin/security delete-generic-password -s 'OneAuthAccount'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.adalcache'
|
||||
/bin/rm -rf $HOME/Library/Group\ Containers/UBF8T346G9.com.microsoft.oneauth
|
||||
|
||||
KEYCHAIN_2_PATH=$(find $HOME/Library/Keychains/**/keychain-2.db)
|
||||
/usr/bin/sqlite3 $KEYCHAIN_2_PATH "DELETE FROM genp WHERE agrp='UBF8T346G9.com.microsoft.identity.universalstorage';"
|
||||
|
||||
exit 0
|
||||
35
scripts/Office_OneNote_Remove_Data.sh
Executable file
35
scripts/Office_OneNote_Remove_Data.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_OneNote_Data"
|
||||
autoload is-at-least
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft OneNote'
|
||||
|
||||
/bin/rm -rf $HOME/Library/Containers/com.microsoft.onenote.mac
|
||||
|
||||
exit 0
|
||||
180
scripts/Office_OneNote_Reset.sh
Executable file
180
scripts/Office_OneNote_Reset.sh
Executable file
@@ -0,0 +1,180 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_OneNote"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft OneNote"
|
||||
APP_GENERATION="2019"
|
||||
DOWNLOAD_2019="https://go.microsoft.com/fwlink/?linkid=820886"
|
||||
DOWNLOAD_2016="https://go.microsoft.com/fwlink/?linkid=871755"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetPrefValue() { # $1: domain, $2: key
|
||||
osascript -l JavaScript << EndOfScript
|
||||
ObjC.import('Foundation');
|
||||
ObjC.unwrap($.NSUserDefaults.alloc.initWithSuiteName('$1').objectForKey('$2'))
|
||||
EndOfScript
|
||||
}
|
||||
|
||||
GetCustomManifestVersion() {
|
||||
CHANNEL_NAME=$(GetPrefValue "com.microsoft.autoupdate2" "ChannelName")
|
||||
if [ "${CHANNEL_NAME}" = "Custom" ]; then
|
||||
MANIFEST_SERVER=$(GetPrefValue "com.microsoft.autoupdate2" "ManifestServer")
|
||||
echo "Office-Reset: Found custom ManifestServer ${MANIFEST_SERVER}"
|
||||
FULL_UPDATER=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409ONMC2019.xml | grep -A1 -m1 'FullUpdaterLocation' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom FullUpdaterLocation ${FULL_UPDATER}"
|
||||
if [[ "${FULL_UPDATER}" = "https://"* ]]; then
|
||||
CUSTOM_VERSION=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409ONMC2019-chk.xml | grep -A1 -m1 'Update Version' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom update version ${CUSTOM_VERSION}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
DOWNLOAD_URL="${DOWNLOAD_2016}"
|
||||
else
|
||||
DOWNLOAD_URL="${DOWNLOAD_2019}"
|
||||
fi
|
||||
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
GetCustomManifestVersion
|
||||
if [[ -z "${CUSTOM_VERSION}" ]]; then
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
else
|
||||
CDN_PKG_URL="${FULL_UPDATER}"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $CDN_PKG_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $CDN_PKG_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
echo "Office-Reset: Exiting without removing configuration data"
|
||||
exit 0
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft OneNote'
|
||||
|
||||
if [ -d "/Applications/Microsoft OneNote.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ OneNote.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 16.17 $APP_VERSION; then
|
||||
APP_GENERATION="2016"
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2019" ]]; then
|
||||
if ! is-at-least 16.73 $APP_VERSION && is-at-least 11.0.0 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2019 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
GetCustomManifestVersion
|
||||
if [[ "${CUSTOM_VERSION}" ]] && [[ "${APP_VERSION}" != "${CUSTOM_VERSION}" ]]; then
|
||||
echo "Office-Reset: ${APP_NAME} is ${APP_VERSION} on-disk, but the pinned version has been set to ${CUSTOM_VERSION}. Removing and reinstalling"
|
||||
/bin/rm -rf /Applications/Microsoft\ OneNote.app
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
if ! is-at-least 16.16 $APP_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2016 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ OneNote.app
|
||||
if [ $? -gt 0 ]; then
|
||||
CODESIGN_ERROR=$(/usr/bin/codesign -vv --deep /Applications/Microsoft\ OneNote.app)
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and reporting error ${CODESIGN_ERROR}"
|
||||
if [[ "${CODESIGN_ERROR}" = *"OLE.framework"* ]]; then
|
||||
echo "Office-Reset: Only OLE.framework has been modified. Ignoring the repair"
|
||||
else
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ OneNote.app
|
||||
RepairApp
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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
|
||||
## OneNote Sync Cache is under $HOME/Library/Containers/com.microsoft.onenote.mac/Data/Library/Application\ Support/Microsoft\ User\ Data/
|
||||
/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 $HOME/Library/Application\ Scripts/com.microsoft.onenote.mac.shareextension
|
||||
|
||||
/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
|
||||
|
||||
exit 0
|
||||
38
scripts/Office_Outlook_Remove_Data.sh
Executable file
38
scripts/Office_Outlook_Remove_Data.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_Outlook_Data"
|
||||
autoload is-at-least
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Outlook'
|
||||
|
||||
/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
|
||||
|
||||
exit 0
|
||||
249
scripts/Office_Outlook_Reset.sh
Executable file
249
scripts/Office_Outlook_Reset.sh
Executable file
@@ -0,0 +1,249 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Outlook"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft Outlook"
|
||||
APP_GENERATION="2019"
|
||||
DOWNLOAD_2019="https://go.microsoft.com/fwlink/?linkid=525137"
|
||||
DOWNLOAD_2016="https://go.microsoft.com/fwlink/?linkid=871753"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetPrefValue() { # $1: domain, $2: key
|
||||
osascript -l JavaScript << EndOfScript
|
||||
ObjC.import('Foundation');
|
||||
ObjC.unwrap($.NSUserDefaults.alloc.initWithSuiteName('$1').objectForKey('$2'))
|
||||
EndOfScript
|
||||
}
|
||||
|
||||
GetCustomManifestVersion() {
|
||||
CHANNEL_NAME=$(GetPrefValue "com.microsoft.autoupdate2" "ChannelName")
|
||||
if [ "${CHANNEL_NAME}" = "Custom" ]; then
|
||||
MANIFEST_SERVER=$(GetPrefValue "com.microsoft.autoupdate2" "ManifestServer")
|
||||
echo "Office-Reset: Found custom ManifestServer ${MANIFEST_SERVER}"
|
||||
FULL_UPDATER=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409OPIM2019.xml | grep -A1 -m1 'FullUpdaterLocation' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom FullUpdaterLocation ${FULL_UPDATER}"
|
||||
if [[ "${FULL_UPDATER}" = "https://"* ]]; then
|
||||
CUSTOM_VERSION=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409OPIM2019-chk.xml | grep -A1 -m1 'Update Version' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom update version ${CUSTOM_VERSION}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
DOWNLOAD_URL="${DOWNLOAD_2016}"
|
||||
else
|
||||
DOWNLOAD_URL="${DOWNLOAD_2019}"
|
||||
fi
|
||||
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
GetCustomManifestVersion
|
||||
if [[ -z "${CUSTOM_VERSION}" ]]; then
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
else
|
||||
CDN_PKG_URL="${FULL_UPDATER}"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $CDN_PKG_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $CDN_PKG_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
echo "Office-Reset: Exiting without removing configuration data"
|
||||
exit 0
|
||||
}
|
||||
|
||||
FindEntryOpenTech() {
|
||||
/usr/bin/security find-generic-password -G 'MSOpenTech.ADAL.1' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryHelpShift() {
|
||||
/usr/bin/security find-generic-password -l 'com.helpshift.data_com.microsoft.Outlook' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryRMSCredential() {
|
||||
/usr/bin/security find-generic-password -l 'MicrosoftOfficeRMSCredential' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryProtectionService() {
|
||||
/usr/bin/security find-generic-password -l 'MSProtection.framework.service' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
FindEntryExchange() {
|
||||
/usr/bin/security find-generic-password -l 'Exchange' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Outlook'
|
||||
|
||||
if [ -d "/Applications/Microsoft Outlook.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Outlook.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 16.17 $APP_VERSION; then
|
||||
APP_GENERATION="2016"
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2019" ]]; then
|
||||
if ! is-at-least 16.73 $APP_VERSION && is-at-least 11.0.0 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2019 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
GetCustomManifestVersion
|
||||
if [[ "${CUSTOM_VERSION}" ]] && [[ "${APP_VERSION}" != "${CUSTOM_VERSION}" ]]; then
|
||||
echo "Office-Reset: ${APP_NAME} is ${APP_VERSION} on-disk, but the pinned version has been set to ${CUSTOM_VERSION}. Removing and reinstalling"
|
||||
/bin/rm -rf /Applications/Microsoft\ Outlook.app
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
if ! is-at-least 16.16 $APP_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2016 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ Outlook.app
|
||||
if [ $? -gt 0 ]; then
|
||||
CODESIGN_ERROR=$(/usr/bin/codesign -vv --deep /Applications/Microsoft\ Outlook.app)
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and reporting error ${CODESIGN_ERROR}"
|
||||
if [[ "${CODESIGN_ERROR}" = *"OLE.framework"* ]]; then
|
||||
echo "Office-Reset: Only OLE.framework has been modified. Ignoring the repair"
|
||||
else
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ Outlook.app
|
||||
RepairApp
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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/Containers/com.microsoft.Outlook.CalendarWidget
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.Outlook
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.Outlook.CalendarWidget
|
||||
|
||||
/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 $TMPDIR/com.microsoft.Outlook
|
||||
|
||||
/bin/rm -rf /Applications/.Microsoft\ Outlook.app.installBackup
|
||||
|
||||
KeychainHasLogin=$(/usr/bin/security list-keychains | grep 'login.keychain')
|
||||
if [ "$KeychainHasLogin" = "" ]; then
|
||||
echo "Office-Reset: Adding user login keychain to list"
|
||||
/usr/bin/security list-keychains -s "$HOME/Library/Keychains/login.keychain-db"
|
||||
fi
|
||||
|
||||
echo "Display list-keychains for logged-in user"
|
||||
/usr/bin/security list-keychains
|
||||
|
||||
/usr/bin/security delete-internet-password -s 'msoCredentialSchemeADAL'
|
||||
/usr/bin/security delete-internet-password -s 'msoCredentialSchemeLiveId'
|
||||
while [[ $(FindEntryOpenTech) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -G 'MSOpenTech.ADAL.1'
|
||||
done
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 2'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Cache 3'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 2'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Identities Settings 3'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache'
|
||||
/usr/bin/security delete-generic-password -l 'Microsoft Office Ticket Cache 2'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.adalcache'
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.OutlookCore.Secret'
|
||||
while [[ $(FindEntryHelpShift) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'com.helpshift.data_com.microsoft.Outlook'
|
||||
done
|
||||
while [[ $(FindEntryRMSCredential) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'MicrosoftOfficeRMSCredential'
|
||||
done
|
||||
while [[ $(FindEntryProtectionService) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'MSProtection.framework.service'
|
||||
done
|
||||
|
||||
while [[ $(FindEntryExchange) -eq 0 ]]; do
|
||||
/usr/bin/security delete-generic-password -l 'Exchange'
|
||||
done
|
||||
|
||||
exit 0
|
||||
195
scripts/Office_PowerPoint_Reset.sh
Executable file
195
scripts/Office_PowerPoint_Reset.sh
Executable file
@@ -0,0 +1,195 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_PowerPoint"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft PowerPoint"
|
||||
APP_GENERATION="2019"
|
||||
DOWNLOAD_2019="https://go.microsoft.com/fwlink/?linkid=525136"
|
||||
DOWNLOAD_2016="https://go.microsoft.com/fwlink/?linkid=871751"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetPrefValue() { # $1: domain, $2: key
|
||||
osascript -l JavaScript << EndOfScript
|
||||
ObjC.import('Foundation');
|
||||
ObjC.unwrap($.NSUserDefaults.alloc.initWithSuiteName('$1').objectForKey('$2'))
|
||||
EndOfScript
|
||||
}
|
||||
|
||||
GetCustomManifestVersion() {
|
||||
CHANNEL_NAME=$(GetPrefValue "com.microsoft.autoupdate2" "ChannelName")
|
||||
if [ "${CHANNEL_NAME}" = "Custom" ]; then
|
||||
MANIFEST_SERVER=$(GetPrefValue "com.microsoft.autoupdate2" "ManifestServer")
|
||||
echo "Office-Reset: Found custom ManifestServer ${MANIFEST_SERVER}"
|
||||
FULL_UPDATER=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409PPT32019.xml | grep -A1 -m1 'FullUpdaterLocation' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom FullUpdaterLocation ${FULL_UPDATER}"
|
||||
if [[ "${FULL_UPDATER}" = "https://"* ]]; then
|
||||
CUSTOM_VERSION=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409PPT32019-chk.xml | grep -A1 -m1 'Update Version' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom update version ${CUSTOM_VERSION}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
DOWNLOAD_URL="${DOWNLOAD_2016}"
|
||||
else
|
||||
DOWNLOAD_URL="${DOWNLOAD_2019}"
|
||||
fi
|
||||
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
GetCustomManifestVersion
|
||||
if [[ -z "${CUSTOM_VERSION}" ]]; then
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
else
|
||||
CDN_PKG_URL="${FULL_UPDATER}"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $CDN_PKG_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $CDN_PKG_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
echo "Office-Reset: Exiting without removing configuration data"
|
||||
exit 0
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft PowerPoint'
|
||||
|
||||
if [ -d "/Applications/Microsoft PowerPoint.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ PowerPoint.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 16.17 $APP_VERSION; then
|
||||
APP_GENERATION="2016"
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2019" ]]; then
|
||||
if ! is-at-least 16.73 $APP_VERSION && is-at-least 11.0.0 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2019 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
GetCustomManifestVersion
|
||||
if [[ "${CUSTOM_VERSION}" ]] && [[ "${APP_VERSION}" != "${CUSTOM_VERSION}" ]]; then
|
||||
echo "Office-Reset: ${APP_NAME} is ${APP_VERSION} on-disk, but the pinned version has been set to ${CUSTOM_VERSION}. Removing and reinstalling"
|
||||
/bin/rm -rf /Applications/Microsoft\ PowerPoint.app
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
if ! is-at-least 16.16 $APP_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2016 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ PowerPoint.app
|
||||
if [ $? -gt 0 ]; then
|
||||
CODESIGN_ERROR=$(/usr/bin/codesign -vv --deep /Applications/Microsoft\ PowerPoint.app)
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and reporting error ${CODESIGN_ERROR}"
|
||||
if [[ "${CODESIGN_ERROR}" = *"OLE.framework"* ]]; then
|
||||
echo "Office-Reset: Only OLE.framework has been modified. Ignoring the repair"
|
||||
else
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ PowerPoint.app
|
||||
RepairApp
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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
|
||||
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.Powerpoint
|
||||
|
||||
exit 0
|
||||
170
scripts/Office_Remove.sh
Executable file
170
scripts/Office_Remove.sh
Executable file
@@ -0,0 +1,170 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting preinstall for Remove_Office"
|
||||
autoload is-at-least
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Stopping services"
|
||||
/usr/bin/pkill -9 'Microsoft Word'
|
||||
/usr/bin/pkill -9 'Microsoft Excel'
|
||||
/usr/bin/pkill -9 'Microsoft PowerPoint'
|
||||
/usr/bin/pkill -9 'Microsoft Outlook'
|
||||
/usr/bin/pkill -9 'Microsoft OneNote'
|
||||
/usr/bin/pkill -9 'OneDrive'
|
||||
/usr/bin/pkill -9 'OneDrive Finder Integration'
|
||||
/usr/bin/pkill -9 'OneDriveStandaloneUpdater'
|
||||
/usr/bin/pkill -9 'OneDriveUpdater'
|
||||
/usr/bin/pkill -9 'Microsoft Teams*'
|
||||
/usr/bin/pkill -9 'Microsoft AutoUpdate'
|
||||
/usr/bin/pkill -9 'Microsoft Update Assistant'
|
||||
/usr/bin/pkill -9 'Microsoft AU Daemon'
|
||||
/usr/bin/pkill -9 'Microsoft AU Bootstrapper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helper'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.helpertool'
|
||||
/usr/bin/pkill -9 'com.microsoft.autoupdate.bootstrapper.helper'
|
||||
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.update.agent.plist
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.OneDriveStandaloneUpdater.plist
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.microsoft.SyncReporter.plist
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.autoupdate.helper
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.OneDriveUpdaterDaemon.plist
|
||||
/bin/launchctl stop /Library/LaunchDaemons/com.microsoft.teams.TeamsUpdaterDaemon.plist
|
||||
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.microsoft.update.agent.plist
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.microsoft.OneDriveStandaloneUpdater.plist
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.autoupdate.helper
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.autoupdate.helper.plist
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.OneDriveUpdaterDaemon.plist
|
||||
/bin/launchctl unload /Library/LaunchDaemons/com.microsoft.teams.TeamsUpdaterDaemon.plist
|
||||
|
||||
echo "Office-Reset: Removing apps"
|
||||
/bin/rm -rf /Applications/Microsoft\ Word.app
|
||||
/bin/rm -rf /Applications/Microsoft\ Excel.app
|
||||
/bin/rm -rf /Applications/Microsoft\ PowerPoint.app
|
||||
/bin/rm -rf /Applications/Microsoft\ Outlook.app
|
||||
/bin/rm -rf /Applications/Microsoft\ OneNote.app
|
||||
/bin/rm -rf /Applications/OneDrive.app
|
||||
/bin/rm -rf /Applications/Microsoft\ Teams.app
|
||||
/bin/rm -rf /Applications/Microsoft\ Teams\ classic.app
|
||||
/bin/rm -rf /Applications/Microsoft\ Teams\ \(work\ or\ school\).app
|
||||
/bin/rm -rf /Applications/CodeSignSummary-*.md
|
||||
|
||||
echo "Office-Reset: Removing app data"
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/MAU2.0
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/MERP2.0
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/Office365
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Microsoft
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.errorreporting
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.com.microsoft.oneauth
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.Office
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.ms
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/UBF8T346G9.OfficeOsfWebHost
|
||||
|
||||
/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.SyncReporter.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/Audio/Plug-Ins/HAL/MSTeamsAudioDevice.driver
|
||||
|
||||
/bin/rm -rf /Library/Logs/Microsoft
|
||||
/bin/rm -rf $HOME/Library/Logs/Microsoft
|
||||
|
||||
# OneDriveFolder=$(/bin/ls "$HOME" | grep 'OneDrive' --max-count=1)
|
||||
# if [ "$OneDriveFolder" != "" ]; then
|
||||
# IsOneDrive=$(/usr/bin/xattr "$HOME/$OneDriveFolder" | grep 'com.apple.fileutil.SyncRootProviderRootContextList')
|
||||
# if [ "$IsOneDrive" = "com.apple.fileutil.SyncRootProviderRootContextList" ]; then
|
||||
# echo "Office-Reset: Removing OneDrive folder $OneDriveFolder"
|
||||
# /bin/rm -rf "$HOME/$OneDriveFolder"
|
||||
# fi
|
||||
# fi
|
||||
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.autoupdate2.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.autoupdate.fba.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.shared.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.office.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.Word.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.Excel.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.Powerpoint.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.Outlook.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.onenote.mac.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.OneDrive-mac.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.OneDrive.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.teams.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.autoupdate2.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.autoupdate.fba.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.shared.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.office.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.Word.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.Excel.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.Powerpoint.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.Outlook.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.onenote.mac.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.OneDrive-mac.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.OneDrive.plist
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.teams.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.shared.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.office.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.Word.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.Excel.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.Powerpoint.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.Outlook.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.onenote.mac.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.OneDrive-mac.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.OneDrive.plist
|
||||
/bin/rm -f /Library/Managed\ Preferences/com.microsoft.teams.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/Caches/Microsoft
|
||||
|
||||
/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/Group\ Containers/group.com.microsoft
|
||||
/bin/rm -rf $HOME/Library/Group\ Containers/UBF8T346G9.com.microsoft.oneauth
|
||||
|
||||
/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 -rf $HOME/Library/Containers/com.microsoft.RMS-XPCService
|
||||
|
||||
exit 0
|
||||
80
scripts/Office_Remove_2.sh
Executable file
80
scripts/Office_Remove_2.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_Office"
|
||||
autoload is-at-least
|
||||
SCRIPT_FOLDER=$(/usr/bin/dirname "$0")
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Removing package receipts"
|
||||
/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.com.microsoft.office.licensingV2.helper
|
||||
|
||||
/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.office.licensingV2.helper
|
||||
|
||||
/usr/sbin/pkgutil --forget com.microsoft.teams
|
||||
/usr/sbin/pkgutil --forget com.microsoft.teams2
|
||||
/usr/sbin/pkgutil --forget com.microsoft.MSTeamsAudioDevice
|
||||
|
||||
/usr/sbin/pkgutil --forget com.microsoft.wdav
|
||||
|
||||
/usr/sbin/pkgutil --forget com.microsoft.OneDrive
|
||||
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.office.licensingV2.backup
|
||||
/bin/rm -f /Library/Preferences/com.microsoft.autoupdate2.plist
|
||||
/bin/rm -f $HOME/Library/Preferences/com.microsoft.autoupdate2.plist
|
||||
|
||||
/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 -f $HOME/Library/Cookies/com.microsoft.teams.binarycookies
|
||||
|
||||
/bin/rm -rf /Library/Logs/Microsoft
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft
|
||||
|
||||
/bin/rm -rf /Users/Shared/OnDemandInstaller
|
||||
|
||||
exit 0
|
||||
56
scripts/Office_SkypeForBusiness_Remove.sh
Executable file
56
scripts/Office_SkypeForBusiness_Remove.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_SkypeForBusiness"
|
||||
autoload is-at-least
|
||||
SCRIPT_FOLDER=$(/usr/bin/dirname "$0")
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Skype for Business'
|
||||
|
||||
/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/security list-keychains | grep 'login.keychain')
|
||||
if [ "$KeychainHasLogin" = "" ]; then
|
||||
echo "Office-Reset: Adding user login keychain to list"
|
||||
/usr/bin/security list-keychains -s "$HOME/Library/Keychains/login.keychain-db"
|
||||
fi
|
||||
|
||||
/usr/bin/security delete-generic-password -l 'com.microsoft.SkypeForBusiness.HockeySDK'
|
||||
/usr/bin/security delete-generic-password -l 'Skype for Business'
|
||||
|
||||
/bin/rm -rf /Applications/Skype\ for\ Business.app
|
||||
|
||||
/usr/sbin/pkgutil --forget com.microsoft.package.Microsoft_AU_Bootstrapper.app
|
||||
/usr/sbin/pkgutil --forget com.microsoft.SkypeForBusiness
|
||||
|
||||
exit 0
|
||||
208
scripts/Office_Teams_Reset.sh
Executable file
208
scripts/Office_Teams_Reset.sh
Executable file
@@ -0,0 +1,208 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Teams"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft Teams"
|
||||
DOWNLOAD_URL_TEAMS10="https://go.microsoft.com/fwlink/?linkid=869428"
|
||||
DOWNLOAD_URL_TEAMS21="https://go.microsoft.com/fwlink/?linkid=2249065"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
DOWNLOAD_URL="$1"
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $DOWNLOAD_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
FindEntryTeamsIdentity() {
|
||||
/usr/bin/security find-generic-password -l 'Microsoft Teams Identities Cache' 2> /dev/null 1> /dev/null
|
||||
echo $?
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Teams*'
|
||||
|
||||
if [ -d "/Applications/Microsoft Teams.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Teams.app/Contents/Info.plist CFBundleVersion)
|
||||
APP_BUNDLEID=$(defaults read /Applications/Microsoft\ Teams.app/Contents/Info.plist CFBundleIdentifier)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME} with bundle ID ${APP_BUNDLEID}"
|
||||
if [[ "${APP_BUNDLEID}" == "com.microsoft.teams" ]]; then
|
||||
if ! is-at-least 611156.0 $APP_VERSION && is-at-least 10.15 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} is ancient. Updating it now"
|
||||
RepairApp "$DOWNLOAD_URL_TEAMS10"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Microsoft Teams classic.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Teams\ classic.app/Contents/Info.plist CFBundleVersion)
|
||||
APP_BUNDLEID=$(defaults read /Applications/Microsoft\ Teams.app/Contents/Info.plist CFBundleIdentifier)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME} with bundle ID ${APP_BUNDLEID}"
|
||||
if ! is-at-least 627656.0 $APP_VERSION && is-at-least 10.15 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} is ancient. Updating it now"
|
||||
RepairApp "$DOWNLOAD_URL_TEAMS10"
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ Teams\ classic.app
|
||||
if [ $? -gt 0 ]; then
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ Teams\ classic.app
|
||||
RepairApp "$DOWNLOAD_URL_TEAMS10"
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d "/Applications/Microsoft Teams (work or school).app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Teams\ \(work\ or\ school\).app/Contents/Info.plist CFBundleVersion)
|
||||
APP_BUNDLEID=$(defaults read /Applications/Microsoft\ Teams\ \(work\ or\ school\).app/Contents/Info.plist CFBundleIdentifier)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME} with bundle ID ${APP_BUNDLEID}"
|
||||
if ! is-at-least 23247.0 $APP_VERSION && is-at-least 10.15 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} is ancient. Updating it now"
|
||||
RepairApp "$DOWNLOAD_URL_TEAMS21"
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ Teams\ \(work\ or\ school\).app
|
||||
if [ $? -gt 0 ]; then
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ Teams\ \(work\ or\ school\).app
|
||||
RepairApp "$DOWNLOAD_URL_TEAMS21"
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Teams
|
||||
/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/Application\ Scripts/UBF8T346G9.com.microsoft.teams
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.teams2
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.teams2.launcher
|
||||
/bin/rm -rf $HOME/Library/Application\ Scripts/com.microsoft.teams2.notificationcenter
|
||||
|
||||
/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 -f $HOME/Library/HTTPStorages/com.microsoft.teams.binarycookies
|
||||
/bin/rm -rf $HOME/Library/HTTPStorages/com.microsoft.teams
|
||||
/bin/rm -rf $HOME/Library/Logs/Microsoft\ Teams
|
||||
/bin/rm -rf $HOME/Library/Logs/Microsoft\ Teams\ Helper
|
||||
/bin/rm -rf $HOME/Library/Logs/Microsoft\ Teams\ Helper \(Renderer\)
|
||||
/bin/rm -rf $HOME/Library/Saved\ Application\ State/com.microsoft.teams.savedState
|
||||
/bin/rm -rf $HOME/Library/WebKit/com.microsoft.teams
|
||||
|
||||
/bin/rm -rf $HOME/Library/Containers/com.microsoft.teams2
|
||||
/bin/rm -rf $HOME/Library/Containers/com.microsoft.teams2.launcher
|
||||
/bin/rm -rf $HOME/Library/Containers/com.microsoft.teams2.notificationcenter
|
||||
/bin/rm -rf $HOME/Library/Group\ Containers/UBF8T346G9.com.microsoft.teams
|
||||
/bin/rm -rf $HOME/Library/Group\ Containers/UBF8T346G9.com.microsoft.oneauth
|
||||
|
||||
/bin/rm -rf /Library/Application\ Support/TeamsUpdaterDaemon
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/TeamsUpdaterDaemon
|
||||
/bin/rm -rf /Library/Application\ Support/Teams
|
||||
|
||||
/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
|
||||
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.teams
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.teams\ Crashes
|
||||
/bin/rm -rf $TMPDIR/Teams
|
||||
/bin/rm -rf $TMPDIR/Microsoft\ Teams\ Helper\ \(Renderer\)
|
||||
/bin/rm -rf $TMPDIR/v8-compile-cache-501
|
||||
|
||||
/bin/rm -rf /Library/Logs/Microsoft/Teams
|
||||
|
||||
KeychainHasLogin=$(/usr/bin/sudo -u $LoggedInUser /usr/bin/security list-keychains | grep 'login.keychain')
|
||||
if [ "$KeychainHasLogin" = "" ]; then
|
||||
echo "Office-Reset: Adding user login keychain to list"
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security list-keychains -s "$HOME/Library/Keychains/login.keychain-db"
|
||||
fi
|
||||
|
||||
echo "Display list-keychains for logged-in user"
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security list-keychains
|
||||
|
||||
|
||||
while [[ $(FindEntryTeamsIdentity) -eq 0 ]]; do
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Microsoft Teams Identities Cache'
|
||||
done
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Teams Safe Storage'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'Microsoft Teams (work or school) Safe Storage'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'teamsIv'
|
||||
/usr/bin/sudo -u $LoggedInUser /usr/bin/security delete-generic-password -l 'teamsKey'
|
||||
/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'
|
||||
|
||||
exit 0
|
||||
190
scripts/Office_Word_Reset.sh
Executable file
190
scripts/Office_Word_Reset.sh
Executable file
@@ -0,0 +1,190 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Reset_Word"
|
||||
autoload is-at-least
|
||||
APP_NAME="Microsoft Word"
|
||||
APP_GENERATION="2019"
|
||||
DOWNLOAD_2019="https://go.microsoft.com/fwlink/?linkid=525134"
|
||||
DOWNLOAD_2016="https://go.microsoft.com/fwlink/?linkid=871748"
|
||||
OS_VERSION=$(sw_vers -productVersion)
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetPrefValue() { # $1: domain, $2: key
|
||||
osascript -l JavaScript << EndOfScript
|
||||
ObjC.import('Foundation');
|
||||
ObjC.unwrap($.NSUserDefaults.alloc.initWithSuiteName('$1').objectForKey('$2'))
|
||||
EndOfScript
|
||||
}
|
||||
|
||||
GetCustomManifestVersion() {
|
||||
CHANNEL_NAME=$(GetPrefValue "com.microsoft.autoupdate2" "ChannelName")
|
||||
if [ "${CHANNEL_NAME}" = "Custom" ]; then
|
||||
MANIFEST_SERVER=$(GetPrefValue "com.microsoft.autoupdate2" "ManifestServer")
|
||||
echo "Office-Reset: Found custom ManifestServer ${MANIFEST_SERVER}"
|
||||
FULL_UPDATER=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409MSWD2019.xml | grep -A1 -m1 'FullUpdaterLocation' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom FullUpdaterLocation ${FULL_UPDATER}"
|
||||
if [[ "${FULL_UPDATER}" = "https://"* ]]; then
|
||||
CUSTOM_VERSION=$(/usr/bin/nscurl --location ${MANIFEST_SERVER}/0409MSWD2019-chk.xml | grep -A1 -m1 'Update Version' | grep 'string' | sed -e 's,.*<string>\([^<]*\)</string>.*,\1,g')
|
||||
echo "Office-Reset: Found custom update version ${CUSTOM_VERSION}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
RepairApp() {
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
DOWNLOAD_URL="${DOWNLOAD_2016}"
|
||||
else
|
||||
DOWNLOAD_URL="${DOWNLOAD_2019}"
|
||||
fi
|
||||
|
||||
DOWNLOAD_FOLDER="/Users/Shared/OnDemandInstaller/"
|
||||
if [ -d "$DOWNLOAD_FOLDER" ]; then
|
||||
rm -rf "$DOWNLOAD_FOLDER"
|
||||
fi
|
||||
mkdir -p "$DOWNLOAD_FOLDER"
|
||||
|
||||
GetCustomManifestVersion
|
||||
if [[ -z "${CUSTOM_VERSION}" ]]; then
|
||||
CDN_PKG_URL=$(/usr/bin/nscurl --location --head $DOWNLOAD_URL --dump-header - | awk '/Location/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
else
|
||||
CDN_PKG_URL="${FULL_UPDATER}"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Package to download is ${CDN_PKG_URL}"
|
||||
CDN_PKG_NAME=$(/usr/bin/basename "${CDN_PKG_URL}")
|
||||
|
||||
CDN_PKG_SIZE=$(/usr/bin/nscurl --location --head $CDN_PKG_URL --dump-header - | awk '/Content-Length/' | cut -d ' ' -f2 | tail -1 | awk '{$1=$1};1')
|
||||
CDN_PKG_MB=$(/bin/expr ${CDN_PKG_SIZE} / 1000 / 1000)
|
||||
echo "Office-Reset: Download package is ${CDN_PKG_MB} megabytes in size"
|
||||
|
||||
echo "Office-Reset: Starting ${APP_NAME} package download"
|
||||
/usr/bin/nscurl --background --download --large-download --location --download-directory $DOWNLOAD_FOLDER $CDN_PKG_URL
|
||||
echo "Office-Reset: Finished package download"
|
||||
|
||||
LOCAL_PKG_SIZE=$(cd "${DOWNLOAD_FOLDER}" && stat -qf%z "${CDN_PKG_NAME}")
|
||||
if [[ "${LOCAL_PKG_SIZE}" == "${CDN_PKG_SIZE}" ]]; then
|
||||
echo "Office-Reset: Downloaded package is wholesome"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is malformed. Local file size: ${LOCAL_PKG_SIZE}"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LOCAL_PKG_SIGNING=$(/usr/sbin/pkgutil --check-signature ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} | awk '/Developer ID Installer'/ | cut -d ':' -f 2 | awk '{$1=$1};1')
|
||||
if [[ "${LOCAL_PKG_SIGNING}" == "Microsoft Corporation (UBF8T346G9)" ]]; then
|
||||
echo "Office-Reset: Downloaded package is signed by Microsoft"
|
||||
else
|
||||
echo "Office-Reset: Downloaded package is not signed by Microsoft"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Starting package install"
|
||||
sudo /usr/sbin/installer -pkg ${DOWNLOAD_FOLDER}${CDN_PKG_NAME} -target /
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Office-Reset: Package installed successfully"
|
||||
else
|
||||
echo "Office-Reset: Package installation failed"
|
||||
echo "Office-Reset: Please manually download and install ${APP_NAME} from ${CDN_PKG_URL}"
|
||||
exit 0
|
||||
fi
|
||||
echo "Office-Reset: Exiting without removing configuration data"
|
||||
exit 0
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME; Temp Folder: $TMPDIR"
|
||||
|
||||
/usr/bin/pkill -9 'Microsoft Word'
|
||||
|
||||
if [ -d "/Applications/Microsoft Word.app" ]; then
|
||||
APP_VERSION=$(defaults read /Applications/Microsoft\ Word.app/Contents/Info.plist CFBundleVersion)
|
||||
echo "Office-Reset: Found version ${APP_VERSION} of ${APP_NAME}"
|
||||
if ! is-at-least 16.17 $APP_VERSION; then
|
||||
APP_GENERATION="2016"
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2019" ]]; then
|
||||
if ! is-at-least 16.73 $APP_VERSION && is-at-least 11.0.0 $OS_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2019 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
GetCustomManifestVersion
|
||||
if [[ "${CUSTOM_VERSION}" ]] && [[ "${APP_VERSION}" != "${CUSTOM_VERSION}" ]]; then
|
||||
echo "Office-Reset: ${APP_NAME} is ${APP_VERSION} on-disk, but the pinned version has been set to ${CUSTOM_VERSION}. Removing and reinstalling"
|
||||
/bin/rm -rf /Applications/Microsoft\ Word.app
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
if [[ "${APP_GENERATION}" == "2016" ]]; then
|
||||
if ! is-at-least 16.16 $APP_VERSION; then
|
||||
echo "Office-Reset: The installed version of ${APP_NAME} (2016 generation) is ancient. Updating it now"
|
||||
RepairApp
|
||||
fi
|
||||
fi
|
||||
echo "Office-Reset: Checking the app bundle for corruption"
|
||||
/usr/bin/codesign -vv --deep /Applications/Microsoft\ Word.app
|
||||
if [ $? -gt 0 ]; then
|
||||
CODESIGN_ERROR=$(/usr/bin/codesign -vv --deep /Applications/Microsoft\ Word.app)
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and reporting error ${CODESIGN_ERROR}"
|
||||
if [[ "${CODESIGN_ERROR}" = *"OLE.framework"* ]]; then
|
||||
echo "Office-Reset: Only OLE.framework has been modified. Ignoring the repair"
|
||||
else
|
||||
echo "Office-Reset: The ${APP_NAME} app bundle is damaged and will be removed and reinstalled"
|
||||
/bin/rm -rf /Applications/Microsoft\ Word.app
|
||||
RepairApp
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: Codesign passed successfully"
|
||||
fi
|
||||
else
|
||||
echo "Office-Reset: ${APP_NAME} was not found in the default location"
|
||||
fi
|
||||
|
||||
echo "Office-Reset: Removing configuration data for ${APP_NAME}"
|
||||
/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
|
||||
|
||||
/bin/rm -rf $TMPDIR/com.microsoft.Word
|
||||
|
||||
exit 0
|
||||
58
scripts/WebExPT_Remove.sh
Executable file
58
scripts/WebExPT_Remove.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_WebExPT"
|
||||
autoload is-at-least
|
||||
APP_NAME="WebEx Productivity Tools"
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Running native uninstall routine for ${APP_NAME}"
|
||||
/Applications/WebEx\ Productivity\ Tools/Uninstall/Contents/MacOS/Uninstall
|
||||
|
||||
echo "Office-Reset: Stopping WebEx agent"
|
||||
/bin/launchctl stop /Library/LaunchAgents/com.webex.pluginagent.plist
|
||||
/bin/launchctl unload /Library/LaunchAgents/com.webex.pluginagent.plist
|
||||
|
||||
echo "Office-Reset: Removing agent configuration for ${APP_NAME}"
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Cisco/Webex\ Plugin
|
||||
/bin/rm -rf $HOME/Library/Application\ Support/Cisco/Webex\ Meetings
|
||||
/bin/rm -rf $HOME/Library/Caches/com.cisco.webex.pluginservice
|
||||
/bin/rm -rf $HOME/Library/Caches/com.cisco.webex.webexmta
|
||||
/bin/rm -rf $HOME/Library/Group\ Containers/group.com.cisco.webex.meetings
|
||||
/bin/rm -rf $HOME/Library/Logs/PT
|
||||
/bin/rm -rf $HOME/Library/Logs/webexmta
|
||||
/bin/rm -f $HOME/Library/Preferences/com.cisco.webex.pluginservice.plist
|
||||
|
||||
echo "Office-Reset: Removing binaries for ${APP_NAME}"
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/WebExPlugin
|
||||
/bin/rm -rf /Library/ScriptingAdditions/WebexScriptAddition.osax
|
||||
/bin/rm -rf /Users/Shared/WebExPlugin
|
||||
|
||||
/bin/rm -rf /Applications/WebEx\ Productivity\ Tools
|
||||
|
||||
/usr/sbin/pkgutil --forget olp.mac.webex.com
|
||||
|
||||
exit 0
|
||||
57
scripts/ZoomPlugin_Remove.sh
Executable file
57
scripts/ZoomPlugin_Remove.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/zsh
|
||||
|
||||
echo "Office-Reset: Starting postinstall for Remove_ZoomPlugin"
|
||||
autoload is-at-least
|
||||
APP_NAME="Zoom Outlook Plugin"
|
||||
|
||||
GetLoggedInUser() {
|
||||
LOGGEDIN=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/&&!/loginwindow/{print $3}')
|
||||
if [ "$LOGGEDIN" = "" ]; then
|
||||
echo "$USER"
|
||||
else
|
||||
echo "$LOGGEDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
SetHomeFolder() {
|
||||
HOME=$(dscl . read /Users/"$1" NFSHomeDirectory | cut -d ':' -f2 | cut -d ' ' -f2)
|
||||
if [ "$HOME" = "" ]; then
|
||||
if [ -d "/Users/$1" ]; then
|
||||
HOME="/Users/$1"
|
||||
else
|
||||
HOME=$(eval echo "~$1")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Main
|
||||
LoggedInUser=$(GetLoggedInUser)
|
||||
SetHomeFolder "$LoggedInUser"
|
||||
echo "Office-Reset: Running as: $LoggedInUser; Home Folder: $HOME"
|
||||
|
||||
echo "Office-Reset: Running native uninstall routine for ${APP_NAME}"
|
||||
/Applications/ZoomOutlookPlugin/Uninstall/Contents/MacOS/Uninstall
|
||||
|
||||
echo "Office-Reset: Stopping Zoom agent"
|
||||
/bin/launchctl stop /Library/LaunchAgents/us.zoom.pluginagent.plist
|
||||
/bin/launchctl unload /Library/LaunchAgents/us.zoom.pluginagent.plist
|
||||
/bin/launchctl stop "$HOME/Library/LaunchAgents/us.zoom.pluginagent.plist"
|
||||
/bin/launchctl unload "$HOME/Library/LaunchAgents/us.zoom.pluginagent.plist"
|
||||
|
||||
echo "Office-Reset: Removing agent configuration for ${APP_NAME}"
|
||||
/bin/rm -f /Library/LaunchAgents/us.zoom.pluginagent.plist
|
||||
/bin/rm -f $HOME/Library/LaunchAgents/us.zoom.pluginagent.plist
|
||||
/bin/rm -f $HOME/Library/Logs/zoomoutlookplugin.log
|
||||
/bin/rm -f $HOME/Library/Preferences/ZoomChat.plist
|
||||
|
||||
echo "Office-Reset: Removing binaries for ${APP_NAME}"
|
||||
/bin/rm -rf /Library/Application\ Support/ZoomOutlookPlugin
|
||||
/bin/rm -rf /Library/Application\ Support/Microsoft/ZoomOutlookPlugin
|
||||
/bin/rm -rf /Library/ScriptingAdditions/zOLPluginInjection.osax
|
||||
/bin/rm -rf /Users/Shared/ZoomOutlookPlugin
|
||||
|
||||
/bin/rm -rf /Applications/ZoomOutlookPlugin
|
||||
|
||||
/usr/sbin/pkgutil --forget ZoomMacOutlookPlugin.pkg
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user