重置Windows Update代理设置

时间:2020-01-09 10:46:51  来源:igfitidea点击:

本文很好地展示了如何通过重置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 Troubleshooter"工具来自动修复Windows Update服务中的问题。

为Windows版本下载并运行Windows Update疑难解答:

  • Windows 10 wu10.diagcab(https://aka.ms/wudiag)(或者运行该工具的本地版本:开始->设置->更新和安全->疑难解答-> Windows Updates Troubleshooter);
  • Windows 7和Windows 8.1 WindowsUpdate.diagcab(https://aka.ms/diag_wu)。

等待Windows Update疑难解答程序扫描系统,并自动尝试修复Windows Update和相关组件中的所有错误。

就我而言,发现并修复了Windows Update数据库中的损坏。之后,仍然需要重新启动计算机并尝试扫描更新。如果未下载或者安装更新,请继续执行下一步。

从命令行重置Windows更新设置

重置Windows Update服务和代理配置的过程包括几个步骤。所有描述的操作都在提升的命令提示符下执行。我将所有命令添加到一个bat文件中(要下载准备好的脚本,请单击链接)。

使用此脚本,我们可以完全重置Windows Update的配置并清除本地更新缓存。该脚本适用于Windows 7,Windows 8.1,Windows 10和Windows Server 2015/2012 R2/2008 R2. 当Windows Update停止下载新更新或者在安装更新过程中出现错误时,此脚本有助于消除大多数典型的Windows Update错误。

让我们考虑一下此脚本的逐步操作:

  • 停止Windows Update,BITS和加密服务:
net stop bits 
net stop wuauserv 
net stop appidsvc 
net stop cryptsvc 
taskkill /im wuauclt.exe /f
  • 从文件夹%ALLUSERSPROFILE%\ Application Data\Microsoft\Network\Downloader \中删除服务文件qmgr*。dat:
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
  • 重命名系统文件夹,其中存储配置文件和更新缓存(如有必要,它们可以用作备份)。重新启动WU服务后,将再次自动创建文件夹:
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)
  • 重新注册与BITS和Windows Update相关的系统动态库(dll)的文件:
cd /d %windir%\system32
regsvr32.exe /U /s vbscript.dll
regsvr32.exe /U /s mshtml.dll
regsvr32.exe /U /s msjava.dll
regsvr32.exe /U /s msxml.dll
regsvr32.exe /U /s actxprxy.dll
regsvr32.exe /U /s shdocvw.dll
regsvr32.exe /U /s Mssip32.dll
regsvr32.exe /U /s wintrust.dll
regsvr32.exe /U /s initpki.dll
regsvr32.exe /U /s dssenh.dll
regsvr32.exe /U /s rsaenh.dll
regsvr32.exe /U /s gpkcsp.dll
regsvr32.exe /U /s sccbase.dll
regsvr32.exe /U /s slbcsp.dll
regsvr32.exe /U /s cryptdlg.dll
regsvr32.exe /U /s Urlmon.dll
regsvr32.exe /U /s Oleaut32.dll
regsvr32.exe /U /s msxml2.dll
regsvr32.exe /U /s Browseui.dll
regsvr32.exe /U /s shell32.dll
regsvr32.exe /U /s atl.dll
regsvr32.exe /U /s jscript.dll
regsvr32.exe /U /s msxml3.dll
regsvr32.exe /U /s softpub.dll
regsvr32.exe /U /s wuapi.dll
regsvr32.exe /U /s wuaueng.dll
regsvr32.exe /U /s wuaueng1.dll
regsvr32.exe /U /s wucltui.dll
regsvr32.exe /U /s wups.dll
regsvr32.exe /U /s wups2.dll
regsvr32.exe /U /s wuweb.dll
regsvr32.exe /U /s scrrun.dll
regsvr32.exe /U /s msxml6.dll
regsvr32.exe /U /s ole32.dll
regsvr32.exe /U /s qmgr.dll
regsvr32.exe /U /s qmgrprxy.dll
regsvr32.exe /U /s wucltux.dll
regsvr32.exe /U /s muweb.dll
regsvr32.exe /U /s wuwebv.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s msjava.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s Mssip32.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s initpki.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 Urlmon.dll
regsvr32.exe /s Oleaut32.dll
regsvr32.exe /s msxml2.dll
regsvr32.exe /s Browseui.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s Mssip32.dll
regsvr32.exe /s atl.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s softpub.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 scrrun.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s ole32.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服务器时,还可以通过删除注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate中的以下参数来重置客户端到WSUS服务器的当前绑定:
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)的最新版本。我们可以从此网页https://support.microsoft.com/en-us/kb/949104下载Windows Update代理的当前版本。下载适用于Windows版本的文件。要强制重新安装Windows Update代理,请运行以下命令:

对于Windows 7 x86:

WindowsUpdateAgent-7.6-x86.exe /quiet /norestart /wuforce

,对于Windows 7 x64:

WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce

我们计算机上的当前Windows Update代理(WUA)版本可在%windir%\ system32 \Wuaueng.dll文件的属性中找到。在我们的示例中,它是" 7.6.7600.256"。

现在,我们只需要重新启动计算机并与Windows Update服务器/ WSUS运行同步即可。

wuauclt /resetauthorization /detectnow

然后转到Windows Update,并确保在检查,下载和安装更新时没有错误。

可以通过此链接" reset_windows_update_agent.zip"下载脚本" reset_windows_update_agent.bat"(脚本中不包含选项9和11,因为它们是可选的)。下载脚本,将其解压缩并以管理员权限运行。

如果正确下载并安装了更新,则可以删除备份:

Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak Ren %systemroot%\system32\catroot2 catroot2.bak

脚本重置Windows Update代理

在Technet脚本库中,有一个相当有用且简单的脚本,用于重置Windows Update组件"重置Windows Update代理工具"。该脚本具有通用性,适用于所有版本的Windows:从Windows XP开始到最新的Windows 10版本结束。考虑如何使用它。

  • 在此处(https://gallery.technet.microsoft.com/scriptcenter/Reset-Windows-Update-Agent-d824badc)下载ResetWUEng.zip存档并解压缩;
  • 在具有管理员权限的情况下运行ResetWUEng.cmd文件;
  • 该脚本将检测操作系统版本(在我的示例中为Windows 10),并将提供18种不同的选项。其中一些与WU代理设置的重置没有直接关系,但对于解决各种Windows问题可能有用(使用chkdsk检查磁盘,修复Windows镜像中的错误,重置Winsock,清除临时文件等);
  • 要重置Windows Update设置,通常使用选项" 2重置Windows Update组件"就足够了。按2和Enter键。
  • 从命令提示符手动重置Windows Update代理时,该脚本将自动执行我们上面描述的所有操作;我们可以通过在任何文本编辑器中打开ResetWUEng.cmd文件并检查其内容来查看脚本执行的操作。例如,选项2使我们进入:components函数。
  • 完成"重置Windows Update代理"脚本后,重新启动计算机并运行扫描以查找新更新。