วิธีแก้ Windows Update Error 0x800f081f ฉบับสมบูรณ์

Technical Reference: วิเคราะห์และแก้ไข Error 0x800f081f (CBS_E_SOURCE_MISSING)

Error Code: 0x800f081f
Error Message: The source files could not be found.
Technical Name: CBS_E_SOURCE_MISSING

ข้อผิดพลาดนี้ไม่ได้เกิดขึ้นจากปัญหาการเชื่อมต่ออินเทอร์เน็ตทั่วไป แต่เกิดจากความล้มเหลวในการดึงไฟล์ Payload จาก Component Store ภายในระบบปฏิบัติการ หรือจาก Windows Update Server เพื่อนำมาติดตั้ง Feature (เช่น .NET Framework 3.5) หรือ Cumulative Update


1. Log Analysis: การวิเคราะห์สาเหตุจาก CBS Log

ก่อนเริ่มการแก้ไข ผู้ดูแลระบบควรตรวจสอบ Log เพื่อยืนยันว่า Component ใดที่หายไป โดยไฟล์ Log หลักของ Windows Update และ Component Based Servicing (CBS) จะอยู่ที่โครงสร้างไฟล์ดังนี้:

C:\Windows\
├── Logs\
│   ├── CBS\
│   │   ├── CBS.log  <-- (ไฟล์เป้าหมาย)
│   │   └── FilterList.log
│   └── DISM\
│       └── dism.log

เมื่อเปิดไฟล์ CBS.log และค้นหาคำว่า 0x800f081f หรือ CBS_E_SOURCE_MISSING คุณจะพบ Log Entry ในลักษณะนี้:

Example Log Entry:
-------------------------------------------------------------------------------
Error  CBS    Exec: Failed to download payload: amd64_microsoft-windows-netfx3...
Error  CBS    Failed to find payload: amd64_microsoft-windows-netfx3... in any known source
Error  CBS    Failed to execute command line. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
-------------------------------------------------------------------------------

การตีความ: ระบบพยายามหา Payload (ในตัวอย่างคือ NetFx3 หรือ .NET 3.5) แต่ไม่พบใน WinSxS Folder และไม่สามารถดาวน์โหลดจาก WSUS/WU ได้


2. Solution: การใช้ DISM พร้อมระบุ Source (Offline Repair)

วิธีนี้เป็นการบังคับให้ระบบซ่อมแซมโดยดึงไฟล์จากไฟล์ติดตั้ง Windows (ISO) แทนการดาวน์โหลด ซึ่งเป็นวิธีที่ได้ผลแน่นอนที่สุด

Step 2.1: เตรียม Source File

คุณต้องมีไฟล์ Windows ISO ที่มี Build Version ตรงกับหรือใหม่กว่า OS ปัจจุบัน

  1. คลิกขวาที่ไฟล์ ISO เลือก [Mount]
  2. ตรวจสอบ Drive Letter ที่ปรากฏ (สมมติว่าเป็น Drive D:)
  3. โครงสร้างไฟล์ภายใน Drive D: ควรเป็นดังนี้:
D:\ (ISO Drive)
├── boot\
├── efi\
├── sources\
│   ├── install.wim  <-- (ไฟล์ Source หลัก)
│   ├── boot.wim
│   └── sxs\         <-- (Side-by-side folder สำหรับ .NET)
└── setup.exe

Step 2.2: ตรวจสอบสถานะและซ่อมแซม

เปิด Command Prompt หรือ PowerShell ในฐานะ [Run as Administrator]

Input (ตรวจสอบ Image):

dism /online /cleanup-image /scanhealth

Input (คำสั่งซ่อมแซม – แก้ไข Path ตามจริง):

dism /online /cleanup-image /restorehealth /source:wim:D:\sources\install.wim:1 /limitaccess

คำอธิบาย Parameters:

Parameter Function
/Source:wim:... ระบุตำแหน่งไฟล์ WIM ที่จะใช้เป็นแหล่งข้อมูลสำรอง
:1 ระบุ Index ของ Windows Edition (1 มักเป็น Pro/Home, ตรวจสอบด้วย dism /get-wiminfo)
/LimitAccess สำคัญ: ตัดการเชื่อมต่อ WU/WSUS เพื่อป้องกันการกลับไปวนลูป Error เดิม

3. Group Policy Fix: กรณีเครื่องติด WSUS (Corporate Environment)

หากเครื่อง Client อยู่ในองค์กรที่ใช้ WSUS มักจะเกิด Error นี้เพราะ WSUS Server ไม่ได้เก็บไฟล์ Optional Components ไว้ เราต้องตั้งค่า GPO ให้เครื่อง Client ข้าม WSUS ไปโหลดจาก Microsoft โดยตรงเมื่อต้องการซ่อมแซม

Step 3.1: แก้ไขผ่าน Local Group Policy Editor

  1. กด [Win + R] พิมพ์ gpedit.msc กด Enter
  2. นำทางไปยัง Path ต่อไปนี้:[Computer Configuration]

    └── [Administrative Templates]

    └── [System]

  3. ค้นหา Setting ชื่อ: Specify settings for optional component installation and component repair
  4. ตั้งค่าตามตารางด้านล่าง:
Setting State Option Checkbox
Enabled [x] Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS)

Step 3.2: บังคับใช้ Policy ทันที

Input:

gpupdate /force

Expected Output:

Updating policy...
Computer Policy update has completed successfully.
User Policy update has completed successfully.

4. กรณีเฉพาะ: Error 0x800f081f ขณะติดตั้ง .NET Framework 3.5

หากคุณพบปัญหานี้เฉพาะตอนเปิดใช้งาน .NET 3.5 ให้ใช้คำสั่ง DISM แบบระบุ Feature โดยตรง โดยชี้ Source ไปที่โฟลเดอร์ sxs บนแผ่น ISO

Input:

dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess

การตรวจสอบความสำเร็จ:

Deployment Image Servicing and Management tool
Version: 10.0.xxxxx.xxx

Image Version: 10.0.xxxxx.xxx

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.

Summary Checklist

  • [ ] ตรวจสอบ CBS.log เพื่อยืนยัน Error code 0x800f081f.
  • [ ] Mount ไฟล์ Windows ISO ที่เวอร์ชันตรงกัน.
  • [ ] ใช้ DISM พร้อมพารามิเตอร์ /Source และ /LimitAccess.
  • [ ] หากอยู่ใน Domain ให้เปิด GPO Bypass WSUS.