В 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
в сторону скопированных файлов.