ในอดีต 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
ข้อเสียของวิธีการบันทึกใหม่สำหรับผู้ดูแลระบบ – ขณะนี้คุณไม่สามารถวิเคราะห์บริการ 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 และบันทึกไว้ใน C:\PS\Logs ให้เรียกใช้คำสั่งต่อไปนี้ในคอนโซล PowerShell:
Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log
ใน 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
ไฟล์ “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”
ใน Windows 10 รุ่นเก่ากว่า ในครั้งแรกที่คุณเรียกใช้ cmdlet ของ Get-WindowsUpdateLog โปรแกรมจะดาวน์โหลดและติดตั้ง Microsoft Internet Symbol Store Windows 10 เวอร์ชันใหม่ล่าสุดเข้าถึง Microsoft Character Server ใน Azure ทางออนไลน์ จากนั้น cmdlet:
- อ่านข้อมูลจากไฟล์ .etl ทั้งหมด
- ข้อมูลจะถูกแปลงเป็น CSV (โดยค่าเริ่มต้น) หรือรูปแบบ XML
- ข้อมูลจากไฟล์ในรูปแบบสื่อกลางจะถูกแปลงและเพิ่มไปยังไฟล์ข้อความบันทึกที่ระบุในพารามิเตอร์ LogPath (หากไม่ได้ระบุพารามิเตอร์ใน LogPath WindowsUpdate.log จะถูกสร้างขึ้นบนเดสก์ท็อปของผู้ใช้ที่เรียกใช้ คำสั่ง)
เปิดไฟล์บันทึกโดยใช้คำสั่ง PowerShell นี้:
Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log
ในบางกรณี ในไฟล์ WindowsUpdate.log คุณจะเห็นสตริงดังกล่าว:
Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).
ซึ่งหมายความว่าคุณไม่ได้ติดตั้งเซิร์ฟเวอร์ 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 ตามแหล่งที่มาต่างๆ ได้:
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 .
คุณสามารถใช้โมดูล PSWindowsUpdate เพื่อจัดการการอัปเดตจาก PowerShell cli