Как проверить обновления на компьютере
Всякий добросовестный разработчик программного обеспечения следит за ошибками, которые обнаруживают пользователи в процессе работы, и оперативно их устраняет, выпуская обновления. Если, помимо исправлений, в программе нет никаких существенных изменений, то новой версии обычно присваивается промежуточный номер, например, "5.1.14". Такая нумерация дает возможность пользователю принять решение - обновлять программу или нет. Если приложение работает стабильно, вряд ли стоит тратить свое время на поиск и установку более нового промежуточного релиза. Однако когда программа закрывается с ошибкой или конфликтует с аппаратным обеспечением, в этом случае обновление просто необходимо. Еще один повод для того, чтобы регулярно отслеживать обновления - это проблема безопасности. Если программа хранит конфиденциальные данные пользователя (например, утилита для хранения паролей, браузер, антивирус или приложение для работы с системами электронных платежей), обновление следует производить настолько часто, насколько это возможно. Количество установленных приложений на компьютере может исчисляться десятками и даже сотнями. Для большинства из них регулярно выпускаются обновления. И даже если придерживаться простой логики и обновлять приложения только при необходимости, не всегда можно заметить выход свежей версии. Хорошо, если в программе есть функция автоматической проверки обновлений при каждом запуске или с заданной периодичностью. Но если ее нет, постоянное слежение за выходом новых версий отнимает немало времени, ведь необходимо регулярно посещать официальный сайт программы и в соответствующем разделе искать обновление.
Update Checker 1.032
SUMo 2.6
Разработчик: KC Softwares
Размер дистрибутива: 1,5 Мб
Распространение: бесплатно Эта утилита создана тем же разработчиком, который сделал массу других полезных утилит, в числе которых такие известные, как VideoInspector, KFK, AVIToolbox и прочие. Несколько необычное название утилиты - SUMo - на самом деле является аббревиатурой и расшифровывается как Sofware Updates Monitor. SUMo позволяет искать обновления в интернете как для отдельно взятого приложения, так и для всех программ, которые установлены в системе. Если необходимо вручную проверить доступность обновления для какой-то определенной утилиты, достаточно перетащить в рабочее окно ее исполняемый EXE-файл, после чего выделить в списке новый пункт и в контекстном меню программы выбрать команду "Проверить". Аналогично можно "открывать" в программе библиотеки DLL и файлы ActiveX.
Программа SUMo может также выполнить сканирование на предмет установленных приложений. В процессе сканирования будет произведен сбор данных о номере установленной версии и выполнено сравнение ее с последней доступной версией. Сканирование можно производить в двух режимах - обычном и расширенном. Второй вариант позволяет более точно определить список установленного ПО, однако для его использования потребуется больше времени. В списке обнаруженного установленного программного обеспечения можно увидеть текущий номер версии и название компании-разработчика. Если программа обнаруживает, что установленное приложение может быть обновлено, в графе "Обновление" списка проверяемого софта будет отображаться фраза "Доступно обновление", а также показан номер апдейта.
Для наглядности каждая программа в списке отмечена своей иконкой, что дает возможность, бросив беглый взгляд на перечень приложений, быстро определить, какие из установленных утилит обновлены, для каких обновление выполнять необязательно, а для каких наоборот - настоятельно рекомендуется. Загрузка обновлений сделана не очень удобно - для того, чтобы загрузить апдейт, нужно выполнить несколько действий. Если выбрать команду в контекстном меню программы "Обновить" или воспользоваться одноименной кнопкой в окне SUMo, то утилита сделает пересылку на страницу проекта, где будут сгенерированы несколько ссылок. Вопреки логике, это - не ссылки на загрузку, а поисковые запросы, в основном, по разным крупным каталогам софта. В результате, получается несколько странная картина - Sofware Updates Monitor определяет наличие обновления для приложения, однако дистрибутив обновления пользователю часто приходится искать самостоятельно. Если в перечне установленных программ присутствуют такие, для которых не нужно выполнять поиск обновлений, можно составить список запрещенных для мониторинга приложений.
AppSnap 1.3.3
Разработчик: Ganesh Viswanathan
Размер дистрибутива: 5,2 Мб
Распространение: бесплатно Для мониторинга новых версий приложений утилита AppSnap обращается к собственной базе данных. К сожалению, количество поддерживаемых программ не очень велико, поэтому не исключено, что в разделе "Установленные" вы не увидите и половины имеющегося на вашем компьютере софта. Дело в том, что программа ищет в системе только те приложения, для которых она может показать наличие свежих версий. Это очень большой недостаток, хотя, справедливости ради, следует отметить, что тот небольшой список программ, для которых AppSnap может отслеживать обновления, подобран неплохо. Действительно, в нем собраны самые распространенные утилиты - 7-zip, Winamp, Firefox, uTorrent, Opera и другие популярные программы (всего - несколько сотен).
Загружать и устанавливать обновления можно непосредственно из окна AppSnap. В процессе загрузки на экране отображается строка состояния процесса.
Пополнение базы программ разработчики возложили на пользователей. Так что, для того чтобы в последующих версиях утилита могла проверить обновление программы, которой нет в базе, "неизвестное приложение" необходимо занести вручную, заполнив соответствующую форму на официальном сайте AppSnap.
UpdateStar Premium 4
Разработчик: UpdateStar
Размер дистрибутива: 4,8 Мб
Распространение: shareware Интерфейс UpdateStar представлен в виде ленты с вкладками, каждая из которых содержит свои настройки и инструменты. Программа имеет многоязыковую поддержку, включая русский язык. Для того чтобы мониторинг обновлений был максимально удобен, разработчики программы наделили ее рядом особенностей. Во-первых, пользователям UpdateStar не нужно будет искать в сети дистрибутивы программ, так как утилита пересылает на страницу, где есть ссылки для скачивания. Во-вторых, программа имеет одну очень удобную функцию - сортировку приложений по разным критериям. В числе этих критериев есть, например, "Уровень безопасности". Этот параметр показывается в виде набора звездочек и характеризует, насколько актуальна для данного приложения проблема обеспечения конфиденциальности данных. Очевидно, что для программ с более высоким приоритетом (с большим количеством звездочек) следует выполнять обновление в первую очередь.
Определяя установленный на компьютере софт и предоставляя информацию о программах (номере свежей версии, рейтинге безопасности приложений и т.д.), UpdateStar ориентируется на свою собственную онлайновую базу данных. Несмотря на огромное количество проиндексированных данной утилитой приложений (около трех сотен тысяч всевозможных наименований - от графических редакторов и антивирусных программ до профессиональных пакетов для разработки приложений, инженерного проектирования и пр.), в процессе работы не исключены ошибки и неточности, которые могут быть связаны как с ошибочными записями в системном реестре, так и с тем, что в базе данных может отсутствовать запись о найденном приложении. Но даже в этом случае UpdateStar позволяет обойти возникшие проблемы. Так, например, программу, которую программа не идентифицировала, можно пометить и сделать по ней запрос разработчикам UpdateStar. Через некоторое время она уже будет включена в базу данных для мониторинга обновлений, объем которой, к слову, постоянно увеличивается. Точность определения установленных приложений довольно велика, но все же, перед тем, как запускать сканирование системы, не лишним будет воспользоваться интегрированным инструментом для очистки реестра. Если в результате некорректного удаления приложения в системном реестре остались ненужные записи, этот инструмент позволит их удалить. Чтобы перестраховаться, перед удалением "мусорных" записей в реестре, в UpdateStar можно сделать резервную копию удаляемых данных. В этом случае, при появлении незапланированных ошибок, можно импортировать данные в реестр, вернувшись к прежнему состоянию.
Для того чтобы следить за выходом новых версий программ, совсем не обязательно, чтобы они все были установлены на данном компьютере. Проверять наличие свежих релизов можно по заранее экспортированному списку программ. Этот список может быть сохранен в собственном формате утилиты UpdateStar или как HTML-файл. Если же, скажем, рейтинг обновлений, используемый программой по умолчанию, не совпадает с представлениями пользователя о том, какие программы следует обновить в первую очередь, он может использовать дополнительный критерий - свой собственный рейтинг. Установив для каждой программы свой собственный приоритет, в будущем можно будет быстро определить, какие именно из используемых программ следует обновить. На составление собственного рейтинга необходимо потратить некоторое время. Если вам лень это делать, можно просто ориентироваться на средний рейтинг приложений, который определяется как усредненные данные о пользовательских приоритетах в UpdateStar. Статистику данных об установленных приложениях программа также представляет в виде наглядной диаграммы. UpdateStar хранит историю обновлений. В программе можно просматривать статистику, которая содержит данные о времени установки того или иного приложения.
После запуска UpdateStar производит анализ системы и определяет версии установленных программ. Создав список установленного ПО на вкладке "Программы", напротив каждого приложения, версия которого устарела, утилита генерирует ссылку для загрузки более свежего релиза. После перехода по этой ссылке, откроется окно браузера, в котором будет представлена подробная информация о выбранной программе - скриншоты рабочего окна приложения, ссылка на официальный сайт разработчика, обучающие видеоролики, демонстрирующие возможности программы (если таковые имеются), и, само собой, прямая ссылка на загрузку новой версии. UpdateStar может автоматически загружаться вместе с системой и дает возможность запускать проверку обновлений по расписанию. Встроенный планировщик заданий позволяет выполнять автоматический мониторинг обновлений ежедневно, каждую неделю или каждый месяц, в определенное время. Для загрузки информации из интернета программа может работать с указанными настройками прокси-сервера, а также использовать безопасное SSL-соединение.
Заключение
На первый взгляд, наиболее привлекательно выглядит программа SUMo. Она содержит все инструменты, необходимые для быстрого поиска и загрузки обновлений софта, при этом имеет русский интерфейс и, что немаловажно, распространяется бесплатно. Однако есть "ложка дегтя" - неудобная загрузка обнаруженных новых версий программ. Если закрыть глаза на то, что UpdateStar Premium - это коммерческий продукт, из всех программ для автоматического определения обновлений небольшое преимущество остается именно за ней. Это - единственная программа, которая позволяет выполнять мониторинг обновлений приложений в автоматическом режиме по расписанию. К сожалению, большинство возможностей UpdateStar доступно только для коммерческой версии Premium. Так, например, в бесплатной версии нет чистильщика реестра, отсутствует возможность создания списка программ, обновления для приложений показываются только наиболее значимые, а проверка наличия новых версий происходит значительно реже. И, тем не менее, даже бесплатная версия UpdateStar может многим облегчить работу. Что же касается AppSnap, то эта программа может пригодиться разве что для коллекции "аварийной" флэшки. Некоторые пользователи считают, что устанавливать новую версию программы не стоит, если предыдущий релиз работает без проблем и устраивает во всех отношениях. В этом определенно есть смысл, ведь, как уже было сказано выше, большинство промежуточных версий не содержит кардинальных изменений, а лишь устраняет неточности в работе приложения. Ну, а относительно того, устанавливать или нет новый релиз - это каждый должен решить самостоятельно. Главное - помнить: "новое" еще не означает "лучшее".
Windows 10 — последняя операционная система от Microsoft, которая имеет бессрочную поддержку. Соответственно, обновления программного обеспечения и драйверов будут выходить продолжительный период, а от пользователя требуется производить своевременную инсталляцию во избежание критических ошибок и заражения компьютера вредоносным кодом.
Способы проверки наличия обновлений
Проверить обновления Windows 10 можно несколькими способами, каждый из которых подразумевает использование стандартных средств операционной системы.
Важно! Для успешного выполнения задачи требуется стабильное интернет-соединение.
Параметры системы
Традиционным методом обновиться считается применение специальных инструментов через меню параметров. Для реализации необходимо:
- Развернуть меню « Пуск », нажать по кнопке « Параметры ». Можно использовать комбинацию горячих клавиш Win + I .
- Перейти в раздел « Обновление и безопасность ».
- Во вкладке « Центр обновления Windows » нажать кнопку Проверить наличие обновлений .
Начнется процесс проверки, который длится примерно две минуты. Если обновления обнаружены, будет предложено выполнить установку новых компонентов.
Создание ярлыка на рабочем столе
Обновлять систему можно в один клик мышкой, если подготовить специальный ярлык на рабочем столе. Для этого понадобится:
- В произвольном месте нажать правой кнопкой мыши (ПКМ).
- Навести курсор на строку « Создать », выбрать пункт « Ярлык ».
- В появившемся окне Мастера создания ярлыков ввести в соответствующее поле команду explorer ms-settings:windowsupdate-action . Нажать Далее .
- Вписать произвольное имя ярлыка, например « Проверка обновлений ». Нажать Готово .
На рабочем экране появится соответствующий ярлык, после запуска которого откроется меню параметров для проверки новых версий компонентов Windows.
По умолчанию значок присваивается автоматически и имеет вид папки. Чтобы изменить иконку, необходимо:
- Используя контекстное меню, открыть « Свойства » элемента.
- Перейти на вкладку « Ярлык », нажать кнопку Сменить значок… .
- В предоставленном списке выбрать желаемую картинку, нажать ОК .
Можно присвоить ярлыку пользовательскую иконку. Для этого в последнем меню потребуется нажать кнопку Обзор… , а в файловом менеджере указать путь к изображению.
Windows 10 Update Assistant
Ввиду неисправности компонентов системы, отвечающих за функцию проверки обновлений, можно выполнить операцию посредством использования специальной утилиты Update Assistant:
- Перейти на официальный сайт приложения.
- Нажать кнопку Обновить сейчас .
- Выполнить загрузку исполняемого файла, запустить скачанную утилиту.
- Дождаться окончания проверки версии системы и при необходимости начать инсталляцию новых компонентов.
Программа Update Assistant позволяет связаться с серверами Microsoft напрямую, за счет чего игнорируются внутренние ограничения операционной системы. Это позволяет скачать на компьютер последние версии пакетов данных.
Принудительная проверка через «Командную строку»
«Командная строка» — универсальное решение для выполнения любых действий с операционной системой. Чтобы узнать об обновлении Windows 10, необходимо сначала запустить консоль:
- Раскрыть меню « Пуск ».
- В списке приложений развернуть директорию « Служебные ».
- Нажать по утилите « Командная строка » правой кнопкой мыши.
- В дополнительных параметрах выбрать опцию « Запустить от имени администратора ».
Потребуется подтвердить действие в диалоговом окне, после чего откроется окно консоли. Для поиска новых версий программного обеспечения необходимо ввести команду wuauclt /detectnow и нажать Enter .
Чтобы вручную выполнить сброс параметров проверки, потребуется выполнить команду wuauclt /resetAuthorization . Это необходимо в случае появления ошибки подключения к серверам Microsoft.
Для запуска процесса инсталляции новых пакетов в «Командной строке» нужно вписать wuauclt /UpdateNow и нажать Enter .
Важно! Выполняемые команды запускают службу в фоновом режиме.
Просмотр списка обновлений
В системе есть раздел, где можно посмотреть полный список установленных апдейтов. Чтобы ознакомиться с данными, необходимо:
- Раскрыть меню « Пуск », в списке приложений перейти в папку « Служебные », запустить компонент « Панель управления ».
- Установив режим просмотра « Категория », перейти по гиперссылке « Удаление программ ».
- Нажать по пункту « Просмотр установленных обновлений », расположенный на боковой панели.
Отобразится список апдейтов с кодовым обозначением, информацией от издателя и датой установки. При необходимости пользователь может деинсталлировать программу, выделив необходимую и нажав кнопку Удалить .
Обратите внимание! Проверять можно только установленные обновления.
Проблема с бесконечной загрузкой апдейта
-
со сценарием и распаковать в любую директорию.
- Нажать по скрипту ПКМ и выбрать опцию « Запуск от имени администратора ».
- Дождаться выполнения всех команд.
- Перезагрузить компьютер.
После запуска рабочего стола ошибка исчезнет и «Центр обновления» перестанет зависать.
Компания Microsoft предоставила множество способов проверки новых релизов системных компонентов и важного программного обеспечения. Если стандартный способ отказывается работать, рекомендуется воспользоваться «Командной строкой». При зависании необходимо очистить кэш, приведенным выше методом.
Мало кто задумывается насколько важны обновления ОС Windows. Основная цель апгрейда системы — это улучшение безопасности компьютера от внешних угроз. Кража личных и корпоративных данных, перешифрование или удаление файлов и многое другое — лишь малая часть опасностей, которые подстерегают пользователя в глобальной сети. Корпорация Microsoft постоянно обновляет систему для того, чтобы свести к минимуму все угрозы для юзеров.
Проверка наличия обновлений
Самый простой способ проверки наличия неустановленных обновлений — это обращение к «Центру обновлений» (ЦО).
- Нажимаем комбинацию клавиш Win+r, в открывшемся окне выбираем апплет «Обновление и безопасность». Открываем апплет «Обновление и безопасность»
- Открываем вкладку «Центр обновления Windows» (открывается по умолчанию) и нажимаем кнопку «Проверка наличия обновлений». Дожидаемся, пока программа найдёт, скачает и установит обновления, если таковые будут. В ЦО нажимаем кнопку «Проверка наличия обновлений»
После запуска проверки окно «Параметров» можно закрывать, служба поиска и установки обновлений может работать в фоновом режиме. При этом выполнение задачи может продолжаться несколько часов, потому нет смысла следить за процессом. Операционная система сама сообщит, когда установка будет закончена, и предложит перезагрузить компьютер.
Мой опыт показывает, что лучше завершить установку сразу, так как недоустановленные обновления могут тормозить работу системы в целом.
Видео: как проверить наличие обновлений Windows 10
Быстрая проверка обновлений Windows 10 с помощью ярлыка
Существует способ, который позволяет осуществить «быструю» проверку обновлений. Нет необходимости рыться в «Параметрах» и настройках, достаточно просто открыть один ярлык, после чего запустится цепочка, активирующая поиск апдейтов.
- На рабочем столе щёлкаем правой кнопкой мыши. Открываем выпадающее меню пункта «Создать» и выбираем «Ярлык». Создаем ярлык для быстрого запуска проверки
- Откроется мастер создания ярлыка. В поле «Укажите расположение объекта» прописываем ms-settings:windowsupdate-action, нажимаем «Далее». Указываем ms-settings:windowsupdate-action в поле расположении объекта
- Последний шаг — это присваивание имени ярлыку. Прописываем удобное и понятное имя, затем нажимаем «Готово». Указываем удобное имя ярлыка и нажимаем «Готово»
После создания ярлыка двойной щелчок по нему будет открывать ЦО и запускать процедуру проверки наличия обновлений.
Дополнительный способ со сторонней программой Windows 10 Update Assistant
Утилита Windows 10 Update Assistant создана программистами Microsoft и является дополнительным инструментом для обновления операционной системы. Однако «Помощник» имеет одно отличие, относительно ЦО: при использовании ассистента не только обновляется базы данных безопасности и библиотеки, но ещё и сама операционная система становится более новой версии.
- Скачиваем средство с официального сайта Microsoft. Программы с других ресурсов могут быть вредоносными или нелицензированными, а это может повредить компьютеру.
- Запускаем файл.
- В открывшемся окне нажимаем кнопку Update Now («Обновить сейчас»). Нажимаем кнопку Update Now («Обновить сейчас»)
- Ожидаем, пока утилита закончит проверку совместимости компьютера и устанавливаемого продукта, затем нажимаем Continue («Далее»). Нажимаем Continue («Далее») и запускаем этим процесс обновления
- Ожидаем, пока программа закончит свою работу, после чего перезагружаем компьютер. Дожидаемся, когда программа завершит обновление, и перезагружаем компьютер
Видео: как использовать Windows 10 Update Assistant
Принудительная проверка через терминал «Командной строки»
Через терминал «Командной строки» на компьютере можно сделать практически всё. Проверка обновлений не является исключением.
- Щёлкаем правой кнопкой по значку Windows в левом нижнем углу, выбираем пункт «Командная строка(администратор)». Через контекстное меню открываем «Командная строка(администратор)»
- В терминал вводим команду wuauclt.exe /updatenow и запускаем её в исполнение клавишей Enter. Команда wuauclt.exe /updatenow запускает проверку обновлений
Проверка будет проходить в фоновом режиме, потому некоторое время лучше не перезагружать компьютер.
Просмотр полученных обновлений
Чтобы узнать, какие попытки обновления завершились успехом, а какие нет, нужно посмотреть «Журнал обновлений». Дополнительные сведения по тому или иному апдейту также можно узнать в протокольной службе.
В открывшемся списке щёлкаем по ссылке «Успешно установлено», чтобы вызвать всплывающее окошко подсказки. В нём нажимаем на «Дополнительные сведения», для получения справки по обновлению на сайте Microsoft.
Щелкнув «Дополнительные сведения» можно получить справку на сайте Microsoft
Проблема с очень длительным поиском обновлений и другие возможные проблемы
Как и большинство компонентов Windows, ЦО может быть подвержен влиянию ошибок. Это может быть как простые — бесконечные обновления, так и более сложные — повреждённые файлы службы вирусами или ошибками дисков.
Если возникает любая ошибка в любой службе, когда что-либо в операционной системе работает некорректно, сразу же необходимо провести диагностику ОС на наличие вирусов. Используем для этого не меньше двух разных антивирусных программ, чтобы увеличить диапазон и качество поиска. После проверки необходимо запустить средство по сканированию и восстановлению системных файлов.
- Открываем терминал «Командной строки», прописываем команду sfc /scannow и запускаем её в исполнение клавишей Enter. Команда sfc /scannow запускает проверку и восстановление системных файлов
- Обязательно дожидаемся, пока программа проверит и восстановит файлы, если потребуется. После перезагружаем компьютер.
Долгое обновление системы
Проблема с долгим, практически бесконечным, поиском обновлений известна многим пользователям. Часто это связано с проблемами интернета, в этом случае всё решится само собой. Однако в случае, когда на компьютере происходит сбои в работе служб, нужно лёгкое вмешательство пользователя для исправления ситуации.
- В «Командной строке» прописываем команду services.msc и запускаем её в исполнение клавишей Enter. Команда services.msc открывает «Службы»
- В открывшемся окне служб двойным щелчком левой кнопки открываем свойства службы «Центр обновления Windows». Меняем фильтр «Тип запуска» на «Автоматически» и сохраняем изменения кнопкой OK. Меняем тип запуска на «Автоматически» и сохраняем кнопкой OK
- Перезагружаем компьютер, после чего повторяем процедуру поиска обновлений для операционной системы.
Обновить Windows 10 очень просто, если пользоваться инструкциями выше. Поддерживайте свою систему в наиболее актуальном состоянии и будете защищены от всех возможных угроз потери или кражи данных.
Вы когда-нибудь задумывались, с помощью чего формируется список установленных обновлений Windows? А через какое API его достать? Ответы на эти и другие возникающие вопросы я постараюсь дать в своём небольшом исследовании.
Предыстория или с чего всё началось.
В нашей компании каждый год проходит конференция молодых специалистов, где каждый участник может решить проблему какого-либо отдела (список тем заранее предлагается).
Раньше на каждое «ТО» с помощью WSUS подтягивались все выпущенные обновления и распространялись на все машины. Также периодически выходили ТСБ (технические сервисные бюллетени), в которых указывалось, что требуется установить необходимые обновления в виде изолированных пакетов. В итоге у нас накапливаются обновления, которые в WSUS отследить нельзя, а можно было увидеть только через панель управления в разделе «Установленные обновления».
Бывают ситуации, когда АРМ или сервер «падает» и приходится его восстанавливать из образа, созданного некоторое время назад. При восстановлении из образа есть вероятность того, что мы можем потерять нужные нам обновления (которые пришли в виде изолированных пакетов), которые устанавливались до падения машины. Объяснил максимально подробно насколько мог, потому что уточнения будут уже коммерческой тайной.
Как вы могли догадаться из названия статьи, уже на выборе метода получения списка у меня возникла непростая задача. Я, как обычно, решил поискать нужное в поисковике, задал вопросы на профильных ресурсах (раз, два, на английском stackoverflow почему-то не понравился мой вопрос и его пришлось удалить), но все ответы не давали нужного результата. Поэтому пришлось разбираться самому, о чем и пойдет речь далее.
Консольные команды
Начнем с простого и воспользуемся тем, что предлагает нам Windows без использования сторонних средств. Это можно сделать с помощью следующих команд:
- wmic qfe list
- systeminfo
- dism /online /get-packages
- через PowerShell:
- Get-HotFix
- Get-SilWindowsUpdate (доступно только в серверных редакциях)
- Get-WmiObject -Class win32_quickfixengineering — через доступ к WMI классу win32_quickfixengineering (о WMI чуть позже)
Получить список через графический интерфейс можно через стандартный пункт Панели управления «Установка/удаление программ», но скопировать оттуда мы ничего не можем. Каждый инструмент панели управления представлен файлом .cpl в папке Windows\System. Файлы .cpl в системную папку Windows автоматически загружаются при запуске панели управления. За пункт Программы отвечает файл Appwiz.cpl. Его анализ ни к чему не привел.
Формально все методы получения списка обновлений можно разделить на две группы: локальные и сетевые.
Все методы проверялись на чистых образах систем (Windows 7, 8, Server 2012 R2) с интегрированными обновлениями, после каждого обновления через Центр обновления с официальных серверов Microsoft проводилась дополнительная проверка. Остановимся на каждом из них подробнее.
WUApi (Windows Update Agent API) — использование API агента обновления Windows. Самый явный вариант, название которого говорит само за себя. Использовать для этого будем библиотеку Wuapi.dll.
Примечание: далее для своего удобства все результаты я буду вставлять в List. Это, возможно, не рационально, но тогда мне это казалось хорошей идеей.
Есть и вторая вариация этого метода: Update Session — получение информации с помощью подключения к сессии обновления Windows Update Agent (в данном случае работаем не напрямую с библиотекой).
Microsoft подсказывает об удаленном использовании API.
Главный минусы этих двух методов — не позволяют найти исправления KB, которые не распространяются через Центр обновления Windows. Можно увидеть только то, что прошло через сам агент обновления, то есть данный вариант нас не устраивает.
Система обслуживания образов развертывания и управления ими (Deployment Image Servicing and Management) — это средство командной строки, которое может использоваться для обслуживания образа Windows или для подготовки образа среды предустановки Windows (Windows PE). Является заменой диспетчера пакетов (Pkgmgr.exe), PEimg и Intlcfg.
Данная утилита используется для интеграции обновлений, сервис паков в образ системы. Обновления Windows представляют собой отдельные модули, которые могут быть представлены в нескольких вариантах:
- .cab-файлы (Cabinet) — архивы. Предназначены для распространения и установки при помощи модулей Центра обновлений Windows в автоматизированном режиме;
- .msu-файлы (Microsoft Update Standalone Package) — исполняемые файлы. Предназначены для распространения и установки самими пользователями в ручном режиме через каталог обновлений Microsoft. Фактически представляют собой упакованный набор, состоящий из .cab-, .xml, .txt-файлов.
Количество обновлений совпадало с количеством из списка Панели управления до первого апдейта через центр управления — после него количество обновлений стало меньше (было 214, стало 209), хотя по логике они должны были увеличиться. Примеры вывода До обновления, После обновления.
С чем это связано я могу только предполагать — возможно, какие-то обновления замещали предыдущие, следовательно, и количество стало меньше.
Чуть позже я наткнулся на утилиту от китайцев DISM++, которая основана не на DISM API или DISM Core API, но имеющиеся в ней библиотеки не имеют нужных мне открытых методов, поэтому я забросил эту идею и продолжил поиски дальше.
Windows Server Update Services (WSUS) — сервер обновлений операционных систем и продуктов Microsoft. Сервер обновлений синхронизируется с сайтом Microsoft, скачивая обновления, которые могут быть распространены внутри корпоративной локальной сети. Опять же специальный инструмент, предназначенный для работы с обновлениями.
Распространяется только на серверных редакциях ОС Windows, поэтому был развернут следующий стенд:
- основная система – Windows Server 2016;
- а через систему виртуализации Hyper-V были развернуты две клиентские ОС:
- Windows 8.1
- Windows 7
Чтобы не выделять раздел жесткого диска для новой системы я пользуюсь WinNTSetup и устанавливаю систему в VHD диски — загрузчик, начиная с Windows 7 (редакций Professional/Ultimate), прекрасно справляется с загрузкой с образа диска. Полученные таким образом диски можно спокойно использовать и в Hyper-V — убиваете сразу двоих зайцев. Не забудьте только сделать заранее копию хранилища BCD через команду bcdedit /export e:\bcd_backup.bcd.
Настраивать AD для рассылки обновлений я не захотел, поэтому просто прописал в групповых политиках путь к WSUS серверу:
Обязательно уделите внимание на порт, я из-за опечатки (8350 вместо 8530) не мог получить обновления на клиентских машинах, хотя сделано было всё верно. Так же названия пунктов в групповых политиках на Windows 7 и Windows 8 различаются.
Для получения отчета средствами WSUS необходимо дополнительно установить пакет — система уведомит вас об этом.
Так как интернета нет, то ситуация с обновлениями выходит как на скриншоте ниже:
Поведение похоже на WUApi — если обновления не прошли через них, то они не знают об этом. Поэтому данный метод снова не подходит.
Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows.
WMI — реализованный корпорацией Майкрософт стандарт управления предприятием через Интернет для централизованного администрирования и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. WMI является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.
Данный метод позволяет получить данные как с локальной машины, так и удаленно в пределах локальной сети. Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одной из разновидностей SQL. Получать список мы будем через WMI класс win32_quickfixengineering.
Количественно всё совпадает (даже после обновлений), поэтому было решено использовать этот метод. Для программного создания WMI запросов советую использовать следующую утилиту — WMI Delphi Code Creator. Благодаря ей я немного по другому взглянул на свой код и решил использовать заготовку из этой программы.
Полученные данные методом WMI меня не остановили, и я решился на „поверхностный реверс-инжиниринг“. Воспользуемся утилитой Process Monitor из сборника программ Sysinternals Suite для выявления файлов и ветвей реестра, которые используются при вызове выше перечисленных консольных команд и обращению к пункту „Установленные обновления“ через Панель управления.
Моё внимание привлек файл wuindex.xml, расположенный в папке C:\Windows\servicing\Packages\. Для его анализа была написана следующая программа:
К сожалению, данный файл встречается не на всех системах и принцип его генерирования и обновления остался для меня загадкой. Поэтому снова данный метод нам не подходит.
Вот мы подошли к тому, с чем связаны все эти методы. Продолжая анализ логов Process Monitor я выявил следующие папки и файлы.
Файл DataStore.edb, расположенный в папке C:\Windows\SoftwareDistribution\DataStore. Это база данных, в которой содержится история всех обновлений установленной версии Windows, включая те обновления, которые только стоят в очереди.
Для анализа файла DataStore.edb использовалась программа ESEDatabaseView. В БД существует таблица tbUpdates, содержимое которой трудно интерпретировать.
После мое внимание привлек процесс TiWorker.exe, который вызывался каждый раз при открытии пункта в Панели управления. Он „ходил“ по многим папкам, одна из которых вывела меня на верный путь.
C:\Windows\SoftwareDistribution — это папка, используемая службой обновления Windows для загрузки обновлений на компьютер с последующей их установкой, а также хранит сведения обо всех ранее установленных обновлениях.
Папка WinSxS, расположенная по адресу C:\Windows\winsxs. Это служебная папка операционной системы Windows служащая для хранения ранее установленных версий системных компонентов. Благодаря ее наличию существует возможность отката к более старой версии обновления в случае необходимости.
C:\Windows\servicing — основная составляющая всей системы, имя которой Component-Based Servicing (CBS).
CBS — обслуживание на основе компонентов, составляющая Windows, интегрированная с службой Windows Update. В противоположность обслуживанию на основе файлов File-Based Servicing (FBS) (для ОС, предшествующих Windows Vista), в котором файлы обновлялись прямо в системных директориях, в CBS появилась целая иерархия директорий и целое семейство (стек) модулей/библиотек обслуживания.
CbsApi.dll — основная библиотека поддержки технологии CBS. Не имеет открытых методов, поэтому напрямую использовать её я не смог. Microsoft использует TrustedInstaller.exe и TiWorker.exe для доступа к методам данной библиотеки и уже через эти процессы выводит нужные нам данные. Записи ведутся в C:\Windows\Logs\CBS\CBS.log.
Вывод
Microsoft слишком усложнила тривиальную задачу по получению списка обновлений и сделала этот процесс не совсем явным. Всё это сделано для безопасности, но не для простоты использования. Соглашусь с автором статьи — в получении обновлений стали отсутствовать предсказуемость и прозрачность.
В результате исследования была написана следующая программа, демонстрацию работы которой можно увидеть в данном видео:
Читайте также: