今天碰到一个关于WSUS控制台无法查看和刷新计算机组的问题,用户只要在计算机组里面刷新计算,选择“任何”类型的计算机,WSUS控制台会马上崩溃,如下图:

转到计算机应用程序日志,会发现如下日志记录:

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

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

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

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

System.Xml.XmlException – “口”(十六进制值 0x16)是无效的字符。 第 1 行,位置 7363841。

Source
System.Xml

Stack Trace:
    在 System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
    在 System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
    在 System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32& charCount, EntityType& entityType)
    在 System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
    在 System.Xml.XmlTextReaderImpl.ParseText()
    在 System.Xml.XmlTextReaderImpl.ParseElementContent()
    在 System.Xml.XmlReader.ReadStartElement()
    在 System.Xml.Serialization.XmlSerializationReader.ReadStringValue()
    在 System.Xml.Serialization.XmlSerializationReader.ReadTypedPrimitive(XmlQualifiedName type, Boolean elementCanBeType)
    在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderApiRemotingCompressionProxy.Read1_Object(Boolean isNullable, Boolean checkType)
    在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderApiRemotingCompressionProxy.Read2_GenericReadableRow(Boolean isNullable, Boolean checkType)
    在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderApiRemotingCompressionProxy.Read339_Item()
    在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer623.Deserialize(XmlSerializationReader reader)
    在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
** this exception was nested inside of the following exception **

System.InvalidOperationException -- XML 文档(1, 7363841)中有错误。

Source
System.Xml

Stack Trace:
    在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
    在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
    在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    在 Microsoft.UpdateServices.Internal.ApiRemoting.ExecuteSPSearchComputers(String computerTargetScopeXml)
    在 Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPSearchComputers(String computerTargetScopeXml)
    在 Microsoft.UpdateServices.Internal.BaseApi.ComputerTarget.SearchComputerTargets(ComputerTargetScope searchScope, UpdateServer updateServer)
    在 Microsoft.UpdateServices.UI.AdminApiAccess.BulkComputerPropertiesCache.GetAndCacheComputers(ExtendedUpdateScope updateScope, ComputerTargetScope computerTargetScope)
    在 Microsoft.UpdateServices.UI.SnapIn.Pages.ComputersListPage.GetListRows()

仔细查看上面的错误,请注意

说明控制台在获取数据库数据的时候,数据库中包含了非法字符,导致WSUS在呈现数据的时候出现的错误,无法解释非法字符。控制台直接崩溃。这种情况,在SCCM中也可能 会出现,主要的原因是由于,客户端计算机中的某些信息,这些信息中包含了非法字符。

解决办法:通过SQL管理工具,打开WSUS数据库中的dbo.tbComputerTargetDetail 表,编辑所有行(如何编辑所有行自行百度);返回结果如下,点击左上角全选数据,Ctrl+C复制所有数据,通过Notdpad++打开,复制到Notepad++中去

搜索

中显示的那个方框字符,搜索方法就是,在日志中复制这个字符,然后在Notepad++中粘贴,搜索。

找到这个字符后,有个对应的TargetID,根据ID,在数据库中找到对应的行,然后修改非法字符,填入一个合法字符,必须DELL或者HP。关闭SQL管理工具。打开控制台,故障修复。

转载于:https://blog.51cto.com/naima/2379750

WSUS控制台由于程序异常崩溃相关推荐

  1. 处理 程序异常崩溃后的善后工作

    好像以前面试被问过,没回答出来,但一直没用到过,也就没研究. 今天看了些代码,发现要实现崩溃后的处理,竟然很简单. 看来很多东西只是见没见过,没见过觉得很神奇,见过了其实也没啥. 要实现程序异常崩溃后 ...

  2. windows 程序异常崩溃等错误定位

      MAP/映射文件 1.      MAP 映射文件的作用:MAP文件可以查找崩溃或者程序异常地址,然后就可以精确地定位到源代码中出错的代码行. 2.VS中生成MAP文件的方法,项目属性中选择生成映 ...

  3. SDL_UpdateTexture+ffmpeg播放YUV数据程序异常崩溃:VM Regions Near 0x113e3d000:MALLOC_LARGE

    异常代码: #include <iostream> #include <map> #include <pthread.h>extern "C" ...

  4. Android程序异常崩溃后重启

    有时候,我们需要应用在崩溃的时候自动重启,并打开崩溃前的那个Activity. 这时候,我们就需要用到Thread.UncaughtExceptionHandler这个接口. 首先,我们知道,既然是要 ...

  5. 如何定位导致程序异常退出的Bug?

    一 引言 我们写代码的时候经常会遇到一些Bug导致程序异常退出,比如访问了空指针.在大多数情况下,我们能够根据经验和IDE本身提供的调试功能来定位问题,并找到解决方案.但最近在工作中遇到了一个问题,一 ...

  6. iOS中Mach异常和signal信号介绍,以及当APP崩溃时做线程保活弹出程序异常提示框

    我们经常会遇到APP闪退和崩溃的问题,那么我们应该通过什么变量去监听APP的异常呢?如何在程序崩溃时,保证程序不闪退,并给用户弹出一个提示框呢? 这是本文将要讲述的内容. 先介绍2个概念,Mach异常 ...

  7. 让程序在崩溃时体面的退出之SEH

    SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式.SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化 ...

  8. 让程序在崩溃时体面的退出之Unhandled Exception

    程序是由代码编译出来的,而代码是由人写的.人非圣贤,孰能无过.所以由人写的代码有缺陷是很正常的.当然很多异常都在开发阶段被考虑到而添加了处理代码,或者用try/catch对可能出现异常的地方进行额外的 ...

  9. 通过gdb core dump方法查看程序异常时的堆栈信息

    在Linux下可通过core文件来获取当程序异常退出(如异常信号SIGSEGV, SIGABRT等)时的堆栈信息.core dump叫做核心转储,当程序运行过程中发生异常的那一刻的一个内存快照,操作系 ...

最新文章

  1. linux本地agent执行脚本_github 4.4K星|马哥教育企业教练团队研发一款轻量级、无Agent自动化运维平台...
  2. 诚聘英才,共创未来!华南农业大学农学院高层次人才招聘
  3. tensorflow就该这么学--6(多层神经网络)
  4. java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
  5. 40个Java多线程问题详解复习
  6. arcgis点按角度生成固定长度线
  7. android dialog 点击遮罩 关闭_如何用构建者模式打造自己dialog
  8. 大数据解读剩女现象:谁遗忘了她们的爱情?
  9. echarts常用术语
  10. Latex系列(三)---IEEE Tran模板介绍
  11. B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
  12. 一。回合制游戏 加暴击 掉落 二。柜台商品管理系统
  13. 【小狗钱钱】—— 送人生一份理财
  14. 传感器采集数据 Python123
  15. Hashtable使用
  16. PC端移动端IP查询
  17. android源码树结构介绍
  18. Thinkpad w530 换内存视频教程
  19. 教育行业分享-基础篇
  20. PyPubMed|好用的免费文献检索神器

热门文章

  1. 一图了解 PE 基金的8种架构设计
  2. Ubuntu下安装RabbitMQ
  3. 防止程序重复执行的单元
  4. Project Explore 再现
  5. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务
  6. 生产性服务业的源起及内涵(制造服务业的前世今生之一)
  7. Asp.Net 学习资源列表
  8. 我们在开源项目中是怎样埋彩蛋的
  9. CentOS7.3下Jenkins+docker自动化部署solo站点
  10. Exchange 2010 OAB下载问题排错error 0x80200049