nisse: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med ' echo 'Inga kända Office-komponenter hittades.' exit 0 fi printf 'Identifierade Office-filer och mappar (%d):\n' "${#TARGETS[@]}" for path in "${TARGETS[@]}"; do printf ' %s\n' "$path"; done if -e "$MAU_PATH" ; then printf 'Valfri uppdaterarkomponent: %s\n' "$MAU_PATH" fi if "$MODE" == '--dry-run' ; then echo echo 'Ingen fil har raderats. Kör med --execute för att avinstallera.' exit 0 fi echo printf '%s\n' 'VARNING: Outlook-profiler, lokal e-p...') |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
| Rad 1: | Rad 1: | ||
#!/bin/bash | |||
# Fullständig Office-avinstallation för macOS. | |||
# Standard: endast inventering. --execute: radera efter tydlig bekräftelse. | |||
set -u | |||
if [[ "$(uname -s)" != "Darwin" ]]; then | |||
echo 'Fel: Detta skript är avsett för macOS.' >&2 | |||
exit 1 | |||
fi | |||
if [[ "$(id -u)" -eq 0 ]]; then | |||
echo 'Kör som vanlig användare (inte med sudo). Skriptet begär sudo vid behov.' >&2 | |||
exit 1 | |||
fi | |||
MODE="${1:---dry-run}" | |||
case "$MODE" in | |||
--dry-run|--execute) ;; | |||
*) echo "Användning: $0 [--dry-run|--execute]"; exit 2 ;; | |||
esac | |||
# Arbeta bara mot den inloggade användarens hemkatalog. | |||
USER_LIBRARY="$HOME/Library" | |||
TARGETS=() | |||
add() { [[ -e "$1" || -L "$1" ]] && TARGETS+=("$1"); } | |||
# Office-appar (inte Teams eller OneDrive). | |||
for base in /Applications "$HOME/Applications"; do | |||
for name in 'Microsoft Word.app' 'Microsoft Excel.app' 'Microsoft PowerPoint.app' 'Microsoft Outlook.app' 'Microsoft OneNote.app'; do | |||
add "$base/$name" | |||
done | |||
done | |||
# Microsofts dokumenterade Office-containrar, äldre och nyare namn. | |||
for name in \ | |||
'com.microsoft.Word' 'Microsoft Word' \ | |||
'com.microsoft.Excel' 'Microsoft Excel' \ | |||
'com.microsoft.Powerpoint' 'Microsoft PowerPoint' \ | |||
'com.microsoft.Outlook' 'Microsoft Outlook' \ | |||
'com.microsoft.onenote.mac' 'com.microsoft.OneNote' 'Microsoft OneNote' \ | |||
'com.microsoft.Office365ServiceV2' 'com.microsoft.Office.setupassistant' \ | |||
'com.microsoft.netlib.shipassertprocess' 'com.microsoft.RMS-XPCService' \ | |||
'com.microsoft.RMS.XPCService'; do | |||
add "$USER_LIBRARY/Containers/$name" | |||
done | |||
for name in 'UBF8T346G9.ms' 'UBF8T346G9.Office' 'UBF8T346G9.OfficeOsfWebHost'; do | |||
add "$USER_LIBRARY/Group Containers/$name" | |||
done | |||
# Endast explicit namngivna Office-relaterade preferenser, cache och supportmappar. | |||
for name in Word Excel Powerpoint Outlook OneNote Office Office365ServiceV2; do | |||
add "$USER_LIBRARY/Preferences/com.microsoft.$name.plist" | |||
add "$USER_LIBRARY/Caches/com.microsoft.$name" | |||
add "$USER_LIBRARY/Saved Application State/com.microsoft.$name.savedState" | |||
done | |||
add "$USER_LIBRARY/Application Support/Microsoft/Office" | |||
add "$USER_LIBRARY/Application Support/Microsoft/Office365" | |||
# Microsoft AutoUpdate endast om användaren accepterar att ingen annan | |||
# Microsoft-programvara behöver denna uppdaterare. | |||
MAU_PATH='/Library/Application Support/Microsoft/MAU2.0' | |||
printf '\n=== MICROSOFT OFFICE: %s ===\n' "$MODE" | |||
if [[ ${#TARGETS[@]} -eq 0 && ! -e "$MAU_PATH" ]]; then | |||
echo 'Inga kända Office-komponenter hittades.' | echo 'Inga kända Office-komponenter hittades.' | ||
exit 0 | exit 0 | ||
Versionen från 7 november 2026 kl. 11.01
- !/bin/bash
- Fullständig Office-avinstallation för macOS.
- Standard: endast inventering. --execute: radera efter tydlig bekräftelse.
set -u
if "$(uname -s)" != "Darwin" ; then
echo 'Fel: Detta skript är avsett för macOS.' >&2 exit 1
fi if "$(id -u)" -eq 0 ; then
echo 'Kör som vanlig användare (inte med sudo). Skriptet begär sudo vid behov.' >&2 exit 1
fi
MODE="${1:---dry-run}" case "$MODE" in
--dry-run|--execute) ;; *) echo "Användning: $0 [--dry-run|--execute]"; exit 2 ;;
esac
- Arbeta bara mot den inloggade användarens hemkatalog.
USER_LIBRARY="$HOME/Library" TARGETS=() add() { | -L "$1" && TARGETS+=("$1"); }
- Office-appar (inte Teams eller OneDrive).
for base in /Applications "$HOME/Applications"; do
for name in 'Microsoft Word.app' 'Microsoft Excel.app' 'Microsoft PowerPoint.app' 'Microsoft Outlook.app' 'Microsoft OneNote.app'; do add "$base/$name" done
done
- Microsofts dokumenterade Office-containrar, äldre och nyare namn.
for name in \
'com.microsoft.Word' 'Microsoft Word' \ 'com.microsoft.Excel' 'Microsoft Excel' \ 'com.microsoft.Powerpoint' 'Microsoft PowerPoint' \ 'com.microsoft.Outlook' 'Microsoft Outlook' \ 'com.microsoft.onenote.mac' 'com.microsoft.OneNote' 'Microsoft OneNote' \ 'com.microsoft.Office365ServiceV2' 'com.microsoft.Office.setupassistant' \ 'com.microsoft.netlib.shipassertprocess' 'com.microsoft.RMS-XPCService' \ 'com.microsoft.RMS.XPCService'; do add "$USER_LIBRARY/Containers/$name"
done
for name in 'UBF8T346G9.ms' 'UBF8T346G9.Office' 'UBF8T346G9.OfficeOsfWebHost'; do
add "$USER_LIBRARY/Group Containers/$name"
done
- Endast explicit namngivna Office-relaterade preferenser, cache och supportmappar.
for name in Word Excel Powerpoint Outlook OneNote Office Office365ServiceV2; do
add "$USER_LIBRARY/Preferences/com.microsoft.$name.plist" add "$USER_LIBRARY/Caches/com.microsoft.$name" add "$USER_LIBRARY/Saved Application State/com.microsoft.$name.savedState"
done add "$USER_LIBRARY/Application Support/Microsoft/Office" add "$USER_LIBRARY/Application Support/Microsoft/Office365"
- Microsoft AutoUpdate endast om användaren accepterar att ingen annan
- Microsoft-programvara behöver denna uppdaterare.
MAU_PATH='/Library/Application Support/Microsoft/MAU2.0'
printf '\n=== MICROSOFT OFFICE: %s ===\n' "$MODE" if [[ ${#TARGETS[@]} -eq 0 && ! -e "$MAU_PATH" ]]; then
echo 'Inga kända Office-komponenter hittades.' exit 0
fi printf 'Identifierade Office-filer och mappar (%d):\n' "${#TARGETS[@]}" for path in "${TARGETS[@]}"; do printf ' %s\n' "$path"; done if -e "$MAU_PATH" ; then
printf 'Valfri uppdaterarkomponent: %s\n' "$MAU_PATH"
fi
if "$MODE" == '--dry-run' ; then
echo echo 'Ingen fil har raderats. Kör med --execute för att avinstallera.' exit 0
fi
echo printf '%s\n' 'VARNING: Outlook-profiler, lokal e-post och Office-inställningar kan förloras.' printf '%s\n' 'Kontrollera att säkerhetskopior finns innan du fortsätter.' read -r -p 'Skriv RADERA OFFICE för att bekräfta: ' ANSWER if "$ANSWER" != 'RADERA OFFICE' ; then
echo 'Avbrutet. Ingenting har raderats.' exit 1
fi
- Stäng endast namngivna Office-appar. Ingen bred pkill på "Microsoft".
for app in 'Microsoft Word' 'Microsoft Excel' 'Microsoft PowerPoint' 'Microsoft Outlook' 'Microsoft OneNote'; do
osascript -e "tell application \"$app\" to quit" >/dev/null 2>&1 || true
done sleep 2
ERRORS=0 for path in "${TARGETS[@]}"; do
# Symlänkar avlägsnas som länkar, inte som deras destinationer. if | "$path" == /Library/* ; then if sudo rm -rf -- "$path"; then echo "Borttagen: $path"; else echo "FEL: $path" >&2; ERRORS=$((ERRORS+1)); fi else if rm -rf -- "$path"; then echo "Borttagen: $path"; else echo "FEL: $path" >&2; ERRORS=$((ERRORS+1)); fi fi
done
if -e "$MAU_PATH" ; then
echo echo 'Microsoft AutoUpdate kan även användas av andra Microsoft-program.' read -r -p 'Ta bort Microsoft AutoUpdate (ja/nej)? ' MAU_ANSWER if "$MAU_ANSWER" == 'ja' ; then if sudo rm -rf -- "$MAU_PATH"; then echo 'Microsoft AutoUpdate borttagen.'; else ERRORS=$((ERRORS+1)); fi fi
fi
echo if "$ERRORS" -gt 0 ; then
echo "Avinstallationen är delvis klar. Antal misslyckade raderingar: $ERRORS" exit 1
fi echo 'Office-filerna i skriptets lista är borttagna.' echo 'OBS: Licenser i nyckelringen, paketkvitton eller andra systemkomponenter kan finnas kvar.' echo 'Starta om datorn. Använd Microsofts License Removal Tool för licensrensning.'