SCCM 在运行某些报告时提示如下格式的错误

简介:



在运行某些报告时提示如下格式的错误

Error in XML document. Hexadecimal value 0x0C, is an invalid character


Manager

SCCMR2 Version 5.0.7958.1203

SQL Version 2012R2 11.0.3000.0

Operating System6.3.9600




故障现象:

     在SCCM控制台(monitoring\Overview\Reporting\Reports\*)运行某些报告时会出现下面截图中的错误:

查看详细信息,内容如下:









原因:

      正如字面意思,出现这个错误是由于你当前运行的这个报告,在做数据库查询时,遇到表中某些值包含非法字符。而字符值就是上面***标记中,开头""包含部分,转换为16进制后的值是0x0C。这些值无发被正确的识别,所以出现报告无法继续运行的错误。

     造成这种错误的情况,在SCCM上主要是"资产智能"这个功能导致,出现最多的是在软件数据的收集上,由于某些软件设计不规范导致的,至于微软为什么让这些字符写入到数据库,我就无法解释了,而且这样还会导致安全隐患。

解决方案:

     虽然知道了问题的原因,我该如何解决?

首先,我们知道是表中的值出现非法字符,那么一定找出这个值,修改或者删除它即可,思路如下:找出报告中涉及的表à找出表中出问题的值à修改或者删除非法的值

A   找出报告涉及的表格

可以通过ReportBuilder工具,查看报告的数据源,找出对应的视图,然后通过视图找出涉及的表。

     通过WEB方式,访问SCCM的报表点,这个报告点取决于你的部署。我的报告点就是我的SCCM服务器。

打开Report Builder(如过你打开后不能看到上图中的内容,那么请你先解决这个问题再继续),在ReportBuilder里面打开出现错误的报告。我这里是Software 01A

我们会看到DataSets,这里面配置了这个报告所需要的所有查询语句,我们可以通过查看DataSets的配置,找出报告引用的视图。打开每个DataSet的属性。

打开Query Designer

把Query中间的语句复制到记事本中,注意下图中标黄的语句,这些语句就是这个报告所涉及的视图,根据报告的不同可以会涉及很多个视图。如过有多个DataSet那么可以分析那个是最有可能的,例如我现在用的这个报告,是根据指定的集合和指定的发布者显示安装数量和版本信息。那么DataSet0根据名称判断就是已经安装软件的视图。而Dataset1主要是集合ID的查询,如过集合ID出现问题,那么方式要用到集合的报告都会出问题,根据排除法集合ID的表格是没有问题的,而且集合信息本身是在SCCM中生成,肯定是符合规范的。对于Dataset2是用户SID这个就更不用去查了。

那么我将注意力集中到v_GS_INSTALLED_SOFTWARE 这个视图上。

通过SQL Management Studio打开SCCM数据库,找到这个视图:

点击右键,选择Design

通过Design我们可以看到这个视图引用了哪些表

注意黄线部分就是这个视图引用的数据库中的表。

查询出问题的数据

找到表了,我们的工作已经完成一半了,找到对应的表,查询错误的值:

通过如下语句:

SelectPublisher00,*

from [CM_TTY].[dbo].INSTALLED_SOFTWARE_DATA

WHERECONVERT(varchar(max),convert(varbinary(max),Publisher00),2)LIKE'%0C%'


注意%0C%就是错误中出现的值,以16进制形式表示,查询出来的值拷贝到Excel中如下图,会出现很多乱码,这些都是错误的数据。

删除错误数据

SQL 语句:

delete from [CM_TTY].[dbo].INSTALLED_SOFTWARE_DATA where InstanceKey='86'  and MachineID='16777774'

根据表的主键,我们将错误的数据删除,建议大家将查询出来的数据都删除,即使看起来正常。



PS:

我的版本是SCCM 2012R2 ,论坛上有说升级到R2 SP1可以解决这个问题,有可能这个是SCCM的一个Bug。



本文转自zhaonaiqiu 51CTO博客,原文链接:http://blog.51cto.com/naima/1736982,如需转载请自行联系原作者

相关文章
|
存储 数据采集 Prometheus
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
2444 0
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
|
7月前
|
前端开发 API 数据库
React Server Components 实战:解锁高效渲染新姿势
React Server Components 实战:解锁高效渲染新姿势
305 81
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习YOLO12的汽车损伤检测系统
针对汽车损伤检测效率低、主观性强等问题,本研究基于YOLOv12提出自动化检测系统,融合区域注意力与R-ELAN网络,提升小损伤识别精度与多场景适应性,实现快速、精准、标准化评估,推动保险、二手车等产业智能化升级。
|
2月前
|
前端开发 安全 Java
集成Knife4j
knife4j是Java MVC框架集成Swagger的增强工具,前身swagger-bootstrap-ui,旨在提供更美观、易用的API文档界面。轻量如匕首,功能强大,支持全局参数设置、离线文档下载、友好测试界面。集成简便,通过引入starter依赖并访问/doc.html即可使用,助力前后端高效协作,提升接口调试与维护体验。
|
网络协议 安全 网络安全
应用程序中的网络协议:原理、应用与挑战
网络协议是应用程序实现流畅运行和安全通信的基石。了解不同协议的特点和应用场景,以及它们面临的挑战和应对策略,对于开发者和用户都具有重要意义。在未来,随着技术的不断发展,网络协议也将不断优化和创新,为数字世界的发展提供更强大的支持。
409 1
|
JavaScript 前端开发
教你用vue2实现一个tabbar(2024年11月教程)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。自学前端2年半,正向全栈进发。博客分享技术心得,助你成长。关注我,获取更多优质内容,你的支持是我前进的动力!🎉🎉🎉
208 0
教你用vue2实现一个tabbar(2024年11月教程)
|
安全 Windows
Windows关闭Microsoft Defender服务
【8月更文挑战第19天】以下是关闭Windows系统中Microsoft Defender的几种方法:通过设置界面可临时关闭实时保护等功能;使用组策略编辑器(专业版适用)可较彻底关闭;修改注册表需谨慎;或利用第三方工具如Defender Control便捷操作。关闭后系统将失去实时防护,请确保有其他可靠安全软件保护。
5501 0
|
SQL 存储 NoSQL
从SQL到NoSQL:理解不同数据库类型的选择与应用——深入比较数据模型、扩展性、查询语言、一致性和适用场景,为数据存储提供全面决策指南
【8月更文挑战第31天】在信息技术飞速发展的今天,数据库的选择至关重要。传统的SQL数据库因其稳定的事务性和强大的查询能力被广泛应用,而NoSQL数据库则凭借其灵活性和水平扩展性受到关注。本文对比了两种数据库类型的特点,帮助开发者根据应用场景做出合理选择。SQL数据库遵循关系模型,适合处理结构化数据和复杂查询;NoSQL数据库支持多种数据模型,适用于非结构化或半结构化数据。SQL数据库在一致性方面表现优异,但扩展性较差;NoSQL数据库则设计之初便考虑了水平扩展性。SQL使用成熟的SQL语言,NoSQL的查询语言更为灵活。
432 0
|
前端开发 JavaScript
HBuilder实现App资源在线升级更新
这篇文章介绍了使用HBuilder实现App资源在线升级的流程,包括获取线上和本地版本号对比、检查更新、下载安装包、静默或用户触发安装以及重启应用。关键代码展示了如何比较版本、下载wgt文件及安装更新。注释提到仅同名文件被覆盖,manifest.json变化需整包升级。提供了一个DEMO下载链接。
711 0