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 ปัจจุบัน
- คลิกขวาที่ไฟล์ ISO เลือก [Mount]
- ตรวจสอบ Drive Letter ที่ปรากฏ (สมมติว่าเป็น Drive
D:) - โครงสร้างไฟล์ภายใน 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
- กด [Win + R] พิมพ์
gpedit.mscกด Enter - นำทางไปยัง Path ต่อไปนี้:[Computer Configuration]
└── [Administrative Templates]
└── [System]
- ค้นหา Setting ชื่อ: Specify settings for optional component installation and component repair
- ตั้งค่าตามตารางด้านล่าง:
| 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.