Перед установкой новой версии Microsoft Office на компьютере, рекомендуется удалить все предыдущие версии Office (одновременное использование разных версий Office на одном компьютере поддерживается, но не рекомендуется из-за потенциальных проблем). В этой статье мы рассмотрим несколько скриптов и утилит для автоматического удаления любых ранее установленных на компьютере версий Microsoft Office. Вы можете использовать данные скрипты в сценариях автоматической установки или удаления Office на компьютерах пользователей через SCCM, Intune, GPO, или другие средства развертывания.
Автоматическое удаление Office с помощью утилиты Microsoft SaRa
Microsoft Support and Recovery Assistant (Microsoft SaRA, https://aka.ms/SaRA-FirstScreen) это утилита для диагностики и исправления ошибок Microsoft Office (включая Office 365, Microsoft 365, Outlook, Teams и т.д.). Microsoft SaRa предоставляет пользователям простой графический мастер для исправления типовых ошибок программ из пакета Office, установки, проверки активации и полного удаления MS Office. Утилиты MSFT SaRa вполне можно использовать для удаления Office на одном компьютере.
Кроме графической версии SaRa, доступна еще и консольная утилита SaRA_CommandLine, которую можно использовать для удаления пакета Office из командной строки. Соотвественно, вы можете исопльзовать ее в ваших сценариях автоматизации и скриптах. Поддерживаются все версии Windows, начиная с Windows 7 (с установленными .Net Framework 4.5) и заканчивая Windows 10 и 11.
Рассмотрим, как использовать SaRACmd для удаления любой версии Office:
- Скачайте последнею доступную версию SaRACmd https://aka.ms/SaRA_CommandLineVersionFiles (17.00.8256.000);
- Распакуйте архив в папку на диске;
- Запустите командную строку с правами администратора и перейдите в каталог с SaRACmd:
CD C:\Tools\SaRACmd
- Для удаления всех версий Office, которые установлены на компьютере, выполните команду:
SaRAcmd.exe -S OfficeScrubScenario –AcceptEula -Officeversion All
- Если нужно удалить конкретную версию MS Office (например, только MS Office 2016), используйте такую команду:
SaRAcmd.exe -S OfficeScrubScenario -AcceptEula -Officeversion 2016
- Утилита SaRAcmd после окончания работы возвращает код ошибки. Например, если удаление выполнение успешно появится сообщение:
00: Successfully completed this scenario. We recommend you restart the computer to finish any remaining cleanup tasks. Scenario finished with exit code: [0].
Можно указать путь к каталогу, в который SaRAcmd должна записывать логи:-LogFolder <Output Path>
.
Например, на моем компьютере утилита вернула ошибку:
06: Office programs are running. Please close all open Office programs and then re-run this scenario. Scenario finished with exit code: [6].
В моем случае удалению помешал установленный клиент MS Teams настроенный на автозапуск (возможно такая же проблема с MS Teams Chat, встроенный по умолчанию в Windows 11).
Поэтому перед запуском команды удаления нужно завершить все запущенные процессы Office. Можно завершить процессы с помощью PowerShell командлета Stop-Process:
Stop-Process -Name winword.exe -Confirm
Stop-Process -Name excel.exe -Confirm
И т.д.
Или с помощью taskkill:
taskkill /f /im excel.exe
taskkill /f /im teams.exe
...
Обратите внимание, что “под капотом” SaRAcmd выполняется скрипт OffScrubC2R.vbs для удаления продуктов Office Click To Run (C2R). Это видно в диспетчере задач по процессу cscript.exe, который выполняет файл OffScrubC2R.vbs из
%UserProfile%\AppData\Local\Temp
.
Удаление MSI версий Office с помощью Office Deployment Tool
Если вы используете Microsoft Office Deployment Tool (ODT) для установки C2R версий Office 2019, 2021 или Microsoft 365 Apps на компьютерах компании, вы можете прямо во время установки удалить предыдущие MSI версии Office. Для этого в конфигурационный файл configuration.xml нужно добавить параметр
RemoveMSI
.
Пример конфигурационного файла:
<Configuration> <Add OfficeClientEdition="64" Channel="Current" > <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> </Product> </Add> <RemoveMSI /> </Configuration>
Параметр RemoveMSI удалит все версии MS Office (2007, 2010, 2013, 2016), а также Office, Visio, Project, которые установлены с помощью Windows Installer (MSI).
OffScrub: VBS скрипты для удаления MS Offce OffScrub
Скрипты OffScrub представляют собой VBS сценарии для автоматизации удаления продуктов Microsoft Office. Данные скрипты позволяют полностью очистить систему от следов ранее установленного Office, в независимости от его текущий работоспособности. Данные скрипты широко используются сотрудниками Premier поддержки Microsoft (PFE). На текущий момент скрипты Offscrub не развиваются и являются Depreciated, но вы вполне можете использовать их OffScrub своих сценариях.
На данный момент скрипты OffScrub доступны в архивном GitHub репозитарии разработчиков Office: https://github.com/OfficeDev/Office-IT-Pro-Deployment-Scripts/tree/master/Office-ProPlus-Deployment/Remove-PreviousOfficeInstalls
Основные преимущества в использования OffScrub для удаления Office:
- Возможность удаления старой версии даже при отсутствии или повреждения исходных файлов установки или кэша Office;
- Куст пользователя в реестре не затрагивается;
- Обеспечивается полное удаление;
- Удаление устаревших настроек и всех продуктов (в т.ч. Project, Visio, Visio Viewer).
Как использовать скрипты OffScrub для удаления MS Office.
Я создал отдельный каталог для каждой версии Office:
set OFFICEREMOVE=C:\tools\OfficeUninstall\
md "%OFFICEREMOVE%\2003"
md "%OFFICEREMOVE%\2007"
md "%OFFICEREMOVE%\2010"
md "%OFFICEREMOVE%\2013"
md "%OFFICEREMOVE%\2016"
md "%OFFICEREMOVE%\O365"
Скачайте и сохраните каждый vbs файл из GitHub в собственный каталог. Должна получиться такая структура каталогов:
- 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]
Чтобы скрипт удаления Office работал корректно на 64 битных версиях Windows, при запуске их 32-битным клиентом Configuration Manager (SCCM), нужно запускать соответствующую версию cscript.exe. Поэтому на 64 битной системе для запуска сценариев нужно запускать процессор cscript.exe из каталога
C:\Windows\SysWOW64
.
Данного функционала можно добиться скриптом NativeCScript.cmd:
@echo off
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" (
"%SystemRoot%\Sysnative\cscript.exe" %*
) else (
"%SystemRoot%\System32\cscript.exe" %*
)
Готовый архив со всеми необходимыми файлами можно скачать с нашего сайта: OfficeUninstall.zip (1,4 Мб)
Ниже указаны команды для полного удаления различных версий Microsoft Office:
Версия | Команда |
Office 2003 |
Cscript.exe "%OFFICEREMOVE%\2003\OffScrub03.vbs” ALL /Quiet /NoCancel /Force /OSE
Команда для удаления через SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "2003\OffScrub03.vbs" ALL /Quiet /NoCancel /Force /OSE"
|
Office 2007 |
Cscript.exe "%OFFICEREMOVE%\2007\OffScrub07.vbs” ALL /Quiet /NoCancel /Force /OSE
SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "2007\OffScrub07.vbs" ALL /Quiet /NoCancel /Force /OSE"
|
Office 2010 |
Cscript.exe "%OFFICEREMOVE%\2010\OffScrub10.vbs” ALL /Quiet /NoCancel /Force /OSE
SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "2010\OffScrub10.vbs" ALL /Quiet /NoCancel /Force /OSE"
|
Office 2013 |
Cscript.exe "%OFFICEREMOVE%\2013\OffScrub_O15msi.vbs” ALL /Quiet /NoCancel /Force /OSE
SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "2013\OffScrub_O15msi.vbs" ALL /Quiet /NoCancel /Force /OSE"
|
Office 2016 |
Cscript.exe "%OFFICEREMOVE%\2016\OffScrub_O16msi.vbs” ALL /Quiet /NoCancel /Force /OSE
SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "2016\OffScrub_O16msi.vbs" ALL /Quiet /NoCancel /Force /OSE"
|
Office 365 (C2R) |
Cscript.exe "%OFFICEREMOVE%\C2R\OffScrubc2r.vbs” ALL /Quiet /NoCancel /Force /OSE
SCCM: "%SystemRoot%\System32\cmd.exe" /C "NativeCScript.cmd //B //NoLogo "C2R\OffScrubc2r.vbs" ALL /Quiet /NoCancel /OSE"
|
Удаление Microsoft.Office.Desktop с помощью PowerShell
Обратите внимание, что Windows 10 / Windows 11 часто поставляются с предустановленным UWP приложением Microsoft.Office.Desktop.Apps из Microsoft Store. Для удаления такой версии Office из Windows нужно использовать PowerShell:
Get-AppxProvisionedPackage -online | %{if ($_.packagename -match "Microsoft.Office.Desktop") {$_ | Remove-AppxProvisionedPackage -AllUsers}}
Также вы можете использовать команды Get-Package, Uninstall-Package для удаления любого приложения в Windows:
Get-Package -Name "*Office*" | Uninstall-Package
Некорректное отображение сайта
Благодарю! Поправил — была проблема с фикс размерами таблицы.
Добрый день.
А без SCCM будет работать? Возможно ли распространить данные скрипты групповыми политиками?
Конечно будет, SCCM тут как пример автоматизации.
С ним удобно когда у тебя овермного машин и на всех их нужно выполнить определенные действия (в том числе и по фильтру), после чего получить отчет в котором будет видно у кого все гуд, а у кого нет.
Спасибо!
Добрый день.
Пытаюсь воспользоваться скриптом по удалению 2007 Office, на 4-м этапе выходит ошибка — «OffScrub07.vbs(3012, 9) Ошибка выполнения Microsoft VBScript: Переменная не определена: ‘sSys32Dir'»
Посмотрел листинг — эта строка в функции Wow64Folder — система 32-х разрядная, в эту функцию по идее вообще не должно заходить…
Определения переменной sSys32Dir в скрипте нет. По тексту — тоже не понял — какую именно директорию пытаются определить.
Никто не сталкивался?
Здравствуйте! Поправьте пожалуйста.
Csript.exe на Cscript.exe
Спасибо! Поправил.
Храни вас Бог!
Год мучался с этим ms офисом пока эту статью не нашел. Здоровья тебе дорогой!!!!!
А мне не помогло. Новая машина с установленной WIn10PRO. Кроме нее в комплекте навязан дистрибутив офис 365 со схемой распространения «microsoft store»
Для попытки удаления скачал готовый архив со всеми файлами по ссылке выше, распаковал, зашел во вложенную папку O365, запустил находящийся там файл «OffScrubC2R»
Скрипт запустился, долго расписывал, как он очищает ярлыки, чистит регистр, файлы, службы, папки…
потом окошко со скриптом закрылось, а весь офисный пакет остался на месте.
O365 из MS store распространяется по другому принципу, как UWP приложение. Эти VBS скрипты не подойдут для его удаления.
Такие приложения проще удалить через PowerShell. Как-то так:
Get-AppxPackage -Name Microsoft.Office.Desktop | Remove-AppxPackage
Отчитываюсь. провел эксперимент — по данному скрипту все элементы офиса как были, так и остались даже под текущим пользователем.
За это время нашел модифицированный скрипт, который помог решить задачу. С ним все удалилось без проблем.
Get-AppxProvisionedPackage -online | %{if ($_.packagename -match "Microsoft.Office.Desktop") {$_ | Remove-AppxProvisionedPackage -AllUsers}}
Также оказалcя полезным скрипт
Get-AppxProvisionedPackage -online | select PackageName
с помощью него посмотрел прочие микрософтовские утилиты, типа OneNote и прочих и удалил их, прописав название в верхнем скрипте.
Отлично, что разобрались и оставили решение здесь:) Может еще кому-то пригодится.
А куда эти скрипты писать, в командную строку?
спасибо, просто золотая статья!
Спасибо большое за статью. Очень помогла.
Здравствуйте. Установил лицензионную Microsoft Office 2010 Home&Student, затем обновил его до версии Дом и Бизнес с помощью утилиты Office Anytime Upgrade, ключи подобрал в интернете. Теперь при открытии, например, Ворд в справке запись, что офис дом и учеба и офис дом и бизнес оба активизированы, проверка в командной строке показывает два ключа. Можно ли удалить запись и активацию версии дом и учеба, не переустанавливая офис? Боюсь, что при переустановке может ключ не принять.
UnPin shortcuts. Что за ошибка?
Скрипт не смог удалить ярлыки из панели задач или меню пуск
Как выглядит ошибка полностью в логе?
Какая красота! Запустил скрипт и все готово! Спасибо Вам, добрые умные люди!)
Мои 5 копеек:
1) «%SystemRoot%\Sysnative\cscript.exe» — нет папки Sysnative, должна быть SysWOW64
2) %OFFICEREMOVE% — такой переменной нет в системе
3) Запустил в таком виде
%systemroot%\SysWOW64\cscript.exe c:\temp\2013\OffScrub_015msi.vbs ALL /Quiet /NoCancel /Force /OSE
Обязательно с правами Администратора
Помогите !!! Запустил скрипт и такая беда
(3250, 13) SWbemObjectEx: Ошибка при выполнении приложения-сервера
Что запускали, в каком окружении, какую команду, сессия с правами админа?
Автору огромное спасибо! Несколько дней не мог скачать новый офис, т.к. не удалялся старый. Сейчас все получилось. Автору огромный респект!!!
Добрый день. Помогите с такой проблемой. Стоял офис 2010. Все работало, всех устраивало. Но тут решил обновиться до 2016. Обновление производили путем запуска установки 2016 и выбирали «удаление старых версий». Все установилось без каких-либо ошибок. Приложения word, excel… открываются, можно что-то создать и сохраниться. Но вот старые файлы, созданные в 2010 он просит преобразовать в новый формат и при сохранении зависает/вылетает. Ошибка в событиях выглядит так:
Имя сбойного приложения: WINWORD.EXE, версия: 16.0.4266.1001, метка времени: 0x55ba1919
Имя сбойного модуля: mso.dll, версия: 16.0.4266.1001, метка времени: 0x55ba181d
Код исключения: 0xc00000fd
Смещение ошибки: 0x00000000000b4047
Идентификатор сбойного процесса: 0x40d0
Время запуска сбойного приложения: 0x01da6eed6e877cdd
Путь сбойного приложения: C:\PROGRA~1\MICROS~3\Office16\WINWORD.EXE
Путь сбойного модуля: C:\Program Files\Common Files\Microsoft Shared\Office16\mso.dll
Идентификатор отчета: fd3da21d-66d6-4e36-8f2d-cf36e000cbd3
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
На чистой винде со всеми обновлениями для винды и офиса 2016 такая же проблема!
Скажу так, статья замечательная, но требует обновления, предустановленные версии 365 на новой версии Вин 11 так не удаляются, скрипты выполняются, но офис остается на месте и не дает поставить офис полноценный.
Здесь специально поставлено левое тире, что бы сидеть и думать что не так?
SaRAcmd.exe -S OfficeScrubScenario –AcceptEula -Officeversion All
Это частая проблема в сочетании word+worpdress. Сложно отслеживать такое
Добрый день !
Была проблема — ворд 2016 64 бит постоянно вылетал при работе с картинками.
Примечание: у меня стоял собственно только ворд и всё.
Решил переустановить — удалил и запустил установку заново. Пишет —
«Мы не можем установить 64-разрядную версию офис, так как на компьютере уже установлены 32-разрядные версии приложений:» и в списке приложение акссес 2007
Я удалил этот акссес — и теперь пишет при установке тоже самое, но в списке приложений что надо удалить — пусто.
В общем — установил ворд 32 бит, потом решил вашими способами удалить его.
1) Запустил САРА из под ком строки —
SaRAcmd.exe -S OfficeScrubScenario –AcceptEula -Officeversion All
Мне пишет такое —
01: Unidentified Argument Found
Scenario finished with exit code: [1].
SaRA Command Line is closing, Please wait…
Командная строка получается не работает.
2) SARA с граф интерфейсом тоже неработает — перекидывает на страницу HELP.
3) Ладно, решил попробовать через скрипт визуал бейсик
скачал, распаковал, запустил — пишет не указано расщирение
Я убрал кавычки в вашей команде — и скрипт удалил ворд 2016 32 бит.
Но заново установить ворд 64 бит все равно не могу — при установке всё также пишет что у меня еще есть приложения 32 бит и надо их сначала удалить.
Вопрос — как установить ворд 2016 если других приложений офиса не установлено? Где почистить ?
Спасибо
забыл добавить — я запускал скрипты для удаления 2007, 2010, 2013, 2016
2013 и 2016 работают нормально, а 2007 и 2010 пишут — нет прав для изменения реестра.
Но я в реестре HKLM и HKCU в ветках software-microsoft удалил ветку Office.
Где еще могут быть записи в реестре о приложениях офиса 32 бит ?
Разобрался, нужно почистить какой-то из параметров вот в этой ветке —
HKEY_CLASSES_ROOT\Installer\Products\
После этого установка запустилась нормально.