Прегледайте дневника за актуализиране на WindowsUpdate.log в Windows 10 / Windows Server 2016

В исторически план е използван текстов файл за анализ на работата на агента и услугата Windows Update. Windowsupdate.log. В Windows 10 (Windows Server 2016/2019) обаче, вместо обичайния текстов файл, регистрационните файлове на Windows Update са във формат Проследяване на събития за Windows (ETW). Поради това се увеличава производителността на подсистемата за регистриране и се спестява дисково пространство.

По този начин събитията за актуализация на Windows вече не се записват в реално време във файл % windir% \ WindowsUpdate.log. И въпреки че самият файл все още присъства в корена на папката на Windows, той само заявява, че форматът ETW сега се използва за събиране на регистрационни файлове.

Журналите за актуализация на Windows вече се генерират с помощта на ETW (Проследяване на събития за Windows). % MINIFYHTML94c94c461bdbf801ea1528dc9c5b1f4e5% Моля, изпълнете командата Get-WindowsUpdateLog PowerShell, за да конвертирате ETW следи в четим WindowsUpdate.log. За повече информация, моля, посетете http://go.microsoft.com/fwlink/?LinkId=518345

Основното неудобство за администраторите - сега не можете бързо да анализирате текстовия файл на WindowsUpdate.log, да намерите грешки в услугата за актуализиране на Windows (вижте пълния списък с грешки в актуализацията на Windows), проверете настройките на 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

В Windows Server 2016, когато стартирате командлета Get-WindowsUpdateLog Може да получите липсваща грешка във файла SymSrv.dll:

Copy-Item: Не мога да намеря път „C: \ Program Files \ Windows Defender \ SymSrv.dll“, защото не съществува. В C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Модули \ WindowsUpdate \ WindowsUpdateLog.psm1: 56 char: 5

Файлът „C: \ програмни файлове \ 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 Symbol Server (Microsoft Интернет магазин за символи). Последните версии на Windows 10 имат достъп до сървъра на символи на Microsoft в Azure онлайн. Тогава командлета:

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

Неизвестно (10): GUID = 5e0ee4cc-3618-f43a-06ca-9d3b0dabc11a (Не е намерена информация за формата).

Това означава, че нямате инсталиран сървър на Windows Symbol (в момента не можете да изтеглите отделен инсталатор за символи на Windows, тъй като те автоматично се изтеглят от магазина за символи в Azure). За изолирани среди можете да използвате офлайн версията на символния сървър според статията Офлайн символи за актуализация на Windows.

Отворете лог файла с тази команда PowerShell:

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

съвет. Моля, обърнете внимание, че създаденият файл на WindowsUpdate.log е статичен и не се актуализира в реално време, както в предишните версии на Windows. За да актуализирате данните от дневника на актуализациите, трябва да стартирате командлета Get-WindowsUpdateLog отново или да създадете скрипт, който автоматично актуализира файла с някаква честота (файлът се презаписва).

Доста е трудно да се анализира полученият файл на WindowsUpdate.log като той събира данни от много източници:

  • AGENT - Събития на агент за актуализация на Windows;
  • AU - автоматична актуализация;
  • AUCLNT - потребителско взаимодействие;
  • HANDLER - управление на актуализатора на актуализацията;
  • MISC - обща информация;
  • PT- синхронизация на актуализации с локално съхранение;
  • ДОКЛАД - събиране на доклади;
  • УСЛУГА - стартиране / спиране на услугата wuauserv;
  • SETUP - инсталиране на нови версии на клиента на Windows Update;
  • DownloadManager - изтегляне на актуализации в локалния кеш;
  • Манипулатор, Настройка - инсталационни заглавки (CBS и др.);
  • и т.н..

Можете да изберете последните 30 събития от агента за актуализиране на Windows (агент) с прост редовен израз:

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 lines).

Можете също да генерирате файла WindowsUpdate.log за отдалечен компютър / сървър:

Get-WindowsUpdateLog -ETLPath \\ PC221 \ C $ \ windows \ Logs \ WindowsUpdate -LogPath C: \ PS \ Logs \ windowsupdatePC221.log

Също така, журналите за преглед на събития в секцията могат да бъдат полезни за анализ на работата на услугата Windows Update. Журнали за приложения и услуги -> Microsoft -> Windows -> WindowsUpdateClient -> Operational.

Можете да използвате модула PSWindowsUpdate за управление на актуализации от PowerShell.