問題描述︰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. 把以下機碼手動刪除

clip_image002

[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