หากบริการ Windows Update ทำงานไม่ถูกต้อง จะไม่มีการดาวน์โหลดหรือติดตั้งการอัปเดต ดังนั้นวิธีที่ง่ายที่สุดและมีประสิทธิภาพมากที่สุดในการแก้ปัญหาด้วยบริการ Windows Update คือการคืนค่าการตั้งค่าดั้งเดิม ในบทความนี้ เราจะแสดงวิธีรีเซ็ตตัวแทน Windows Update และการกำหนดค่าบริการ
โดยปกติ ในการแก้ไขข้อผิดพลาดของ Windows Update ผู้ดูแลระบบจำเป็นต้องวิเคราะห์รหัสข้อผิดพลาดใน %windir%\WindowsUpdate.log ไฟล์ (ใน Windows 10 คุณสามารถรับ WindowsUpdate.log ด้วยวิธีนี้) จำนวนข้อผิดพลาดที่เป็นไปได้ที่ผู้ดูแลระบบอาจพบเมื่อวิเคราะห์บันทึกการอัพเดทของ Windows มีมากมาย (รายการข้อผิดพลาดของ Windows Update ทั้งหมด) และกระบวนการแก้ไขนั้นไม่ใช่เรื่องเล็กน้อย เพื่อหลีกเลี่ยงความพยายามเกินควรและไม่เสียเวลา ง่ายกว่ามากในการรีเซ็ตบริการ Windows Update และเอเจนต์ให้เป็นสถานะเริ่มต้นโดยสมบูรณ์
การใช้ตัวแก้ไขปัญหา Windows Update เพื่อแก้ไขปัญหาการอัปเดต
ก่อนที่จะดำเนินการรีเซ็ตการกำหนดค่าของ Windows Update เราขอแนะนำให้คุณลองใช้เครื่องมือที่ง่ายกว่าและมีประสิทธิภาพมากก่อนเพื่อแก้ไขปัญหาในบริการ Windows Update โดยอัตโนมัติโดยใช้ตัวแก้ไขปัญหา Windows Update ในตัว .
ตัวแก้ไขปัญหา Windows Update มีอยู่แล้วในแผงการตั้งค่าที่ทันสมัยใน Windows 10 และ 11 สำหรับ Windows เวอร์ชันก่อนหน้า คุณจะต้องดาวน์โหลดด้วยตนเอง:
- Windows 11 — การตั้งค่า -> ระบบ -> ตัวแก้ไขปัญหา -> ตัวแก้ไขปัญหาอื่น -> Windows Update;
- Windows 10 – wu10.diagcab (https://aka.ms/wudiag ) หรือเรียกใช้เครื่องมือเวอร์ชันท้องถิ่น:เริ่ม -> การตั้งค่า -> การอัปเดตและความปลอดภัย -> แก้ไขปัญหา -> ตัวแก้ไขปัญหาเพิ่มเติม -> การอัปเดต Windows (แก้ไขปัญหาที่ป้องกันไม่ให้คุณ จากการอัปเดต Windows);
สำหรับการเข้าถึงเครื่องมือแก้ไขปัญหา Windows อย่างรวดเร็ว คุณสามารถใช้คำสั่ง ms-settings URI:ms-settings:troubleshoot
- Windows 7 และ Windows 8.1 — WindowsUpdate.diagcab (https://aka.ms/diag_wu)
รอให้ Windows Update Troubleshooter สแกนระบบของคุณและพยายามแก้ไขข้อผิดพลาดใน Windows Update และส่วนประกอบที่เกี่ยวข้องโดยอัตโนมัติ
ในกรณีของฉัน พบและแก้ไขการทุจริตในฐานข้อมูล Windows Update หลังจากนั้นยังคงต้องรีสตาร์ทคอมพิวเตอร์และพยายามสแกนหาการอัปเดต หากไม่ได้ดาวน์โหลดหรือติดตั้งการอัปเดต ให้ไปยังขั้นตอนถัดไป
การรีเซ็ตไคลเอ็นต์ Windows Update โดยใช้ PowerShell
คุณสามารถใช้โมดูล PSWindowsUpdate PowerShell เพื่อรีเซ็ตตัวแทนและบริการของ Windows Update
ติดตั้งโมดูลบนคอมพิวเตอร์ของคุณจากแกลเลอรีสคริปต์ PSGallery:
Install-Module -Name PSWindowsUpdate
เปิดใช้งานการเรียกใช้สคริปต์ PowerShell:
Set-ExecutionPolicy –ExecutionPolicy RemoteSigned -force
รันคำสั่ง:
Reset-WUComponents –verbose
คำสั่ง Reset-WUComponents จะหยุดบริการ ลงทะเบียน DLL ใหม่ และล้างข้อมูลในโฟลเดอร์ C:\Windows\SoftwareDistribution ฯลฯ บันทึกการดำเนินการทั้งหมดจะพร้อมใช้งาน
VERBOSE: Background Intelligent Transfer Service (BITS) VERBOSE: Windows Update (wuauserv) VERBOSE: Application Identity (appidsvc) VERBOSE: Cryptographic Services (cryptsvc) Step 2: Delete the qmgr*.dat files Step 3: Backup software distribution folders VERBOSE: Renaming Software Distribution folder to C:\Windows\SoftwareDistribution.bak VERBOSE: Renaming CatRoot folder to C:\Windows\System32\Catroot2.bak Step 4: Remove old Windows Update logs VERBOSE: Deleting the C:\Windows\WindowsUpdate.log files. Step 5: Reset Windows Update services VERBOSE: Reset BITS service VERBOSE: Reset Windows Update service Step 6: Reregister dll's VERBOSE: regsvr32.exe / s atl.dll VERBOSE: regsvr32.exe / s urlmon.dll VERBOSE: regsvr32.exe / s mshtml.dll VERBOSE: regsvr32.exe / s shdocvw.dll VERBOSE: regsvr32.exe / s browseui.dll VERBOSE: regsvr32.exe / s jscript.dll VERBOSE: regsvr32.exe / s vbscript.dll VERBOSE: regsvr32.exe / s scrrun.dll VERBOSE: regsvr32.exe / s msxml.dll VERBOSE: regsvr32.exe / s msxml3.dll VERBOSE: regsvr32.exe / s msxml6.dll VERBOSE: regsvr32.exe / s actxprxy.dll VERBOSE: regsvr32.exe / s softpub.dll VERBOSE: regsvr32.exe / s wintrust.dll VERBOSE: regsvr32.exe / s dssenh.dll VERBOSE: regsvr32.exe / s rsaenh.dll VERBOSE: regsvr32.exe / s gpkcsp.dll VERBOSE: regsvr32.exe / s sccbase.dll VERBOSE: regsvr32.exe / s slbcsp.dll VERBOSE: regsvr32.exe / s cryptdlg.dll VERBOSE: regsvr32.exe / s oleaut32.dll VERBOSE: regsvr32.exe / s ole32.dll VERBOSE: regsvr32.exe / s shell32.dll VERBOSE: regsvr32.exe / s initpki.dll VERBOSE: regsvr32.exe / s wuapi.dll VERBOSE: regsvr32.exe / s wuaueng.dll VERBOSE: regsvr32.exe / s wuaueng1.dll VERBOSE: regsvr32.exe / s wucltui.dll VERBOSE: regsvr32.exe / s wups.dll VERBOSE: regsvr32.exe / s wups2.dll VERBOSE: regsvr32.exe / s wuweb.dll VERBOSE: regsvr32.exe / s qmgr.dll VERBOSE: regsvr32.exe / s qmgrprxy.dll VERBOSE: regsvr32.exe / s wucltux.dll VERBOSE: regsvr32.exe / s muweb.dll VERBOSE: regsvr32.exe / s wuwebv.dll Step 7: Reset WinSock VERBOSE: netsh winsock reset Step 8: Reset Proxy VERBOSE: netsh winhttp reset proxy Step 9: Start Windows Update services VERBOSE: Cryptographic Services (cryptsvc) VERBOSE: Application Identity (appidsvc) VERBOSE: Windows Update (wuauserv) VERBOSE: Background Intelligent Transfer Service (BITS) Step 10: Start Windows Update services VERBOSE: wuauclt /resetauthorization /detectnow
ค้นหาการอัปเดตในแผงการตั้งค่า หรือค้นหาการอัปเดต Windows ที่พร้อมใช้งานโดยใช้ PowerShell:
Get-WUList
การใช้รีเซ็ตเครื่องมือ Windows Update
รีเซ็ตเครื่องมือ Windows Update เป็นอีกเครื่องมือที่มีประโยชน์และใช้งานง่ายสำหรับการรีเซ็ตการตั้งค่า Windows Update สคริปต์นี้เคยมีอยู่ใน TechNet ปัจจุบันผู้เขียนดูแลพื้นที่เก็บข้อมูลบน GitHub (https://github.com/ManuelGil/Script-Reset-Windows-Update-Tool) มาดูวิธีการใช้กัน
ไฟล์ wureset.exe ที่คอมไพล์แล้ว (C++) หรือแบตช์สคริปต์ปกติมีให้ดาวน์โหลด ฉันชอบใช้สคริปต์ cmd
- ดาวน์โหลด ResetWUEng.zip และดึงออกมา;
- เรียกใช้ ResetWUEng.cmd ในฐานะผู้ดูแลระบบ
- สคริปต์จะตรวจจับเวอร์ชันระบบปฏิบัติการของคุณ (ในตัวอย่างของฉัน คือ Windows 10) และจะเสนอตัวเลือกที่แตกต่างกัน 18 แบบ บางส่วนไม่เกี่ยวข้องโดยตรงกับการรีเซ็ตการตั้งค่าตัวแทน WU แต่อาจมีประโยชน์สำหรับการแก้ไขปัญหา Windows ต่างๆ (ตรวจสอบดิสก์ด้วย chkdsk ซ่อมแซมอิมเมจ Windows ด้วย DISM รีเซ็ต Winsock ล้างไฟล์ชั่วคราว ฯลฯ );
- ในการรีเซ็ต Windows Update โดยทั่วไปก็เพียงพอแล้วที่จะใช้ตัวเลือก 2 – รีเซ็ตคอมโพเนนต์ของ Windows Update กด 2 และ ป้อน;
- สคริปต์จะดำเนินการตามที่เราอธิบายด้านล่างโดยอัตโนมัติเมื่อทำการรีเซ็ต Windows Update Agent ด้วยตนเองจากบรรทัดคำสั่ง คุณสามารถดูการดำเนินการของสคริปต์ได้โดยเปิดไฟล์ ResetWUEng.cmd ในโปรแกรมแก้ไขข้อความใดๆ และตรวจสอบเนื้อหา ตัวอย่างเช่น ตัวเลือกที่ 2 จะส่งคุณไปยัง :ส่วนประกอบ การทำงาน.
- หลังจากเสร็จสิ้นสคริปต์ Reset Windows Update Tool แล้ว ให้รีสตาร์ทคอมพิวเตอร์และตรวจสอบการอัปเดตใหม่
สคริปต์ ResetWUEng.cmd เป็นสคริปต์สากลและเหมาะสำหรับ Windows ทุกรุ่นตั้งแต่ Windows XP จนถึง Windows 11
รีเซ็ตการตั้งค่า Windows Update โดยใช้พรอมต์คำสั่ง
กระบวนการรีเซ็ตเอเจนต์ Windows Update และการกำหนดค่าบริการประกอบด้วยหลายขั้นตอน การดำเนินการที่อธิบายไว้ทั้งหมดจะดำเนินการในพร้อมท์คำสั่งที่ยกระดับ ฉันเพิ่มคำสั่งทั้งหมดในไฟล์ bat ไฟล์เดียว
เมื่อใช้สคริปต์นี้ คุณสามารถรีเซ็ตการกำหนดค่า Windows Update ได้อย่างสมบูรณ์และล้างแคชการอัปเดตในเครื่อง สคริปต์นี้ใช้ได้กับทั้งเวิร์กสเตชันที่ใช้ Windows 11/10/8.1/7 และ Windows Server 2022/2019/2016/2012 R2/2008 R2 สคริปต์นี้ช่วยขจัดข้อผิดพลาดทั่วไปของ Windows Update เมื่อ Windows หยุดดาวน์โหลดการอัปเดตใหม่ หรือข้อผิดพลาดปรากฏขึ้นระหว่างการติดตั้งการอัปเดต
ตรวจสอบให้แน่ใจว่าการตั้งค่า Windows Update บนคอมพิวเตอร์ของคุณไม่ได้กำหนดค่าโดยใช้โดเมนหรือนโยบายกลุ่มในเครื่อง คุณสามารถใช้gpresult
เครื่องมือหรือ rsop.msc
เพื่อแสดงการตั้งค่า GPO ที่ได้ หรือคุณสามารถรีเซ็ตการตั้งค่า GPO ในพื้นที่ตามคู่มือนี้ ลองพิจารณาว่าสคริปต์นี้ทำอะไรทีละขั้นตอน:
- หยุด Windows Update, BITS และบริการเข้ารหัส:
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
taskkill /im wuauclt.exe /f
- ลบไฟล์บริการ qmgr*.dat จากโฟลเดอร์ %ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\:
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
- เปลี่ยนชื่อโฟลเดอร์ระบบ ซึ่งเก็บไฟล์การกำหนดค่าและอัปเดตแคชไว้ (หากจำเป็น สามารถใช้เป็นข้อมูลสำรองได้) หลังจากเริ่มบริการอัปเดตใหม่ (
wuauserv
) ไดเร็กทอรีเหล่านี้จะถูกสร้างขึ้นใหม่โดยอัตโนมัติ:Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak - ลบไฟล์ windowsupdate.log เก่า:
del /f /s /q %windir%\windowsupdate.log
- รีเซ็ตการอนุญาตสำหรับบริการ BITS และ Windows Update (หากสิทธิ์ของบริการมีการเปลี่ยนแปลง):
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset cryptsvc D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset trustedinstaller D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
- ลงทะเบียนไฟล์ของไลบรารีไดนามิกของระบบ (DLL) ที่เกี่ยวข้องกับ BITS และ Windows Update อีกครั้ง:
cd /d %windir%\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll
- รีเซ็ตการตั้งค่า Winsock:
netsh winsock reset
- รีเซ็ตการตั้งค่าพร็อกซีของระบบ:
netsh winhttp reset proxy
- ไม่บังคับ . เมื่อใช้เซิร์ฟเวอร์ WSUS ภายในเครื่อง คุณยังสามารถรีเซ็ตการเชื่อมโยงปัจจุบันของไคลเอ็นต์กับเซิร์ฟเวอร์ WSUS ได้โดยการลบพารามิเตอร์ต่อไปนี้ในคีย์รีจิสทรี HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate:
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v TargetGroup /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUServer /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUStatusServer /f - เริ่มบริการที่หยุดไปก่อนหน้านี้:
sc.exe config wuauserv start= auto
sc.exe config bits start= delayed-auto
sc.exe config cryptsvc start= auto
sc.exe config TrustedInstaller start= demand
sc.exe config DcomLaunch start= auto
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc - ไม่บังคับ . ในบางกรณี คุณจะต้องติดตั้ง/ติดตั้งเวอร์ชันของ Windows Update Agent (WUA) อีกครั้ง คุณสามารถตรวจสอบเวอร์ชันไฟล์ Windows Update Agent Wuaueng.dll ปัจจุบันบนคอมพิวเตอร์ของคุณด้วย PowerShell:
((Get-Item $Env:windir\system32\Wuaueng.dll).VersionInfo).ProductVersion
คุณสามารถดาวน์โหลดเอเจนต์ Windows Update เวอร์ชันล่าสุดได้ที่นี่:https://support.microsoft.com/en-us/kb/949104.
Windows 8.1 –7.9.9600
Windows 8 –7.8.9200.16693
Windows 7 –7.6.7600.256
ใช้คำสั่งต่อไปนี้เพื่อบังคับติดตั้ง Windows Update Agent ใหม่:Windows 7 x86:WindowsUpdateAgent-7.6-x86.exe /quiet /norestart /wuforce
Windows 7 x64:WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce
ตอนนี้ คุณต้องรีสตาร์ทคอมพิวเตอร์และเรียกใช้การซิงโครไนซ์กับ Windows Update หรือ WSUS เท่านั้น
wuauclt /resetauthorization /detectnow
จากนั้นไปที่ Windows Update และตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาดขณะตรวจสอบ ดาวน์โหลด และติดตั้งการอัปเดต
reset_windows_update_agent.bat สามารถดาวน์โหลดสคริปต์ได้ตามลิงค์นี้ reset_windows_update_agent.zip (ตัวเลือก 9 และ 11 ไม่รวมอยู่ในสคริปต์เนื่องจากเป็นตัวเลือก) ดาวน์โหลดสคริปต์ แตกไฟล์ และเรียกใช้ในฐานะผู้ดูแลระบบ
หากดาวน์โหลดและติดตั้งการอัปเดต Windows อย่างถูกต้อง คุณสามารถลบโฟลเดอร์สำรองได้:
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak
หากทุกอย่างล้มเหลว ให้ลองดาวน์โหลดและติดตั้งการอัปเดตที่สะสมล่าสุดสำหรับเวอร์ชัน Windows ของคุณจาก Microsoft Update Catalog ด้วยตนเอง