Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ในอดีต WindowsUpdate.log ไฟล์ข้อความธรรมดาถูกใช้เพื่อวิเคราะห์การทำงานของเอเจนต์และบริการ Windows Update อย่างไรก็ตาม บันทึก Windows Update ใน Windows 10 (Windows Server 2016/2019) จะถูกบันทึกไว้ใน Event Tracing for Windows รูปแบบไฟล์ (ETW ) แทนที่จะเป็นไฟล์ข้อความปกติ ด้วยการกระทำดังกล่าว นักพัฒนา Windows วางแผนที่จะเพิ่มประสิทธิภาพของระบบย่อยการบันทึก และลดพื้นที่ว่างของไฟล์ข้อความบนดิสก์

ดังนั้น เหตุการณ์ Windows Update จะไม่ถูกเขียนแบบเรียลไทม์ใน %windir%\WindowsUpdate.log อีกต่อไป ไฟล์. แม้ว่าไฟล์จะยังคงอยู่ในรูทของโฟลเดอร์ Windows แต่ก็บอกเพียงว่าขณะนี้ใช้รูปแบบ ETW เพื่อรวบรวมบันทึก WU

บันทึก Windows Update ถูกสร้างขึ้นโดยใช้ ETW (การติดตามเหตุการณ์สำหรับ Windows)

โปรดเรียกใช้คำสั่ง Get-WindowsUpdateLog PowerShell เพื่อแปลงการติดตาม ETW เป็น WindowsUpdate.log ที่อ่านได้

สำหรับข้อมูลเพิ่มเติม โปรดไปที่ https://go.microsoft.com/fwlink/?LinkId=518345

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ข้อเสียของวิธีการบันทึกใหม่สำหรับผู้ดูแลระบบ – ขณะนี้คุณไม่สามารถวิเคราะห์บริการ Windows Update Agent ได้อย่างรวดเร็ว ค้นหารหัสข้อผิดพลาดในไฟล์ข้อความ WindowsUpdate.log (ดูรายการรหัสข้อผิดพลาด Windows Update ทั้งหมด) ตรวจสอบการตั้งค่าตัวแทน WSUS และวิเคราะห์ประวัติการติดตั้งการอัพเดท

คุณสามารถแปลงเหตุการณ์ ETW เป็นไฟล์ข้อความธรรมดา WindowsUpdate.log เพื่อการวิเคราะห์เหตุการณ์บริการอัปเดตที่สะดวกยิ่งขึ้น เมื่อต้องการทำสิ่งนี้ ให้ใช้ PowerShell cmdlet – Get-WindowsUpdateLog . cmdlet นี้ช่วยให้คุณสามารถรวบรวมข้อมูลจาก .etl . ทั้งหมด ไฟล์ (จะถูกเก็บไว้ใน C:\WINDOWS\Logs\WindowsUpdate ) และสร้างไฟล์ข้อความ WindowsUpdate.log ไฟล์เดียว

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ในการสร้างไฟล์ WindowsUpdate.log และบันทึกไว้ใน C:\PS\Logs ให้เรียกใช้คำสั่งต่อไปนี้ในคอนโซล PowerShell:

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

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ใน Windows Server 2016 เมื่อคุณเรียกใช้ Get-WindowsUpdateLog cmdlet คุณอาจได้รับข้อผิดพลาด “SymSrv.dll หายไป”:

Copy-Item : Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll' because it does not exist. At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 char:5

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ไฟล์ “C:\Program Files\Windows Defender\SymSrv.dll” มักจะหายไปหากไม่ได้ติดตั้ง Windows Defender บนเซิร์ฟเวอร์

ในการแก้ไขข้อผิดพลาด คุณสามารถติดตั้ง Windows Defender คัดลอกไฟล์ SymSrv.dll จาก Windows Server 2016/Windows 10 อื่น หรือค้นหาไฟล์ SymSrv.dll ในโฟลเดอร์ WinSxS ในเครื่อง (ในกรณีของฉัน ไดเร็กทอรีชื่อ C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_… ) และคัดลอกไปที่โฟลเดอร์ “C:\Program Files\Windows Defender”

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ใน Windows 10 รุ่นเก่ากว่า ในครั้งแรกที่คุณเรียกใช้ cmdlet ของ Get-WindowsUpdateLog โปรแกรมจะดาวน์โหลดและติดตั้ง Microsoft Internet Symbol Store Windows 10 เวอร์ชันใหม่ล่าสุดเข้าถึง Microsoft Character Server ใน Azure ทางออนไลน์ จากนั้น cmdlet:

  1. อ่านข้อมูลจากไฟล์ .etl ทั้งหมด
  2. ข้อมูลจะถูกแปลงเป็น CSV (โดยค่าเริ่มต้น) หรือรูปแบบ XML
  3. ข้อมูลจากไฟล์ในรูปแบบสื่อกลางจะถูกแปลงและเพิ่มไปยังไฟล์ข้อความบันทึกที่ระบุในพารามิเตอร์ LogPath (หากไม่ได้ระบุพารามิเตอร์ใน LogPath WindowsUpdate.log จะถูกสร้างขึ้นบนเดสก์ท็อปของผู้ใช้ที่เรียกใช้ คำสั่ง)
