Скрипты для полного удаления старых версий Office

В рамках задачи по массовому обновлению Office до последней версии на компьютерах всех пользователей (по схеме развертывания Office 2016 через SCCM), нам понадобилось разработать простое решение для корректного автоматического удаления любых других ранее установленных на компьютерах версий Microsoft Office. Предполагается использовать данные скрипты в задания по автоматическому удалению / установке Office через пакеты SCCM.

В большинстве случаев, перед установкой новой версии Office, желательно удалить любые ранее установленные на компьютере версии MS Office (одновременное использование разных версий Office на одном компьютере поддерживается, но не рекомендуется из-за потенциальных проблем). Поэтому возникла необходимость разработать  скрипты, которые бы корректно удаляли любую версию Office, ранее установленную на ПК.

VBS скрипты OffScrub

Рассмотрев несколько способов удаления ранее установленных версий Office, мы остановились на использовании скриптов OffScrub от службы Premier поддержки Microsoft. Скрипты OffScrub входят в состав пакетов официальных пакетов EasyFix (пакет принудительного удаления Office 2007 и 2010, если их не получается удалить стандартным способом из Панели Управления) Для удаления Office 2013 и 2016 используется другой инструмент – пакет O15CTRRemove.diagcab, в который также входят скрипты OffScrub (см. сноску чуть ниже)

Скрипты Offscrub — представляют собой vbs сценарии для автоматизации удаления продуктов из состава Office. Данные скрипты позволяют полностью очистить систему от следов ранее установленного Office, в независимости от его текущий работоспособности.  Перечислим основные преимущества в использования Offscrub для удаления Office:

  • Возможность удаления старой версии даже при отсутствии или повреждения исходных файлов установки или кэша Office
  • Куст пользователя в реестре не затрагивается
  • Обеспечивается полное удаление
  • Удаление устаревших настроек и всех продуктов (в т.ч. Project, Visio, Visio Viewer)

Скрипт Remove-PreviousOfficeInstalls.ps1 из пакета O15CTRRemove.diagcab позволяет определить установленную версию Office и вызвать скрипт Offscrub*.vbs для соответствующей версии Office.

В первую очередь, необходимо скачать с сайта Microsoft файл FixIt для тех версий Office и Windows, которые используются в вашей инфраструктуре.

Скачать пакет O15CTRRemove.diagcab для разных версий Office и Windows  можно со страницы (https://support.microsoft.com/en-us/kb/971179).

Важное примечание. Ранее на этой странице присутствовали ссылки как на пакет EasyFix, так и на O15CTRRemove.diagcab. На данный момент осталась ссылка только на универсальный пакет O15CTRRemove.diagcab, который можно использовать для удаления Office 2013 / 2016 на Window 7, Windows 8 и Windows 10.  Кроме того, еще в начале года в архиве O15CTRRemove.diagcab присутствовали скрипты Offscrub для новых версий Office, то теперь в нем остались только PowerShell скрипты. Эти (и другие) версии vbs Offscrub скриптов теперь можно получить только с официального репозитория разработчиков Office на GitHub (OfficeDev).

В следующей таблице я собрал ссылки на пакеты Microsoft для удаления разных версий Office в разных ОС.

Версия OfficeWindows 7Windows 8Windows 10
Office 2003MicrosoftFixit20054.mini.diagcab Отсутствует
Office 2007MicrosoftFixit20052.mini.diagcab Отсутствует
Office 2010MicrosoftFixit20055.mini.diagcab
Office 2013Файл OffScrub_O15msi.vbs на GitHub
Office 2016Файл OffScrub_O16msi.vbs на GitHub
Office 365/ Click-To-RunФайл  OffScrubc2r.vbs на GitHub

Проект Remove-PreviousOfficeInstalls - скрипты для удаления Office на GutHub

Качаем указанные файлы и сохраняем в каталог C:\tools\OfficeUninstall. Файлы *.diagcab представляют собой обычные архивы в CAB формате, которые можно распаковать с помощью команды expand.

Итак, для удобства для каждой версии Office создадим отдельный каталог:

set OFFICEREMOVE=C:\tools\OfficeUninstall\
md "%OFFICEREMOVE%\2003"
md "%OFFICEREMOVE%\2007"
md "%OFFICEREMOVE%\2010"
md "%OFFICEREMOVE%\2013"
md "%OFFICEREMOVE%\2016"
md "%OFFICEREMOVE%\O365"

Теперь в каждый каталог из скачанных архивов diagcab распакуем только vbs файлы.

expand -i "%OFFICEREMOVE%\MicrosoftFixit20054.mini.diagcab" -f:OffScrub*.vbs "%OFFICEREMOVE%\2003"
expand -i "%OFFICEREMOVE%\MicrosoftFixit20052.mini.diagcab" -f:OffScrub*.vbs "%OFFICEREMOVE%\2007"
expand -i "%OFFICEREMOVE%\MicrosoftFixit20055.mini.diagcab" -f:OffScrub*.vbs "%OFFICEREMOVE%\2010"

И скопируем тужа же  vbs файлы, для новых версий Office, скачанные с GitHub.

move /y "%OFFICEREMOVE%\OffScrub_O15msi.vbs" "%OFFICEREMOVE%\2013"
move /y "%OFFICEREMOVE%\OffScrub_O16msi.vbs" "%OFFICEREMOVE%\2016"
move /y "%OFFICEREMOVE%\OffScrubc2r.vbs" "%OFFICEREMOVE%\O365"

Получение vbs файлов OffScrub для удаления ms office

Таким образом, у нас появится такие vbs файлы:

  • 2003\OffScrub03.vbs
  • 2007\OffScrub07.vbs
  • 2010\OffScrub10.vbs
  • 2013\OffScrub_O15msi.vbs
  • 2016\OffScrub_O16msi.vbs
  • O365\OffScrubc2r.vbs

Список доступных аргументов любого vbs скрипта OffScrub можно получить так:

OffScrub_O16msi.vbs /?

Microsoft Customer Support Service – Office 2016 MSI Removal Utility
OffScrub_O16msi.vbs helps to remove Office 2016 MSI Server and Client products
Usage:  OffScrub_O16msi.vbs [List of config ProductIDs] [Options]

примеры использования offscrub vbs

Особенности запуска vbs скриптов OffScrub через SCCM

Для того, чтобы скрипт удаления Office работал корректно на 64 битных версиях Windows, при запуске их 32-битным клиентом Configuration Manager, нужно запускать соответствующую версию cscript.exe. Поэтому на 64 битной системе для запуска сценариев нужно запускать процессор cscript.exe из каталога C:\Windows\SysWOW64.

Данного функционала можно добиться скриптом NativeСScript.cmd:

@echo off
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" (
"%SystemRoot%\Sysnative\cscript.exe" %*
) else (
"%SystemRoot%\System32\cscript.exe" %*
)

