Просмотр журнала обновлений 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 10

Windows Update logs are now generated using ETW (Event Tracing for Windows).
Please run the Get-WindowsUpdateLog PowerShell command to convert ETW traces into a readable WindowsUpdate.log. For more information, please visit http://go.microsoft.com/fwlink/?LinkId=518345

Главное неудобство для администраторов – теперь вы не можете быстро проанализировать текстовый файл WindowsUpdate.log, найти ошибки в службе агента обновлений Windows (см. полный список ошибок Windows Update), проверить настройки WSUS и проанализировать историю установки обновлений.

Вы можете сконвертировать события ETW в привычный текстовый формат WindowsUpdate.log для более удобного анализа событий службы обновлений. Для этого используется командлет PowerShell — Get-WindowsUpdateLog. Данный командлет позволяет собрать информацию со всех .etl файлов (хранятся в каталоге C:\WINDOWS\Logs\WindowsUpdate) и сформировать один файл WindowsUpdate.log.

etl файл windowsupdate в Windows 10

Чтобы сформировать файл WindowsUpdate.log и поместить его в каталог C:\PS\Logs, выполните следующую команду в консоли PowerShell:

Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log

Get-WindowsUpdateLog в WIndows 10

В Windows Server 2016 при запуске командлета Get-WindowsUpdateLog может появиться ошибка отсутствующего файла SymSrv.dll:

Copy-Item : Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll' because it does not exist. At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 char:5

WindowsUpdateLog.psm1 Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll'

Файл “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.

SymSrv.dll

В старых версиях Windows 10 при первом запуске командлет Get-WindowsUpdateLog скачает и установит сервер символов Microsoft (Microsoft Internet Symbol Store). В последних версиях Windows 10 выполняется онлайн доступ к серверу символов Microsoft в Azure. Затем командлет:

  1. Собирает данные из всех .etl файлов;
  2. Преобразует данные в CSV (по-умолчанию) или XML формат;
  3. Переконвертирует данные из промежуточных файлов и добавляет их в текстовый файл журнала, указанного в параметре LogPath (если параметр LogPath не задан, файл WindowsUpdate.log создается на рабочем столе пользователя, запустившего команду).
В некоторых случаях в журнале WindowsUpdate.log вы видеть такие строки

Unknown( 10): GUID=5e0ee4cc-3618-f43a-06ca-9d3b0dabc11a (No Format Information found).

Unknown ( 10): (No Format Information found) - WindowsUpdate.log

Это значит, что у вас не установлен сервер символов Windows Symbol (сейчас нельзя скачать отдельную программу установки Windows symbols, т.к. они автоматически загружаются из хранилища символов в Azure). Для изолированных сред вы можете использовать офлайн версию сервера символов согласно статье Offline Symbols for Windows Update.

Откройте файл журнала с помощью такой команды PowerShell:

Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log

просмотр WindowsUpdate.log в Windows 10 / Windows server 2016

Совет. Обратите внимание, что созданный файл WindowsUpdate.log является статическим и не обновляется в реальном времени, как в предыдущих версиях Windows. Чтобы обновить данные журнала обновлений, нужно еще раз запустить командлет Get-WindowsUpdateLog, либо создать скрипт, автоматически обновляющий файл с какой-то периодичностью (файл перезатирается).

Анализировать получившийся файл 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

фильтрация WindowsUpdate.log с помощью powershell

Можно отфильтровать события в логе по нескольким источникам:

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.

журнал WindowsUpdateClient

Для управления обновлениями из PowerShell вы можете использовать модуль PSWindowsUpdate.

Предыдущая статья Следующая статья


Комментариев: 5 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)