Как автоматизировать удаление обновления Office программным способом
Эта статья была написана Эриком Эштоном(Eric Ashton), старшим инженером по эскалации поддержки.
В этой статье описывается автоматическое удаление обновлений Office с помощью командной строки, похожей на следующую:
%windir%\System32\msiexec.exe /package {Office GUID} /uninstall {Update GUID} /QN
Определение GUID установленной версии Office
Чтобы определить GUID установленной версии Office, выполните следующие действия.
Найдите и проверка следующий раздел реестра.
Для 32-разрядной ОС
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Для 64-разрядной ОС
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Ознакомьтесь со следующими статьями, чтобы найти GUID в версии Office в соответствии с вашей ситуацией:
- Описание схемы нумеровки идентификаторов guid кода продукта в Office 2016
- Описание схемы нумеровки идентификаторов guid кода продукта в Office 2013
Примечание.
Убедитесь, что вы нашли правильный 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 на пять разделов и удалите дефисы. Например, несжатый GUID без дефисов отображается как 90110409 6000 11D3 8CFE 0150048383C9.
Обратный порядок каждого числа первых трех разделов. В этом примере первые три раздела отображаются как 90401109 0006 3D11.
В четвертом и пятом разделах необходимо транспонировать каждые два символа. Для этого выполните следующие действия:
- Разбейте два раздела на каждые два символа, разделенных пробелами. Числа отображаются как 8C FE 01 50 04 83 83 C9.
- Транспонировать каждый раздел. Числа отображаются как C8 EF 10 05 40 38 38 9C.
Сложите все числа и удалите пробелы. Сжатый 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, на котором установлено обновление.