Просмотр всех установленных обновлений Windows
Как узнать какие обновления ОС Windows установлены на вашем ПК или сервере? Конечно, можно открыть «Панель управления->Установка/удаление программ», либо элемент Update History в Windows 7/2008 и просмотреть список установленных обновлений, однако с помощью графического интерфейса нельзя ни выгрузить этот список, ни осуществить поиск по нему. В таком случае, необходимо прибегнуть к помощи командной строки. С помощью следующей команды можно вывести подробный список всех обновлений, которые установлены на данной системе Windows:
В результатах выполнения этой команды можно увидеть что установлено, кем и когда, кроме того, выводится ссылка на статью в базе знания Microsoft (KB). Для того, чтобы получить список установленных обновлений в текстовом виде, можно просто перенаправить вывод этой команды в текстовый файл, а затем открыть его в любимом текстовом редакторе:
Текстовый файл с именем updatelist.txt создастся в каталоге C:\Windows\System32\.
Если нужно узнать установлено ли конкретное обновление Windows на данной системе (например, KB2544521), можно воспользоваться командой find, перенаправив вывод в нее:
Как вы видите, обновление KB2544521 уже установлено.
Еще один способ просмотра установленных обновлений в Windows – использование утилиты “systeminfo”. Данная команда в отличии от предыдущей выведет лишь список номеров KB (в дополнении к системной информации). В данном случае также можно перенаправить вывод этой команды в текстовый файл:
Однако будьте внимательными, все эти команды отображают лишь установленные обновления и хотфиксы для самой ОС Windows, информации об обновлениях любых других продуктов Microsoft (таких как, UAG, Office, TMG, SQL или Exchange) здесь отсутствует. Для просмотра установленных обновлений на эти продукты, необходимо в меню пуск набрать: “View Installed Updates”, после чего откроется стандартное окно, доступное из панели управления.
Для поиска конкретного обновления можно в окне поиска (в правом верхнем углу) набрать KB и номер апдейта, однако поиск выполняется не очень корректно, поэтому иногда проще найти нужное обновление простым просмотром списка.
Также при установке обновлений не стоит забывать, что они требуют перезагрузки системы. В Windows 7 после установки обновлений она перезагружается автоматически, что достаточно неудобно. К счастью, можно отключить автоматическую перезагрузку Windows после установки обновлений.
Просмотр журнала обновлений WindowsUpdate.log в Windows 10 / Windows Server 2016
Исторически для анализа работы агента и службы обновления Windows используется текстовый файл WindowsUpdate.log. Однако в Windows 10 (Windows Server 2016/2019) вместо привычного текстового файла логи Windows Update ведутся в формате Event Tracing for Windows (ETW). За счет этого увеличивается быстродействие подсистемы записи логов и экономится место на диске.
Таким образом, события Windows Update теперь больше не записываются в реальном времени в файл %windir%\WindowsUpdate.log. И хотя сам файл все еще присутствует в корне папки Windows, в нем лишь указано, что для сбора логов теперь применяется формат ETW.
Главное неудобство для администраторов – теперь вы не можете быстро проанализировать текстовый файл WindowsUpdate.log, найти ошибки в службе агента обновлений Windows (см. полный список ошибок Windows Update), проверить настройки WSUS и проанализировать историю установки обновлений.
Вы можете сконвертировать события ETW в привычный текстовый формат WindowsUpdate.log для более удобного анализа событий службы обновлений. Для этого используется командлет PowerShell — Get-WindowsUpdateLog. Данный командлет позволяет собрать информацию со всех .etl файлов (хранятся в каталоге C:\WINDOWS\Logs\WindowsUpdate) и сформировать один файл WindowsUpdate.log.
Чтобы сформировать файл WindowsUpdate.log и поместить его в каталог C:\PS\Logs, выполните следующую команду в консоли PowerShell:
Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log
Файл “C:\Program Files\Windows Defender\SymSrv.dll” обычно отсутствует, если на сервере не установлен антивирус Windows Defender.
Чтобы исправить ошибку, вы можете установить Defender, скопировать файл SymSrv.dll с другого Windows Server 2016/ Windows 10 или поиском найти его в каталоге “C:\Windows\WinSxS\” (у меня каталог назывался C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_…) и скопировать его в папку C:\Program Files\Windows Defender.
В старых версиях Windows 10 при первом запуске командлет Get-WindowsUpdateLog скачает и установит сервер символов Microsoft (Microsoft Internet Symbol Store). В последних версиях Windows 10 выполняется онлайн доступ к серверу символов Microsoft в Azure. Затем командлет:
- Собирает данные из всех .etl файлов;
- Преобразует данные в CSV (по-умолчанию) или XML формат;
- Переконвертирует данные из промежуточных файлов и добавляет их в текстовый файл журнала, указанного в параметре LogPath (если параметр LogPath не задан, файл WindowsUpdate.log создается на рабочем столе пользователя, запустившего команду).
Это значит, что у вас не установлен сервер символов Windows Symbol (сейчас нельзя скачать отдельную программу установки Windows symbols, т.к. они автоматически загружаются из хранилища символов в Azure). Для изолированных сред вы можете использовать офлайн версию сервера символов согласно статье Offline Symbols for Windows Update.
Откройте файл журнала с помощью такой команды PowerShell:
Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log
Анализировать получившийся файл WindowsUpdate.log довольно сложно, т.к. в нем собираются данные из множества источников:
- AGENT- события агента Windows Update;
- AU – автоматическое обновление;
- AUCLNT- взаимодействие с пользователем;
- HANDLER- управление установщиком обновлений;
- MISC- общая информация;
- PT- синхронизация обновлений с локальным хранилищем;
- REPORT- сбор отчетов;
- SERVICE- запуск/выключение службы wuauserv;
- SETUP- установка новых версий клиента Windows Update;
- DownloadManager – загрузка обновлений в локальных кэш;
- Handler, Setup – заголовки установщиков (CBS и т.п.);
- И т.д.
Вы можете выбрать последние 30 событий от агента обновления Windows (agent) с помощью простого регулярного выражения:
Select-String -Pattern ‘\sagent\s’ -Path C:\PS\Logs\WindowsUpdate.log | Select-Object -Last 30
Можно отфильтровать события в логе по нескольким источникам:
Select-String -Pattern ‘\sagent\s|\smisc\s’ -Path c:\PS\Logs\WindowsUpdate.log | Select-Object -Last 50
Аналогично вы можете искать события по номеру KB, ошибка (строки FAILED, Exit Code, FATAL).
Также вы можете сформировать файл WindowsUpdate.log для удаленного компьютера/сервера:
Get-WindowsUpdateLog -ETLPath \\PC221\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdatePC221.log
Также для анализа работы службы обновлений Windows может быть полезны журналы Event Viewer в разделе Applications and Services Logs -> Microsoft -> Windows –> WindowsUpdateClient -> Operational.
Просматриваем информацию об обновлениях в Windows 10
Просмотр обновлений Виндовс
Существуют различия между списками установленных апдейтов и непосредственно журналом. В первом случае мы получаем информацию о пакетах и их назначении (с возможностью удаления), а во втором — непосредственно лог, отображающий выполненные операции и их статус. Рассмотрим оба варианта.
Вариант 1: Списки обновлений
Существует несколько способов получить перечень установленных на ПК обновлений. Самым простым из них является классическая «Панель управления».
- Открываем системный поиск, нажав на значок с изображением лупы на «Панели задач». В поле начинаем вводить «Панель управления» и кликаем по появившемуся пункту в выдаче.
Включаем режим просмотра «Мелкие значки» и переходим к апплету «Программы и компоненты».
Далее идем в раздел установленных обновлений.
В очередном окне мы увидим список всех пакетов, имеющихся в системе. Здесь указаны названия с кодами, версии, если таковые имеются, целевые приложения и даты инсталляции. Удалить апдейт можно, нажав по нему ПКМ и выбрав соответствующий (единственный) пункт в меню.
Следующим инструментом является «Командная строка», запущенная от имени администратора.
Первая команда выводит список обновлений с указанием их назначения (обычное или для обеспечения безопасности), идентификатора (KBXXXXXXX), пользователя, от чьего имени производилась установка, а также даты.
wmic qfe list brief /format:table
Если не использовать параметры «brief» и «/format:table», то кроме прочего, можно увидеть адрес страницы с описанием пакета на сайте Майкрософт.
Еще одна команда, позволяющая получить некоторую информацию об апдейтах
Искомое находится в разделе «Исправления».
Вариант 2: Логи обновлений
Логи отличаются от списков тем, что в них также содержатся данные обо всех попытках выполнить апдейт и их успешности. В сжатом виде такая информация хранится непосредственно в журнале обновлений Windows 10.
- Жмем сочетание клавиш Windows+I, открыв «Параметры», а затем переходим в раздел обновления и безопасности.
Жмем на ссылку, ведущую к журналу.
Здесь мы увидим все уже установленные пакеты, а также неудачные попытки выполнения операции.
Более подробную информацию можно получить с помощью «PowerShell». Данный прием в основном используется для «отлова» ошибок при обновлении.
- Запускаем «PowerShell» от имени администратора. Для этого жмем ПКМ по кнопке «Пуск» и выбираем нужный пункт в контекстном меню или, при условии отсутствия такового, пользуемся поиском.
В открывшемся окне выполняем команду
Она конвертирует файлы журнала в удобочитаемый текстовый формат, создав на рабочем столе файл с названием «WindowsUpdate.log», который можно открыть в обычном блокноте.
«Простому смертному» прочитать данный файл будет весьма тяжело, но сайте Майкрософт есть статья, дающая некоторое представление о том, что содержат строки документа.
Применительно к домашнему ПК эту информацию можно использовать для выявления ошибок на всех стадиях операции.
Заключение
Как видите, просмотреть журнал обновлений Windows 10 можно несколькими способами. Система дает нам достаточно инструментов для получения сведений. Классическую «Панель управления» и раздел в «Параметрах» удобно использовать на домашнем компьютере, а «Командную строку» и «PowerShell» можно применять для администрирования машин в локальной сети.