Готовый архив со всеми необходимыми файлами можно скачать с нашего сайта: OfficeUninstall.zip (1,4 Мб)

Скрипт полного удаления Office 2003

Команда ручного запуска скрипта полного удаления компонентов Office 2003 на компьютере будет выглядеть так:

Csript.exe "%OFFICEREMOVE%\2003\OffScrub03.vbs” ALL /Quiet /NoCancel /Force /OSE

скрипт для полного удаления office 2003 с компьютера пользователя

Если задание удаления запускается в виде пакета SCCM, команда удаления может выглядеть так:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "2003\OffScrub03.vbs" ALL /Quiet /NoCancel /Force /OSE"

Скрипт полного удаления Office 2007

Команда полного удаления компонентов Office 2007 для ручного запуска:

Csript.exe "%OFFICEREMOVE%\2007\OffScrub07.vbs” ALL /Quiet /NoCancel /Force /OSE

Для запуска скрипта через задание SCCM:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "2007\OffScrub07.vbs" ALL /Quiet /NoCancel /Force /OSE"

Скрипт полного удаления Office 2010

Команда полного удаления Microsoft Office 2010 для ручного запуска:

Csript.exe "%OFFICEREMOVE%\2010\OffScrub10.vbs” ALL /Quiet /NoCancel /Force /OSE

При запуске через Configuration Manager:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "2010\OffScrub10.vbs" ALL /Quiet /NoCancel /Force /OSE"

Скрипт полного удаления Office 2013

Команда полного удаления компонентов Microsoft Office 2013 для ручного запуска:

Csript.exe "%OFFICEREMOVE%\2013\OffScrub_O15msi.vbs” ALL /Quiet /NoCancel /Force /OSE

Для запуска скрипта через задание SCCM:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "2013\OffScrub_O15msi.vbs" ALL /Quiet /NoCancel /Force /OSE"

Скрипт полного удаления Office 2016

Команда ручного запуска скрипта полного удаления компонентов Office 2016 на текущем будет выглядеть так:

Csript.exe "%OFFICEREMOVE%\2016\OffScrub_O16msi.vbs” ALL /Quiet /NoCancel /Force /OSE

Удаление Office 2016 из пакета SCCM можно запустить такой командой:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "2016\OffScrub_O16msi.vbs" ALL /Quiet /NoCancel /Force /OSE"

Скрипт полного удаления Office Click to Run / Office 365

Команда полного удаления компонентов Office Click to Run / Office 365 для ручного запуска:

Csript.exe "%OFFICEREMOVE%\C2R\OffScrubc2r.vbs” ALL /Quiet /NoCancel /Force /OSE

Для запуска скрипта через задание SCCM:

"%SystemRoot%\System32\cmd.exe" /C "NativeСScript.cmd //B //NoLogo "C2R\OffScrubc2r.vbs" ALL /Quiet /NoCancel /OSE"

Автоматическое определение версии Office

В состав проекта Remove-PreviousOfficeInstalls на Git входит также скрипт Remove-PreviousOfficeInstalls.ps1, который должен автоматически определять установленную на компьютере версию MS Office и вызывать один из советующих OffScrub скриптов. С определенными модификациями его также можно использовать в сценариях автоматического удаления Office.


Предыдущая статья Следующая статья

Комментариев: 5 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)