Поделиться через


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

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

В этой статье описывается автоматическое удаление обновлений 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.

  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, на котором установлено обновление.