Wyświetl dziennik aktualizacji WindowsUpdate.log w systemie Windows 10 / Windows Server 2016

Historycznie plik tekstowy był wykorzystywany do analizy działania agenta i usługi Windows Update. WindowsUpdate.log. Jednak w systemie Windows 10 (Windows Server 2016/2019) zamiast zwykłego pliku tekstowego dzienniki usługi Windows Update mają format Śledzenie zdarzeń dla systemu Windows (ETW). Z tego powodu zwiększa się wydajność podsystemu rejestrowania i oszczędzane jest miejsce na dysku.

Dlatego zdarzenia Windows Update nie są już zapisywane w czasie rzeczywistym do pliku % windir% \ WindowsUpdate.log. I chociaż sam plik jest nadal obecny w katalogu głównym folderu Windows, stwierdza tylko, że format ETW jest teraz używany do zbierania dzienników.

Dzienniki Windows Update są teraz generowane przy użyciu ETW (Event Tracing for Windows). % MINIFYHTML94c94c461bdbf801ea1528dc9c5b1f4e5% Uruchom polecenie Get-WindowsUpdateLog PowerShell, aby przekonwertować ślady ETW na czytelny plik WindowsUpdate.log. Aby uzyskać więcej informacji, odwiedź http://go.microsoft.com/fwlink/?LinkId=518345

Główna niedogodność dla administratorów - teraz nie możesz szybko przeanalizować pliku tekstowego WindowsUpdate.log, znaleźć błędów w usłudze Windows Update Agent (zobacz pełną listę błędów Windows Update), sprawdzić ustawienia WSUS i przeanalizować historię instalacji aktualizacji.

Można konwertować zdarzenia ETW do znanego formatu tekstowego WindowsUpdate.log w celu wygodniejszej analizy zdarzeń usługi aktualizacji. Aby to zrobić, użyj polecenia cmdlet programu PowerShell - Get-WindowsUpdateLog. To polecenie cmdlet pozwala zbierać informacje od wszystkich .etl pliki (przechowywane w katalogu C: \ WINDOWS \ Logs \ WindowsUpdate) i tworzą pojedynczy plik WindowsUpdate.log.

Aby wygenerować plik WindowsUpdate.log i umieścić go w katalogu C: \ PS \ Logs, uruchom następującą komendę w konsoli PowerShell:

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

W systemie Windows Server 2016 po uruchomieniu polecenia cmdlet Get-WindowsUpdateLog Może pojawić się błąd brakującego pliku SymSrv.dll:

Element kopiowania: nie można znaleźć ścieżki „C: \ Program Files \ Windows Defender \ SymSrv.dll”, ponieważ nie istnieje. W C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules \ WindowsUpdate \ WindowsUpdateLog.psm1: 56 char: 5

Zazwyczaj brakuje pliku „C: \ Program Files \ Windows Defender \ SymSrv.dll”, jeśli program antywirusowy Windows Defender nie jest zainstalowany na serwerze.

Aby naprawić błąd, możesz zainstalować Defender, skopiować plik SymSrv.dll z innego systemu Windows Server 2016 / Windows 10 lub wyszukać, aby znaleźć go w katalogu „C: \ Windows \ WinSxS \” (miałem katalog o nazwie C: \ Windows \ WinSxS \ amd64_windows -defender-service-cloudclean_ ...) i skopiuj go do folderu C: \ Program Files \ Windows Defender.

W starszych wersjach systemu Windows 10 przy pierwszym uruchomieniu polecenia cmdlet Get-WindowsUpdateLog należy pobrać i zainstalować Microsoft Symbol Server (Microsoft Internet Symbol Store). Najnowsze wersje systemu Windows 10 uzyskują dostęp online do Microsoft Character Server na platformie Azure. Następnie polecenie cmdlet:

  1. Zbiera dane ze wszystkich plików .etl;
  2. Konwertuje dane do formatu CSV (domyślnie) lub XML;
  3. Konwertuje dane z plików pośrednich i dodaje je do pliku tekstowego dziennika określonego w parametrze LogPath (jeśli parametr LogPath nie jest określony, plik WindowsUpdate.log jest tworzony na pulpicie użytkownika, który uruchomił polecenie).
W niektórych przypadkach w dzienniku WindowsUpdate.log widać takie wiersze

Nieznany (10): GUID = 5e0ee4cc-3618-f43a-06ca-9d3b0dabc11a (Nie znaleziono informacji o formacie).

Oznacza to, że nie masz zainstalowanego serwera Windows Symbol (w tej chwili nie możesz pobrać osobnego instalatora dla symboli Windows, ponieważ są one automatycznie pobierane z magazynu symboli na platformie Azure). W środowiskach izolowanych można użyć wersji offline serwera symboli zgodnie z artykułem Symbole offline dla Windows Update.

Otwórz plik dziennika za pomocą tego polecenia PowerShell:

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

Wskazówka. Należy pamiętać, że utworzony plik WindowsUpdate.log jest statyczny i nie aktualizuje się w czasie rzeczywistym, podobnie jak w poprzednich wersjach systemu Windows. Aby zaktualizować dane dziennika aktualizacji, należy ponownie uruchomić polecenie cmdlet Get-WindowsUpdateLog lub utworzyć skrypt, który automatycznie aktualizuje plik z pewną częstotliwością (plik jest zastępowany).

Analiza wynikowego pliku WindowsUpdate.log, as jest dość trudna zbiera dane z wielu źródeł:

  • AGENT - zdarzenia agenta Windows Update;
  • AU - automatyczna aktualizacja;
  • AUCLNT - interakcja użytkownika;
  • HANDLER - aktualizacja zarządzania instalatorem;
  • MISC - informacje ogólne;
  • PT- synchronizacja aktualizacji z pamięcią lokalną;
  • RAPORT - zbiór raportów;
  • SERWIS - uruchomienie / zatrzymanie usługi wuauserv;
  • SETUP - instalacja nowych wersji klienta Windows Update;
  • DownloadManager - pobierz aktualizacje lokalnej pamięci podręcznej;
  • Handler, Setup - nagłówki instalatora (CBS itp.);
  • Itd.

Możesz wybrać ostatnie 30 zdarzeń z Windows Update Agent (agent) za pomocą prostego wyrażenia regularnego:

Select-String -Pattern '\ sagent \ s' -Path C: \ PS \ Logs \ WindowsUpdate.log | Select-Object-Last 30

Możesz filtrować zdarzenia w dzienniku dla kilku źródeł:

Select-String -Pattern '\ sagent \ s | \ smisc \ s' -Path c: \ PS \ Logs \ WindowsUpdate.log | Select-Object-Last 50

Podobnie można wyszukiwać zdarzenia według numeru KB, błędu (FAILED, kod zakończenia, wiersze FATAL).

Możesz również wygenerować plik WindowsUpdate.log dla zdalnego komputera / serwera:

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

Ponadto dzienniki Podglądu zdarzeń w tej sekcji mogą być przydatne do analizy działania usługi Windows Update. Dzienniki aplikacji i usług -> Microsoft -> Windows -> WindowsUpdateClient -> Operacyjny.

Możesz użyć modułu PSWindowsUpdate do zarządzania aktualizacjami z PowerShell.