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


Обновление агента центра обновления Windows

Агент центра обновления Windows (WUA) обновляется различными средствами в зависимости от версии Windows, работающей на устройстве. Старые версии WUA могут не подключаться к текущим службам обновлений, не совместимы со всеми обновлениями и не поддерживают все документированные API. Вот как убедиться, что WUA полностью обновлен и совместим.

Версии Windows, начиная с Windows 7 и Windows Server 2008 R2

Обновления агента обновления Windows (WUA) включаются в регулярные периодические обновления Windows, распространяемые через Центр обновления Windows или Службы Windows Server Update Services (WSUS). Вам не нужно предпринимать никаких специальных действий для обновления WUA в этих версиях Windows.

В версиях Windows до Windows 7 и Windows Server 2008 R2

WUA автоматически обновляется, когда автоматические обновления подключаются к Центру обновления Windows или к WSUS.

Если автоматическое обновление еще не выполнено, возможно, устройство под управлением этих версий Windows будет работать с более старой версией WUA, которая не поддерживает все документированные API. Если вы получаете результат WU_E_SELFUPDATE_REQUIRED при использовании WUA API для сканирования, скачивания или установки, эта ошибка сообщает, что установленная версия WUA слишком стара, чтобы подключиться к текущим службам обновления Windows. Вы не можете использовать обычные API WUA для обновления WUA в этих операционных системах.

Пользователь может вручную обновить WUA до текущей версии, открыв панель управления Центра обновления Windows, выбрав "Проверить наличие обновлений", а затем принять отображаемое самостоятельное обновление. Кроме того, вы можете программно обновить WUA.

Программное обновление WUA в версиях Windows до Windows 7 и Windows Server 2008 R2

  1. Используйте API-интерфейсы WinHTTP для скачивания Wuredist.cab.
  2. Используйте функции шифрования , чтобы убедиться, что скачаванная копия Wuredist.cab имеет цифровую подпись от Корпорации Майкрософт. Если вы не можете проверить цифровую подпись, остановите.
  3. Используйте интерфейс API для декомпрессии для извлечения XML-файла из Wuredist.cab.
  4. Используйте API Microsoft XML Core Services (MSXML) для загрузки XML-файла и поиска узла WURedist/StandaloneRedist/architecture для архитектуры компьютера. Например, для x86 найдите узел WURedist/StandaloneRedist/architecture с атрибутом имени и значением для x86.
  5. Вызовите IWindowsUpdateAgentInfo::GetInfo, чтобы определить текущую версию WUA. Если IWindowsUpdateAgentInfo::GetInfo возвращает номер версии, который по крайней мере столь же высок, как атрибут clientVersion в расположенном узле архитектуры, остановитесь.
  6. Используйте API-интерфейсы MSXML для чтения атрибута downloadUrl из узла архитектуры, расположенного вами. downloadUrl предоставляет URL для скачивания соответствующего установщика WUA для архитектуры компьютера.
  7. Используйте API WinHTTP для скачивания соответствующего установщика.
  8. Используйте функцию CreateProcess или аналогичный API, чтобы выполнить загруженный установщик.