Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไข: Error Code 0x800f0954

ผู้ใช้บางส่วนได้ Error Code 0x800f0954 เมื่อพยายามติดตั้ง .NET Framework 3.5 หรือ optional feature อื่นใน Windows 10 ผู้ใช้ส่วนใหญ่รายงานว่า error เกิดขณะติดตั้งผ่าน Windows Features แต่บางคนได้ขณะใช้ DISM command-line tool ข้อผิดพลาดนี้ไม่ได้จำกัด Windows เวอร์ชันใดเวอร์ชันหนึ่ง เนื่องจากยืนยันแล้วว่าพบใน Windows 7, Windows 8.1 และ Windows 10

แก้ไข: Error Code 0x800f0954

สาเหตุของ Error Code 0x800f0954

เราดูปัญหานี้โดยพยายามจำลองบนเครื่องทดสอบและดูรายงานผู้ใช้ที่เจอปัญหานี้ พบสาเหตุที่อาจก่อให้เกิด error code นี้หลายประการ:

  • คอมพิวเตอร์เข้าถึง Windows Update server ไม่ได้ — ในบางกรณี ข้อผิดพลาดเกิดเพราะระบบไม่สามารถถึง WU server ได้ ทั่วไปในสถานการณ์ที่มีเครือข่ายคอมพิวเตอร์ domain-joined จำนวนมาก ตั้งค่าดาวน์โหลดอัปเดตจาก WSUS server ในกรณีนี้ แก้ได้โดย bypass WSUS
  • DISM CBS logs ก่อให้เกิดปัญหา — บางครั้ง CBS logs ที่ DISM utility สร้าง อาจชี้ไปปัญหาที่ไม่ได้มีจริง ในกรณีนี้ แก้ได้โดยลบ Component Based Servicing logs และรันคำสั่ง DISM ที่ล้มเหลวกับ error นี้อีกครั้ง
  • .NET Framework ต้องติดตั้งผ่าน Powershell — หากคุณพยายามติดตั้ง .NET Framework package รุ่นเก่า อาจต้องทำจาก PowerShell window เพื่อหลีกเลี่ยง error 0x800f0954
  • Group policy ป้องกันการติดตั้ง — มี policy หนึ่งที่อาจก่อให้เกิด error นี้ถ้าถูก disable จาก Local Group Policy Editor ในกรณีนี้ แก้ได้โดย enable policy 'Specify settings for optional component installation and component repair'

หากคุณกำลังหาวิธีแก้ 0x800f0954 error บทความนี้มีหลายขั้นตอน troubleshooting ด้านล่างคือวิธีที่ผู้ใช้คนอื่นใช้แก้ไขได้สำเร็จ

โปรดทราบว่าวิธีต่อไปนี้เรียงตามประสิทธิภาพและความรุนแรง ขอแนะนำให้ทำตามลำดับที่นำเสนอ โอกาสมีว่าไม่ทุกวิธีจะใช้กับสถานการณ์ของคุณได้ รู้สึกสบายใจข้ามวิธีที่ทำไม่ได้

วิธีที่ 1: Bypass WSUS

หากคุณได้ 0x800f0954 error ขณะพยายามติดตั้ง optional Windows features อาจเพราะระบบเข้าถึง Windows Update server ไม่ได้ นี่เกิดกับผู้ใช้จำนวนมากในสถานการณ์คล้ายกัน — โดยเฉพาะเมื่อมีเครือข่ายคอมพิวเตอร์ domain-joined จำนวนมาก ที่ตั้งค่าดาวน์โหลดอัปเดตจาก WSUS server

ถ้าสถานการณ์ของคุณคล้ายกัน อาจเป็นเพราะคอมพิวเตอร์ของคุณเคยเป็นส่วนของ domain network และ group policy setting ยังคงอยู่ หากเป็นกรณีนี้ แก้ได้โดย bypass WSUS server ชั่วคราว ทำได้ง่ายโดยแก้ Registry ดังนี้:

  1. กด Windows key + R เปิดกล่อง Run พิมพ์ "regedit" กด Ctrl + Shift + Enter เปิด Registry Editor ด้วยสิทธิ์ Admin เมื่อ UAC ถาม คลิก Yes ให้สิทธิ์ Admin
  2. ใน Registry Editor ใช้ left-hand pane ไปที่:
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

    หมายเหตุ: สามารถวาง address ลง navigation bar โดยตรง กด Enter เพื่อไปได้ทันที

  3. ถ้า key WindowsUpdate ไม่อยู่ ต้องสร้างเอง คลิกขวา Windows key เลือก New > Key ตั้งชื่อ 'WindowsUpdate' จากนั้นคลิกขวา key ใหม่ เลือก New > Key ตั้งชื่อ key ใหม่สุด AU
  4. เลือก AU key ไป right-hand pane คลิกขวาช่องว่าง เลือก New > String value ตั้งชื่อ string value ใหม่เป็น UserWUServer
  5. สร้าง UserWUServer key แล้ว ดับเบิลคลิก ตั้ง Value Data เป็น 0
  6. ปิด Registry Editor รีสตาร์ทคอมพิวเตอร์ ดูว่าปัญหาแก้ไขแล้วหรือไม่ตอนบูทครั้งต่อไป

ถ้าวิธีนี้ไม่แก้ปัญหา หรือไม่適用 ไปวิธีถัดไปด้านล่าง

วิธีที่ 2: ล้าง CBS logs

ผู้ใช้บางคนที่เจอปัญหานี้รายงานว่าแก้ได้หลังลบ CBS (Component Based Servicing) logs ที่เกี่ยวกับ DISM หลังทำเช่นนี้และรันคำสั่ง DISM ใหม่ ผู้ใช้บางส่วนรายงานว่า 0x800f0954 error ไม่เกิดขึ้นอีก

