AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 679306
Accepted
Proxy
Proxy
Asked: 2015-03-31 05:50:43 +0800 CST2015-03-31 05:50:43 +0800 CST 2015-03-31 05:50:43 +0800 CST

WSUS 内容文件夹不保留更新

  • 772

我一直在为这个问题挠头一段时间,我所做的任何事情都无法解决问题

问题:

WSUS 的“WSUSContent”文件夹正在自我删除更新并将整体大小减小到 <5GB。原始大小超过 300GB。更新到哪里去了?我们没有启动 WSUSContent 清理,过去也没有。

尝试解决:

WSUSutil /reset.
Reinstall WSUS service from scratch.
Migrated from internal database to remote SQL database.

更多信息:

  • WSUS 数据库位于远程 SQL 服务器上
  • WSUSutil reset 将整个内容文件夹重建为超过 300GB。
  • WSUS 活跃了一段时间(1-2 周),然后在一天之内突然停止工作(很遗憾,我们不知道这是什么时候发生的)
  • 经常发生此问题后,我们会得到 WSUS 缺少内容的通用 800 代码:

2015-03-30 14:25:19:174 1184 195c 设置致命:GetClientUpdateUrl 失败,错误 = 0x8024D009 2015-03-30 14:25:19:174 1184 195c 设置跳过基于 wuident 2015 中的 /SKIP 指令的 SelfUpdate 检查-03-30 14:25:19:174 1184 195c 设置 SelfUpdate 检查已完成。不需要自我更新。

  • 没有“清理”更新的计划任务,我们会自动批准所需技术的所有更新(Windows 7、8.1、Server 2012、SQL 2012 以及其他让我想不通的)。
  • 我们使用第三方工具检查了我们的 WSUS 设置,它们都返回并声称设置正常且未检测到任何问题。
  • 我们让 WSUS 处理 HTTP 和 HTTPS,SSL 证书很好并且在日期/有效范围内。
  • 当使用管理员工具连接到 WSUS 时,控制台会定期中断并显示红色“X”并表示远程 API 停止工作?(我粘贴在 WSUS 管理控制台遇到的另一个错误下方):

WSUS 管理控制台遇到意外错误。这可能是暂时性错误;尝试重新启动管理控制台。如果此错误仍然存​​在,

尝试通过删除 %appdata%\Microsoft\MMC 下的 wsus 文件来删除控制台的持久首选项。

System.Collections.Generic.KeyNotFoundException - 字典中不存在给定的键。

源 mscorlib