เคล็ดลับ อีกวิธีในการวิเคราะห์ไฟล์ ETL แต่ค่อนข้างซับซ้อนกว่านั้นคือการใช้ Tracefmt.exe ยูทิลิตี้เพื่อรับข้อมูลจาก .etl

เปิดไฟล์บันทึกโดยใช้คำสั่ง PowerShell นี้:

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

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ในบางกรณี ในไฟล์ WindowsUpdate.log คุณจะเห็นสตริงดังกล่าว:

Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

ซึ่งหมายความว่าคุณไม่ได้ติดตั้งเซิร์ฟเวอร์ Windows Symbol (วันนี้คุณไม่สามารถดาวน์โหลดตัวติดตั้งสัญลักษณ์ Windows แยกต่างหากได้ เนื่องจากระบบจะดาวน์โหลดโดยอัตโนมัติจากที่เก็บสัญลักษณ์ใน Azure) สำหรับสภาพแวดล้อมแบบแยก คุณสามารถใช้เซิร์ฟเวอร์สัญลักษณ์รุ่นออฟไลน์ตามบทความสัญลักษณ์ออฟไลน์สำหรับ Windows Update

เคล็ดลับ โปรดทราบว่าไฟล์ WindowsUpdate.log ที่สร้างขึ้นเป็นแบบคงที่และไม่ได้อัปเดตตามเวลาจริงเหมือนใน Windows เวอร์ชันก่อนหน้า ในการอัปเดตไฟล์ คุณต้องเรียกใช้ Get-WindowsUpdateLog cmdlet อีกครั้งหรือสร้างสคริปต์ที่อัปเดตไฟล์โดยอัตโนมัติที่ความถี่บางส่วน (ไฟล์ถูกเขียนทับ)

การวิเคราะห์ไฟล์ WindowsUpdate.log ที่เป็นผลลัพธ์ค่อนข้างยาก เนื่องจากรวบรวมข้อมูลจากแหล่งที่มาของเหตุการณ์มากมาย:

  • AGENT – เหตุการณ์เอเจนต์ Windows Update
  • AU – อัปเดตอัตโนมัติ
  • AUCLNT – การโต้ตอบกับผู้ใช้
  • ตัวจัดการ – อัปเดตการจัดการตัวติดตั้ง
  • MISC – ข้อมูลทั่วไปของ WU
  • PT – การซิงโครไนซ์การอัปเดตกับที่เก็บข้อมูลในเครื่อง
  • รายงาน – การรวบรวมรายงาน
  • บริการ – บริการ wuauserv เริ่ม/หยุดเหตุการณ์;
  • SETUP – ติดตั้งเวอร์ชันใหม่ของไคลเอนต์ Windows Update
  • DownloadManager – ดาวน์โหลดการอัปเดตแคชในเครื่องโดยใช้ BITS
  • Handler, Setup – ส่วนหัวของตัวติดตั้ง (CBS เป็นต้น);
  • และอีกมากมาย

คุณสามารถเลือก 30 เหตุการณ์ล่าสุดจาก Windows Update Agent (เอเจนต์) ด้วยนิพจน์ทั่วไปอย่างง่าย:

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

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

คุณสามารถกรองเหตุการณ์ใน WindowsUpdate.log ตามแหล่งที่มาต่างๆ ได้:

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

ในทำนองเดียวกัน คุณสามารถแยกวิเคราะห์ไฟล์ข้อความสำหรับเหตุการณ์ตามหมายเลข KB ข้อผิดพลาด (FAILED, Exit Code, FATAL)

คุณยังสามารถสร้างไฟล์ WindowsUpdate.log สำหรับคอมพิวเตอร์ระยะไกลหรือเซิร์ฟเวอร์:

Get-WindowsUpdateLog -ETLPath \\ny-srf-1\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdate-ny-srf-1.log

คุณยังสามารถใช้บันทึก Event Viewer เพื่อวิเคราะห์การทำงานของบริการ Windows Update ขยายส่วนมุมมองเหตุการณ์ต่อไปนี้:บันทึกการใช้งานและการบริการ -> Microsoft -> Windows –> WindowsUpdateClient -> Operational .

จะดูและแยกวิเคราะห์ WindowsUpdate.log บน Windows 10 / Windows Server 2016 ได้อย่างไร

คุณสามารถใช้โมดูล PSWindowsUpdate เพื่อจัดการการอัปเดตจาก PowerShell cli


No