Назад | Перейти на главную страницу

Как преобразовать журналы клиента Центра обновления Windows в обычный текст?

В Windows 10 клиент Центра обновления Windows использует трассировку событий, а не запись в текстовый файл, как это было в предыдущих версиях Windows. Это может затруднить устранение проблем с клиентскими машинами.

Командлет Get-WindowsUpdateLog не всегда работает. В частности, похоже, что он не работает должным образом при удаленном запуске или когда целевая машина не имеет прямого доступа в Интернет. Я также видел сообщения о других проблемах, причина которых менее ясна.

Есть ли более надежный и гибкий вариант?

Начиная с 1709 нахождение в автономном режиме (читай: отсутствие доступа к серверам символов) больше не должно быть помехой. Вы можете просто использовать Get-WindowsUpdateLog-LogPath .\WindowsUpdate.log из PowerShell.

Или, если вам это не нравится:

FOR %i IN (C:\Windows\Logs\WindowsUpdate\*.etl) DO tracerpt %i -of csv -o %~ni.csv
copy *.csv WindowsUpdate.csv

(кажется, что tracerpt каким-то образом ограничен в создании отдельных файлов журнала с более чем ~ 4000 записями)

Этот ответ больше не работает. Восстановлено в просьба Мирха и потому что это может служить ориентиром для будущих исследований. Использовать ответ мирха или мой новый ответ вместо.

С помощью tracefmt как описано ниже, было основано на сообщениях в блоге Microsoft и работало, когда я опубликовал его в начале 2018 года, но перестало работать где-то в том же году. Похоже, он больше не работает, даже для Windows 1709 или новее.


Вы можете преобразовать журналы трассировки событий в обычный текст, используя tracefmt из Windows 10 SDK.

Сначала скопируйте файлы из C:\Windows\Logs\WindowsUpdate на целевой машине в удобное место на вашей административной машине.

Откройте окно командной строки, перейдите в каталог, содержащий копию файлов трассировки, и выполните следующую команду:

for %i in (*.etl) do "c:\Program Files (x86)\Windows Kits\10\bin\x64\tracefmt.exe" -o %~ni.txt -r srv*c:\symbols*https://msdl.microsoft.com/download/symbols %i

На административной машине должен быть установлен Windows 10 SDK и нужен прямой доступ в Интернет. Сама Windows 10 не обязательна.

Затем вы можете объединить журналы в один файл:

copy *.txt WindowsUpdate.log

Для Windows Server 2016 или Windows 2016 LTSB, эта статья Microsoft описывает, как использовать Get-WindowsUpdateLog на компьютере, у которого нет доступа к серверу символов Microsoft.

Самый простой вариант - скопировать файлы .etl из C:\Windows\Logs\WindowsUpdate с автономного компьютера на ваш (онлайн) компьютер администратора, а затем используйте -ETLPath возможность указать Get-WindowsUpdateLog в сторону скопированных файлов.