WINDOWS UPDATE 無法正常更新 0x80070005 Access Denied
問題描述︰SBS 2003/WINDOWS UPDATE無法正常更新
說明與方法︰
- 自動更新服務無法正常啟動, 手動去啟動服務會發生存取被拒
- 執行IE進行 Windows Update 則會發生 0x80070005的錯誤
- 手動安裝 AU Agent 在註冊DLL檔案發生 0x80070041D的錯誤
[Compare the windows update file]
good one: (from VM machine)
2009-11-18 10:17:25:171 536 408 Setup Update NOT required for C:\WINNT\system32\cdm.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:171 536 408 Setup Update NOT required for C:\WINNT\system32\wuapi.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:203 536 408 Setup Update NOT required for C:\WINNT\system32\wuapi.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:203 536 408 Setup Update NOT required for C:\WINNT\system32\wuauclt.exe: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:203 536 408 Setup Update NOT required for C:\WINNT\system32\wuaucpl.cpl: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:203 536 408 Setup Update NOT required for C:\WINNT\system32\wuaucpl.cpl.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:218 536 408 Setup Update NOT required for C:\WINNT\system32\wuaueng.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:218 536 408 Setup Update NOT required for C:\WINNT\system32\wuaueng.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:218 536 408 Setup Update NOT required for C:\WINNT\system32\wucltui.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:234 536 408 Setup Update NOT required for C:\WINNT\system32\wucltui.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:234 536 408 Setup Update NOT required for C:\WINNT\system32\wups.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-18 10:17:25:250 536 408 Setup Update NOT required for C:\WINNT\system32\wups2.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
bad one: (which is SBS 2003)
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\cdm.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\SoftwareDistribution\Setup\ServiceStartup\wuapi.dll\7.4.7600.226\wuapi.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\SoftwareDistribution\Setup\ServiceStartup\wuapi.dll\7.4.7600.226\wuapi.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wuauclt.exe: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wuaucpl.cpl: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wuaucpl.cpl.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wuaueng.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wuaueng.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wucltui.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\wucltui.dll.mui: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:218 12224 244c Setup Update NOT required for C:\WINDOWS\system32\SoftwareDistribution\Setup\ServiceStartup\wups.dll\7.4.7600.226\wups.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
2009-11-13 08:43:26:234 12224 244c Setup Update NOT required for C:\WINDOWS\system32\SoftwareDistribution\Setup\ServiceStartup\wups2.dll\7.4.7600.226\wups2.dll: target version = 7.4.7600.226, required version = 7.4.7600.226
在更新 AU Agent的時候, wuapi.dll也沒正確被複製到正常的資料夾
[windowsupdate.log]
2009-11-13 08:41:18:578 8244 2d7c Setup Starting file operations for section cdm
2009-11-13 08:41:33:640 8244 2d7c Setup Successfully copied source file C:\WINDOWS\SoftwareDistribution\WebSetup\cdm.dll to C:\WINDOWS\system32\cdm.dll.wusetup.2406118265.new
2009-11-13 08:41:33:796 8244 2d7c Setup Setup successfullly moved C:\WINDOWS\system32\cdm.dll.wusetup.2406118265.new to C:\WINDOWS\system32\cdm.dll
2009-11-13 08:41:33:796 8244 2d7c Setup File operations for section cdm completed successfully
2009-11-13 08:41:33:796 8244 2d7c Setup Starting file operations for section wuapi
2009-11-13 08:41:37:406 8244 2d7c Setup Successfully copied source file C:\WINDOWS\SoftwareDistribution\WebSetup\wuapi.dll to C:\WINDOWS\system32\wuapi.dll.wusetup.2406122015.new
2009-11-13 08:41:37:406 8244 2d7c Setup WARNING: Could not move C:\WINDOWS\system32\wuapi.dll to C:\WINDOWS\system32\wuapi.dll.wusetup.2406122031.bak due to 0x80070020
解決方法︰
1. 手動將以下檔案從 system32\SoftwareDistribution 資料夾複製到 C:\Winodws\System32 資料夾底下
- wuapi.dll
- wuapi.dll.mui
- wups.dll
- wups2.dll
2. 執行 regsvr32 filename 手動註冊以上的 dll 檔案
3. 把以下機碼手動刪除
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Setup\ServiceStartup]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Setup\ServiceStartup\wuapi.dll]
"TargetFile"="C:\\WINDOWS\\system32\\wuapi.dll"
"CacheFile"="C:\\WINDOWS\\system32\\SoftwareDistribution\\Setup\\ServiceStartup\\wuapi.dll\\7.4.7600.226\\wuapi.dll"
"RegistrationFlags"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Setup\ServiceStartup\wups.dll]
"TargetFile"="C:\\WINDOWS\\system32\\wups.dll"
"CacheFile"="C:\\WINDOWS\\system32\\SoftwareDistribution\\Setup\\ServiceStartup\\wups.dll\\7.4.7600.226\\wups.dll"
"RegistrationFlags"=dword:00000001
"NoVersionCheck"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Setup\ServiceStartup\wups2.dll]
"TargetFile"="C:\\WINDOWS\\system32\\wups2.dll"
"CacheFile"="C:\\WINDOWS\\system32\\SoftwareDistribution\\Setup\\ServiceStartup\\wups2.dll\\7.4.7600.226\\wups2.dll"
"RegistrationFlags"=dword:00000001
"NoVersionCheck"=dword:00000001
4. 打開 IE執行Windows Update, 已可正常更新
5. 重新開機檢查以下服務, 正常執行中, Windows Update也可正常安裝更新
- Automatic Updates
- Background Intelligent Transfer Service
- Cryptographic Services