我有一台运行Windows Server 2012 R2的Windows Azure虚拟机,自2016年4月以来一直无法安装更新。“控制面板”中的“查看更新历史logging”屏幕列出了来自每次机器上不断尝试安装更新的数百次连续失败重新开始。
每个更新的详细信息窗口类似于:
Windows Server 2012 R2更新(KB3133690)
- 安装date:2016年04月25日10:34
- 安装状态:失败
- 错误详细信息:代码800F0922获取有关此错误的帮助
- 更新types:build议
安装此更新可以解决Windows中的问题。 有关此更新中包含的问题的完整列表,请参阅相关的Microsoft知识库文章以获取更多信息。 安装此项目后,您可能需要重新启动计算机。
更多信息: http : //support.microsoft.com/kb/3133690
- 在重新安装主机操作系统之后取回hyper-v虚拟机
- 降级Windows Server 2012 R2到WS 2012
- Windows 2012 R2 Hyper-V群集没有共享硬件
- iscsi Windows Server hyper-v集群
- 如何使Windows服务器2012R2网卡连接到中继,但具有VLAN ID
帮助和支持: http : //support.microsoft.com
(像往常一样,“获取有关此错误的帮助”链接是无用的,并打开一个Windows帮助和支持窗口,简单地读取“获取search结果…我们找不到任何结果,这里有一些事情要尝试:”。啊,
Windows事件日志也散布着像这样的事件:
- 日志名称:系统
- 来源:WindowsUpdateClient
- 事件ID:20
- 级别:错误
- 用户:SYSTEM
- 操作代码:安装安装失败:Windows无法安装以下更新,错误为0x800F0922:Windows Server 2012 R2安全更新(KB3159398)。
应用程序事件日志包含更多有用的信息:
- 日志名称:应用程序
- 来源:Windows错误报告
- 事件ID:1001
- 级别:信息
- 用户:N / A故障存储桶,types0事件名称:WindowsUpdateFailure3响应:不可用出租车ID:0
问题签名:P1:7.9.9600.18235 P2:800f0922 P3:BA0F75FF-19C3-4CBD-A3F3-EF5B5C0F88BF P4:安装P5:202 P6:0 P7:0 P8:AutomaticUpdatesWuApp P9:{7971F918-A847-4430-9279-4A52D1EFE18D} P10:0
附加文件:C:\ Windows \ WindowsUpdate.log C:\ Windows \ SoftwareDistribution \ ReportingEvents.log C:\ Windows \ Logs \ CBS \ CBS.log
这些文件可能在这里可用:C:\ ProgramData \ Microsoft \ Windows \ WER \ ReportQueue \ NonCritical_7.9.9600.18235_(Redacted)
分析符号:重新检查解决scheme:0报告Id:(Redacted)报告状态:4散列桶:
服务器将重新启动以安装更新,然后立即停止并执行回滚,使得正常的重新启动超过15分钟以上。
日志文件C:\Windows\WindowsUpdate.log不会产生任何线索 – 它不报告任何明显的错误或警告 – 除了过多的消息,无法使用Metered连接API:“警告:无法获得networking成本来自NLM的信息,假设networking未被计量,错误= 0x80240037“。
C:\Windows\SoftwareDistribution\ReportingEvents.log文件仅包含与Windows Update控制面板相同的文本:“失败内容安装安装失败:Windows未能安装以下更新,错误为0x800f0922:Windows Server 2012 R2安全更新KB3162343)。”
最后, C:\Windows\Logs\CBS\CBS.log是一个180MB大小的文本文件,我通过浏览,但找不到任何明显的。
清除您的C:\Windows\Temp目录和其他临时目录以达到良好的效果 – 然后它应该安装更新。
由于这是一个Azure虚拟机,微软的“基本”支持层是可用的 – 授予它需要3天的时间安排一个电话,但支持人员才能find一个解决方法就在今天。
在CBS.log文件中,他发现了这一行(由我修剪和整理):
(F)CMIADAPTER:来自AI的内部错误信息HRESULT = 8004402f [Error,Facility = FACILITY_ITF,Code = 16431( 0x402f)] [ “parsingMOF文件:C:\ Windows \ system32 \ wbem \ NetTCPIP.mof 函数CMofLexer :: CMofLexer行614中的错误80 C:\ Windows \ system32 \ wbem \ NetTCPIP.mof(1):错误语法0X8004402f:创build临时文件时出错“ ] [GLE = 0x80004005的]
重要的是这个错误:
创build临时文件时出错
他指示我将系统和用户定义中的默认环境variables: TEMP和TMP更改为C:\TEMP并确保Everyone具有对C:\TEMP Full Access 。
重新启动之后安装的阻塞更新没有任何进一步的问题。
在安装这些更新之后,我再删除原来的C:\ Windows \ Temp目录下的所有文件(花了5分钟以上,还有很多深层嵌套的文件)。 然后,我将TMP和TEMP环境variables重置回C:\Windows\Temp并重新启动。
然后准备安装和安装两个新的更新,没有任何问题。
所以我认为问题是Temp目录中的数据不正确,导致更新无法执行任何操作。
2017年中更新:我最近在Windows 10笔记本电脑上发生了类似的事件,错误代码相同。 我马上去了C:\Windows\Temp目录,看到里面有很多文件(大约16,000个文件和文件夹),包括深层嵌套的文件夹。 在删除目录中的所有内容并重新启动后,我可以再次安装更新。