В Windows 10 клиент Windows Update использует трассировку событий, а не запись в текстовый файл, как это было в предыдущих версиях Windows. Это может затруднить устранение неполадок на клиентских компьютерах.
Командлет Get-WindowsUpdateLog не всегда работает. В частности, он, похоже, работает некорректно при удаленном запуске или когда у целевой машины нет прямого доступа в Интернет. Я также видел сообщения о других проблемах, причина которых менее ясна.
Есть ли более надежный и гибкий вариант?
решение1
Начиная с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 записей)
решение2
Для Windows Server 2016 или Windows 2016 LTSB,эта статья Microsoftописывает, как использовать Get-WindowsUpdateLog
команду на компьютере, не имеющем доступа к серверу символов Microsoft.
Самый простой вариант — скопировать файлы .etl с C:\Windows\Logs\WindowsUpdate
автономного компьютера на ваш (онлайн) компьютер администратора, а затем использовать опцию, -ETLPath
чтобы указать путь Get-WindowsUpdateLog
к скопированным файлам.
решение3
Этот ответ больше не работает. Восстановлено взапрос mirhи потому что это может служить точкой отсчета для будущих исследований.ответ mirhилимой новый ответвместо.
Использование 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