สิ่งที่ต้องทำ:

  1. เปิด File Explorer ไปที่:
    C:\Windows\Logs\CBS 
  2. ในโฟลเดอร์ CBS เลือกทุกอย่าง เลือก Delete
  3. ลบไฟล์ .log และ .cab ทุกไฟล์แล้ว ปิดโฟลเดอร์ CBS
  4. กด Windows key + R เปิดกล่อง Run พิมพ์ "cmd" กด Ctrl + Shift + Enter เปิด Command Prompt สูง เมื่อเห็น UAC (User Account Control) คลิก Yes ให้สิทธิ์ Admin
    แก้ไข: Error Code 0x800f0954
  5. ใน Command Prompt สูง พิมพ์คำสั่งด้านล่าง กด Enter รันคำสั่ง DISM อีกครั้ง:
    Dism.exe /online /enable-feature /featurename:NetFX3 /source:C:\
  6. หลังกด Enter .NET Framework ควรติดตั้งโดยไม่มี 0x800f0954 error

ถ้ายังเจอ error เดิม หรือวิธีนี้ไม่適用 ก็ไปวิธีถัดไปด้านล่าง

วิธีที่ 3: ใช้ PowerShell ติดตั้ง .NET Framework 3.5

หากคุณเจอ 0x800f0954 error ขณะพยายามติดตั้ง .NET Framework 3.5 โดยใช้ DISM (Deployment Image Servicing and Management) อาจหลีกเลี่ยง error ได้โดยใช้ Powershell

ผู้ใช้หลายคนรายงานว่า error code ไม่เกิดขึ้นอีกหลังรันคำสั่ง powershell ที่แก้ปัญหาได้ สิ่งที่ต้องทำ:

  1. กด Windows key + R เปิด run command พิมพ์ "powershell" กด Ctrl + Shift + Enter เปิด elevated Powershell prompt เมื่อ UAC ถาม คลิก Yes ให้สิทธิ์ Adminแก้ไข: Error Code 0x800f0954
  2. ใน elevated Powershell prompt พิมพ์คำสั่งด้านล่าง กด Enter รัน:
    Add-WindowsCapability –Online -Name NetFx3~~~~ –Source D:\sources\sxs
  3. ปิด elevated Powershell prompt รีสตาร์ทเครื่อง
  4. ตอนบูทครั้งต่อไป ลองติดตั้ง .NET Framework 3.5 อีกครั้ง ดูว่าปัญหาแก้ไขแล้วหรือไม่

ถ้า error เดียวกันยังเกิดขึ้น ไปวิธีถัดไปด้านล่าง

วิธีที่ 4: ใช้ Group Policy Editor

หากคุณได้ 0x800f0954 error ขณะพยายามเพิ่ม RSAT Toolset โอกาสมีว่าคุณต้องเปลี่ยนแปลงบางอย่างด้วย Group Policy Editor tool ผู้ใช้หลายคนแก้ปัญหาได้โดยรัน Gpedit tool เพื่อปรับตั้งค่าที่เกี่ยวกับ Component Installation และ Component Repair

หลัง enable local policy บางอย่าง และอนุญาตให้ OS ดาวน์โหลด repair content และ optional features โดยตรงจาก WU แทน Windows Server Update Services (USUS) ผู้ใช้หลายคนรายงานว่าปัญหาแก้ไขแล้ว

หมายเหตุ: จำไว้ว่า Group Policy Editor tool ไม่มีในทุก Windows version หากคุณมี Windows 10 Home หรือเวอร์ชันอื่นที่ไม่รวมอยู่ ต้องติดตั้ง policy editor ตามบทความนี้ (ที่นี่)

ถ้าคุณมี Group Policy Editor บน Windows version ของคุณ คู่มือด่วนวิธีแก้ไข:

  1. กด Windows key + R เปิดกล่อง Run พิมพ์ "gpedit.msc" กด Enter เปิด Local Group Policy Editor ถ้า UAC ถาม คลิก Yes ให้สิทธิ์ Adminแก้ไข: Error Code 0x800f0954
  2. ใน Local Group Policy Editor ใช้ left-hand pane ไปที่:
    Computer Configuration\Administrative Templates\System
  3. จากนั้น ด้วย System selected ไป right-hand pane ดับเบิลคลิก Specify settings for optional component installation and component repairแก้ไข: Error Code 0x800f0954
  4. ตั้ง policy เป็น Enabled และติ๊กถูกกล่องที่เกี่ยวกับ Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (USUS)แก้ไข: Error Code 0x800f0954
  5. กด Apply บันทึก ปิด Local Group Policy Editor รีสตาร์ทคอมพิวเตอร์
  6. ตอนบูทครั้งต่อไป error ควรไม่เกิดขึ้นอีก

วิธีที่ 5: เปลี่ยนค่า Registry UseWUServer

ถ้าวิธีข้างต้นไม่ได้ผล เราจะลองเปลี่ยนค่า UseWUServer registry entry เป็น disabled หลัง Windows update 近期 key นี้ขัดแย้งกับ Windows update service ทำให้เกิด error message ที่พูดถึง ตรวจสอบว่าล็อกอินเป็น administrator แล้ว และ backup registry เผื่อไว้

  1. กด Windows + R พิมพ์ "“regedit” ในกล่องโต้ตอบ กด Enter
  2. ใน registry editor ไปที่ path:
    HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU/UseWUServer
  3. เปลี่ยนค่า จาก 1 เป็น 0
  4. หลังเปลี่ยนแล้ว รีสตาร์ทคอมพิวเตอร์ และเริ่ม update service ใหม่ ตรวจสอบว่าปัญหาแก้ไขแล้วหรือไม่