堆栈跟踪:在 Microsoft.UpdateServices.UI.SnapIn.Pages.UpdatesListPage 的 Microsoft.UpdateServices.UI.SnapIn.Pages.UpdatesListPage.GetUpdateRow(WsusUpdate update) 的 System.Collections.Generic.Dictionary`2.get_Item(TKey key)。获取列表行()

  • 我在 SF 上关注了这些,但没有运气:

WSUS 没有收到更新? & WSUS,已安装,不适用

互联网上的许多其他人也试图找到答案。

  • WSUS 服务器是域的一部分,澄清一下,当我运行 wsusutil /reset 时,所有连接的客户端都在获取更新并且连接不是问题,WSUS 内容只是消失得无影无踪。

Windows 日志文件“红色”条目:

这些是我尝试查看的关键日志条目,但也无济于事,除非我忽略了某些东西..

  • 376 1b0c 其他警告:假设不支持网络成本,因为尝试获取 wcmapi.dll 的句柄失败
  • 报告警告:报告者未能上传 hr = 8007000d 的事件。
  • 警告:无法将事件批次转换为 Web 服务事件:0x8007000d
  • 致命:GetClientUpdateUrl 失败,错误 = 0x8024D009
  • 警告:无法从 NLM 获取 Wu 豁免信息,假设未豁免,错误 = 0x80240037
  • 代理 * 在线 = 否;忽略下载优先级=否<-在线=否;???

任何帮助将不胜感激,因为这种情况非常不寻常。

windows-server-2012
  • 2 2 个回答
  • 7226 Views

2 个回答

  • Voted
  1. Best Answer
    Proxy
    2015-04-10T00:27:43+08:002015-04-10T00:27:43+08:00

    所以,奇怪的修复。

    我的 WSUSContent 文件夹中有 0.99GB,经过手动服务器清理(没有选择不需要的更新文件)等待大约 45 分钟,然后选择不需要的更新文件。再过一分钟,WSUSContent 文件夹为 100GB(从 0.99GB,这里的互联网速度还不够快,无法在 <45 分钟内获取 99GB)并且已批准 50,000 次更新。

    它虽然有效。非常非常奇怪。日志中没有任何内容要求清理,空间也不是问题。多么奇怪。

    谢谢大家的建议!

    • 1
  2. john v kumpf
    2017-05-17T18:23:23+08:002017-05-17T18:23:23+08:00

    我可以回应@Proxy 所说的话:

    奇怪的修复......非常非常奇怪。......多么奇怪。

    我的三星笔记本电脑安装了 Windows 8.1-Update。它有一个被清洗过的感染。当前日期是 2017 年 5 月 16 日,但最后一次 Windows 更新是 2 年前的 2015 年。

    Windows 更新在清除恶意软件后无法正常工作。它会挂起,没有任何进展c:\windows\WindowsUpdate.log,但仍会占用一个核心的 100%。

    过时 2 年的一个后果可能是相关的,即 GWX(获取 Windows 10)仍在这台笔记本电脑上运行,即使该优惠在 1 年前到期。

    这台笔记本电脑的另一个值得注意的事情是我更换了两次主板。第一次,它每天崩溃多次。第二块主板工作正常。所以这些崩溃可能在这里产生了影响。

    在尝试了几乎所有方法之后,这就是有效的方法:Windowscleanmgr.exe又名“磁盘清理”又名“通过删除不必要的文件来清理磁盘空间”。

    我选择了:

    • 临时网络文件
    • 调试转储文件(不过看起来它们还在那里)
    • 系统错误内存转储文件(看起来它们仍然存在)
    • 临时文件

    之后,重新启动,Windows 更新工作。多么奇怪。

    这是我尝试过的一些不起作用的突出解决方案:

    :: consider carefully /ResetBase -- it prevents you from un-installing windows updates
    Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase
    
    Dism /Online /Cleanup-Image /RestoreHealth
    sfc /scannow
    

    我不得不不止一次地运行这些。这些步骤中的每一个都修复了损坏。直到他们通过而没有发现腐败。

    尽管如此,Windows 更新仍无法正常工作。还是挂了。

    更深入地,我尝试了此修复程序,来自 Sevenforums https://www.sevenforums.com/tutorials/91738-windows-update-reset.html的“选项 2” :

    Reset_Reregister_Windows_Update_Components.bat
    

    这是截至今天该批处理文件的内容:

    @echo off
    
    :: Created by: Shawn Brink
    :: http://www.sevenforums.com
    :: Tutorial: http://www.sevenforums.com/tutorials/91738-windows-update-reset.html
    
    
    set b=0
    
    :bits
    set /a b=%b%+1
    if %b% equ 3 (
       goto end1
    ) 
    net stop bits
    echo Checking the bits service status.
    sc query bits | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto bits 
    ) 
    goto loop2
    
    :end1
    cls
    echo.
    echo Failed to reset Windows Update due to bits service failing to stop.
    echo.
    pause
    goto Start
    
    
    :loop2
    set w=0
    
    :wuauserv
    set /a w=%w%+1
    if %w% equ 3 (
       goto end2
    ) 
    net stop wuauserv
    echo Checking the wuauserv service status.
    sc query wuauserv | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto wuauserv 
    ) 
    goto loop3
    
    :end2
    cls
    echo.
    echo Failed to reset Windows Update due to wuauserv service failing to stop.
    echo.
    pause
    goto Start
    
    
    
    :loop3
    set app=0
    
    :appidsvc
    set /a app=%app%+1
    if %app% equ 3 (
       goto end3
    ) 
    net stop appidsvc
    echo Checking the appidsvc service status.
    sc query appidsvc | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto appidsvc 
    ) 
    goto loop4
    
    :end3
    cls
    echo.
    echo Failed to reset Windows Update due to appidsvc service failing to stop.
    echo.
    pause
    goto Start
    
    
    :loop4
    set c=0
    
    :cryptsvc
    set /a c=%c%+1
    if %c% equ 3 (
       goto end4
    ) 
    net stop cryptsvc
    echo Checking the cryptsvc service status.
    sc query cryptsvc | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto cryptsvc 
    ) 
    goto Reset
    
    :end4
    cls
    echo.
    echo Failed to reset Windows Update due to cryptsvc service failing to stop.
    echo.
    pause
    goto Start
    
    
    
    :Reset
    Ipconfig /flushdns
    Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
    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)
    cd /d %windir%\system32
    Ren %systemroot%\system32\catroot2 catroot2.bak
    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
    regsvr32 /s wudriver.dll
    netsh winsock reset
    
    :Start
    net start bits
    net start wuauserv
    net start appidsvc
    net start cryptsvc
    bitsadmin.exe /reset /allusers
    

    我尝试了一个扩展版本,添加了停止/启动msiserver和重命名,最后%systemroot%\SoftwareDistribution停止,wuauserv因为 Windows 可能会自动重新启动它。

    这是代码:

    :rem v2 with ren whole SoftwareDistribution
    :rem    and stop / start msiserver
    @echo off
    
    :: Created by: Shawn Brink
    :: http://www.sevenforums.com
    :: Tutorial: http://www.sevenforums.com/tutorials/91738-windows-update-reset.html
    
    
    :rem ---------- bits ----------
    :loop1
    set b=0
    
    :bits
    set /a b=%b%+1
    if %b% equ 3 (
       goto end1
    ) 
    net stop bits
    echo Checking the bits service status.
    sc query bits | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto bits 
    ) 
    goto loop2
    
    :end1
    cls
    echo.
    echo Failed to reset Windows Update due to bits service failing to stop.
    echo.
    pause
    goto Start
    
    
    :rem ---------- appidsvc ----------
    :loop2
    set app=0
    
    :appidsvc
    set /a app=%app%+1
    if %app% equ 3 (
       goto end2
    ) 
    net stop appidsvc
    echo Checking the appidsvc service status.
    sc query appidsvc | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto appidsvc 
    ) 
    goto loop3
    
    :end2
    cls
    echo.
    echo Failed to reset Windows Update due to appidsvc service failing to stop.
    echo.
    pause
    goto Start
    
    
    :rem ---------- cryptsvc ----------
    :loop3
    set c=0
    
    :cryptsvc
    set /a c=%c%+1
    if %c% equ 3 (
       goto end3
    ) 
    net stop cryptsvc
    echo Checking the cryptsvc service status.
    sc query cryptsvc | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto cryptsvc 
    ) 
    goto loop4
    
    :end3
    cls
    echo.
    echo Failed to reset Windows Update due to cryptsvc service failing to stop.
    echo.
    pause
    goto Start
    
    
    :rem ---------- msiserver ----------
    :loop4
    set w=0
    
    :msiserver
    set /a w=%w%+1
    if %w% equ 3 (
       goto end4
    ) 
    net stop msiserver
    echo Checking the msiserver service status.
    sc query msiserver | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto msiserver 
    ) 
    goto loop5
    
    :end4
    cls
    echo.
    echo Failed to reset Windows Update due to msiserver service failing to stop.
    echo.
    pause
    goto Start
    
    
    :rem ---------- wuauserv ----------
    :loop5
    set w=0
    
    :wuauserv
    set /a w=%w%+1
    if %w% equ 3 (
       goto end5
    ) 
    net stop wuauserv
    echo Checking the wuauserv service status.
    sc query wuauserv | findstr /I /C:"STOPPED" 
    if not %errorlevel%==0 ( 
        goto wuauserv 
    ) 
    goto Reset
    
    :end5
    cls
    echo.
    echo Failed to reset Windows Update due to wuauserv service failing to stop.
    echo.
    pause
    goto Start
    
    
    
    :rem ---------- Reset ----------
    :Reset
    Ipconfig /flushdns
    Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
    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)
    cd /d %windir%\system32
    Ren %systemroot%\system32\catroot2 catroot2.bak
    
    cd %systemroot%\
    ren SoftwareDistribution SoftwareDistribution_mm.bak
    
    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
    regsvr32 /s wudriver.dll
    netsh winsock reset
    
    :Start
    net start bits
    net start wuauserv
    net start appidsvc
    net start cryptsvc
    net start msiserver
    bitsadmin.exe /reset /allusers
    

    毕竟让 Windows 更新再次工作的是cleanmgr

    • 0

相关问题

  • 一个 Active Directory,多个远程桌面服务(Server 2012 解决方案)

  • 在虚拟处理器上启用硬件辅助虚拟化?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve