Удаление обновления MS Office (статья базы знаний) с помощью Powershell / Batch Command - PullRequest
0 голосов
/ 10 февраля 2020

Существует ли чистый способ удаления статьи базы знаний MS Word с помощью команды Batch / PowerShell?

Справочная информация:

Я пытался удалить одну статью базы знаний (KB4475558) MS Word 2013 Как часть решения для ручной команды, которая хочет удалить все недавно установленные статьи KB. Я успешно пытался установить несколько статей КБ. Но удаление было довольно сложным.

До сих пор пробовали,

Подход 1: wusa /uninstall /KB:4475558 wusa.exe /uninstall /kb:4475558 /norestart /quiet ---- Это дает "Это действие действительно только для продуктов, которые установлены в настоящее время «Ошибка.

Подход 2: Использование GUID

Msiexec /I {90150000-006E-0401-1000-0000000FF1CE} MSIPATCHREMOVE={80BC2A33-0ADF-4731-AC75-046BA9B6B7AF} /qb ---- Он выдает« Это действие действительно только для продуктов, которые установлены в настоящее время »Ошибка.

Подход 3:

с использованием Microsoft.Update.Searcher по ссылке ниже,

PowerShell: как найти и удалить обновление MS Office

- Не работает.

Не могли бы вы помочь мне с этими вопросами:

1: Я вручную установил эти статьи базы знаний, я могу удалить его вручную: Но с помощью сценариев он показывает вышеуказанную ошибку. Почему это так?

2: Возможно, мне не хватает любого другого подхода?

Примечание. В MS Office не установлены только MS Word и точка обмена, и на моем компьютере нет версии Trail. , Я также попытался перезагрузить компьютер один раз, но безрезультатно.

Любая помощь будет очень полезна! Спасибо

1 Ответ

0 голосов
/ 10 февраля 2020

Вы пытались использовать для анализа строки удаления из ключа удаления реестра? Я бы не рекомендовал этот метод, но он может быть лучше, чем ничего.

@(For /F "Delims=" %%G In (
    '^""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "(KB4475558)" /D 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause

Если вы удовлетворены результатами, вы можете изменить код, чтобы попытаться удалить его. , (вероятно, вам потребуется запустить скрипт или команду «Как администратор») :

Из :

@For /F "Delims=" %%G In (
    '^""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "(KB4475558)" /D 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @%%I

или :

For /F "Delims=" %G In ('""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "KB4475558" /D 2>NUL|Find "{""')Do @For /F "Tokens=2*" %H In ('""%__AppDir__%reg.exe" Query "%G" /V "UninstallString" 2>NUL"')Do @Echo(%I

Если вы пытаетесь сделать это для всех обновлений KB для своих офисных продуктов, что-то подобное может приблизить вас :

@(For /F "Delims=" %%G In (
    '^""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "0FF1CE}_Office" /K 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause

Если вы удовлетворены результатами, вы можете изменить код, чтобы попытаться удалить его, (вполне вероятно, что вам потребуется запустить скрипт или команду «Как администратор». ') :

Из :

@(For /F "Delims=" %%G In (
    '^""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "0FF1CE}_Office" /K 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause

или из :

For /F "Delims=" %G In ('""%__AppDir__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /S /F "0FF1CE}_Office" /K 2>NUL|Find "{""')Do @For /F "Tokens=2*" %H In ('""%__AppDir__%reg.exe" Query "%G" /V "UninstallString" 2>NUL"')Do @%I

Обратите внимание, что в приведенных выше примерах анализируется только раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Могут быть и другие места, например, HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall, содержащая информацию, которая вам требуется.

...