Автоматизация удаления обновления Office программным способом

Эта статья была написана Эриком Эштоном, старшим инженером по эскалации поддержки.

В этой статье описывается автоматическое удаление обновлений Office с помощью командной строки, которая напоминает следующее:

%windir%\System32\msiexec.exe /package {Office GUID} /uninstall {Update GUID} /QN

Определение GUID установленной версии Office

Чтобы определить GUID установленной версии Office, выполните следующие действия.

  1. Найдите и проверьте следующий раздел реестра.

    Для 32-разрядной ОС

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    Для 64-разрядной ОС

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

  2. Ознакомьтесь со следующими статьями, чтобы найти GUID в версии Office в зависимости от вашей ситуации.

    Замечание

    Убедитесь, что вы найдете правильный GUID, проверяя продукт в поле DisplayName ключа, указанного в GUID.

Определение GUID обновления

Чтобы определить GUID обновления, необходимо проверить свойства MSP-файла, содержащегося в файле обновления .exe.

Сначала необходимо извлечь MSP-файл из исполняемого файла обновления. Для этого выполните следующую команду, чтобы извлечь файл в каталог c:\temp:

<MSP file name> /extract:c:\temp

Например, чтобы извлечь содержимое из 4462201 обновления Office 2013 (mso2013-kb4462201-fullfile-x64-glb.exe), выполните следующую команду:

mso2013-kb4462201-fullfile-x64-glb.exe /extract:c:\temp

Когда у вас есть MSP из исполняемого файла обновления, вам нужно найти GUID этого обновления. Чтобы найти GUID, щелкните правой кнопкой мыши MSP-файл, найдите свойства и найдите номер редакции.

Иногда в разделе номера редакции имеется много чисел. Скопируйте и вставьте список номеров редакций в блокнот, а затем удалите все, кроме первого номера. Первым номером в списке номеров редакций является GUID.

Теперь вы знаете глобальный уникальный идентификатор (GUID) в версии Office и GUID обновления Office. Чтобы удалить обновление программным способом, выполните следующую команду.

%windir%\System32\msiexec.exe /package {Office GUID} /uninstall {Update GUID} /qn

Замечание

Используйте /qb для автоматического удаления с индикатором выполнения или используйте /qn для полностью автоматического удаления.

Вопросы и ответы

Как определить, устанавливается ли обновление программным способом, если мы знаем GUID обновления?

Это можно сделать, как только вы преобразуете GUID обновления в сжатый GUID. Ниже приведены инструкции по преобразованию несжатого GUID в сжатый GUID.

  1. Разделите несжатый GUID на пять разделов и удалите дефисы. Например, несжатый GUID без дефисов отображается как 90110409 6000 11D3 8CFE 0150048383C9.

  2. Измените порядок каждого числа первых трех разделов. В этом примере первые три раздела отображаются как 90401109 0006 3D11.

  3. В четвертых и пятых разделах необходимо транспонировать каждые два символа. Для этого выполните следующие действия.

    1. Разделите текст на части по каждые два символа, отделенные пробелами. Числа отображаются как 8C FE 01 50 04 83 83 C9.
    2. Транспонируйте каждый раздел. Числа отображаются как C8 EF 10 05 40 38 38 9C.
  4. Поместите числа вместе и удалите пробелы. Сжатый GUID станет 9040110900063D11C8EF10054038389C.

Затем запросите сжатый GUID в следующем разделе реестра:

HKEY_CLASSES_ROOT\Installer\Patches

Если GUID существует, это означает, что обновление установлено.

Можно ли удалить обновление, которое изначально не подлежит удалению?

Хотя это не рекомендуется и не поддерживается корпорацией Майкрософт, вы можете удалить обновления, помеченные как недоступные для удаления. Опять же, необходимо преобразовать GUID обновления в сжатый GUID с помощью предыдущего метода.

Вы можете определить, можно ли удалить обновление, с помощью следующего ключа реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\Office GUID\Patches\Compressed GUID

"Uninstallable"=dword:00000001

Замечание

Если обновление не может быть удалено в собственном коде, можно было бы изменить значение удаления в этом расположении реестра на 1, а затем обновление будет доступно для удаления.

У нас есть обновление с несколькими MSP-файлами внутри него. Это нормально? Нам придется удалить их все?

Обычно обновления Office содержат несколько MSP-файлов. Если вы хотите полностью удалить обновление, необходимо удалить каждый MSP-файл.

Обновления Office также часто применяются к нескольким продуктам. Таким образом, они отображаются несколько раз в удалении или изменении программы. В таких случаях для полного удаления обновления необходимо выполнить команду удаления, направленную на соответствующий GUID для каждого продукта Office с установленным обновлением.