SCCM2016定制软件资产报表

SCCM是微软的企业级桌面管理产品,说是桌管,但其实在老王看来SCCM最能拿得出手的实际上是它的资产智能报表和符合性基线功能。
?

大家玩过SCCM的都知道,SCCM报表默认能统计上来的资产无非就是硬件信息,软件安装信息,许可信息。
?

统计软件的时候可以按照软件的维度,统计某集合下所有的已安装软件,通过报表钻取一级一级的找到安装了软件的计算机,计算机的硬件配置,IP,登录用户。
?
但是在我国企业信息项目永远都需要的就是定制,老板们需要简单一目了然
?
举个例子,有个需求,需要定义出一类非办公软件,在一张报表里面统计出有哪些计算机,安装了非办公软件,以及这些计算机的使用人。
?

得到这个需求后,如果你仔细看过每一张报表你会发现,看起来很简单的需求,但没有一张报表可以直接显示出来这些信息。而且怎样定义出来非标准软件也是个问题,如果你只是到处简简单单的了解一下,你是找不到怎么去定义这个东西的。
?
本篇文章老王就以这个需求为例,为广大itpro介绍一下如何去定义非办公软件,简单的找到我们需要的数据,以及如何在不开发的情况下的输出成报表。
?
?
在正式开始之前,我们需要补充一些基础知识
?
什么是WMI,WMI是微软提供的一个封装了Windows上面所有硬件软件信息资源的规范API接口,我们可以通过wmic命令,VBScript,powershell,C#,WQL语言去对WMI封装的资源进行查询,管理操作。
举个例子我们可以通过powershell调用wmi类,查询系统windows office的到期时间。

WQL是WMI特有的查询语言

可以通过wbemtest工具查找类,对WQL语言进行测试。

WQL类似于SQL语言,但语法仍存在不同之处,不可直接拿到SQLServer里面执行。

?
?

WMI和SCCM的关系
?
SCCM客户端代理通过WMI收集客户端信息,汇报给SCCM服务器
?
SMS Provider :在ConfigMgr 控制台和站点数据库服务器之间提供接口的WMI提供程序,默认安装完成主站点之后自动包括的一个组件,由于SCCM使用WMI(WQL语言),而SQL数据库运行的是SQL实例,可以简单理解为是通过SMS Provider将WQL翻译为SQL,最终实现SCCM和SQL之间的交互。
?

大家在SCCM控制台执行操作的时候,比较明显的两个地方,基于查询规则创建集合,监视里面创建查询的时候,我们通过图形界面点击的时候,在图形界面看到的语言显示的会是WQL,很多人以为是SQL语言,实际上我们控制台上面写的查询并不是实际的SQL,而是通过smsprod将wql转为sql语言最终去执行,事实上不仅仅是这个地方,很多个位置都是我们在SCCM控制台执行的操作后台都会通过smsprod这个组件实际帮我们转换成SQL执行。

?
OK,基础知识铺垫到位,下面开始完成我们的需求,要实现这个需求有两种方案,今天我们先说曲线救国的一种
?
这个需求首先我们需要定义出一类软件,这一些软件为非办公软件,先把这部分数据拿到。
?
打开SCCM控制台-监视-查询,查询是个好玩具,我们可以通过简单的向导,生成一个WQL查询,我们甚至不需要关注WQL语言怎么写,只需要知道我们想要的数据应该在哪找到就可以。

一,创建查询,定义需要包含在查询内的范围,本次我们选择设备集合

二,点击编辑查询语言,弹出查询向导,定义查询结果中,需要显示的列,这里有很多属性类大家可以多去看看找出自己需要的。

最终显示结果应该包括
已安装的应用信息类下面的显示名称属性
已安装的应用信息类下面的版本属性
系统资源类下面的名称属性(计算机名)
系统资源下面的上一个登录用户名属性

三,定义非办公软件,过滤只显示非办公软件的数据
?
听到这个需求的时候,我脑袋里第一时间想到的是通过软件标签来玩,定义一批软件标签,然后给一次性的给收集上来的软件按照标签打上,最终在按照标签统计报表。
?
但其实通过查询我们也可以实现完成这种需求,打开刚才的编辑查询语言,调出查询向导,编辑条件,这里有两种玩法,第一种条件是直接添加的方式,添加条件,条件类型为值列表,位置为已安装的应用程序,显示名称,基于显示名称作为判断条件,运算符选择属于,点击左下方的值,可以列出所有通过SCCM收集上来的客户端上面已经安装的软件,我们可以一个一个点击然后添加到右面。定义出一批非办公软件列表,然后点击确定保存。

点击查询设计界面的显示查询语言,可以看到通过我们在向导编辑后,自动生成的WQL语言,可以拷贝出来,以后直接导入复用。


四,执行查询结果,可以看到输出在界面上的数据

五,查询结果转换
到现在为止,我们所需要的数据已经拿到了,看到这里大家应该可以发现,查询的好处就是简单,方便,通过一个向导就可以直接帮我们生成想要的查询结果。这可能也就是一直保留WQL的一个原因,方便我们这些不能直接写SQL的itpro在图形界面执行查询,但是不完美的地方就是定义好的查询,只能在SCCM控制台点击运行这样查看,不能生成报表,所以看起来还是不太方便。
?
查询的语言还不能直接用来做出报表,原因就是SCCM报表使用的是SQL语言做的,而查询界面的查询结果是WQL语言
?

但是我们可以通过方法将WQL转成能用来做报表的SQL语言

SCCM有一个log叫smsprov.log,位于安装路径Program Files\Microsoft Configuration Manager\Logs里面,smsprov.log记录了我们在SCCM控制台执行的所有操作,以及背后的实际运作,例如我们推送软件的过程,界面上面执行WQL查询后台转换SQL的过程。
?

我们点击运行一次创建好的查询结果,然后通过cmtrace打开smsprov.log,可以看到后台实际上WQL转成SQL后的语句,语句可以直接拷贝交给开发,或者放到Report Builder制作报表。

六,制作报表
在SCCM控制台监视报表中创建一个报表,会自动呼叫出Report Builder窗口

?
添加数据源,使用共享连接或报表模型,浏览Reportserver目录下,找到SCCM报表目录中的数据源文件

添加凭据后测试连接,确保成功创建连接,点击确定。

添加数据集,选择使用嵌入的数据集,浏览已经添加的数据源,在查询窗口把从smsprov日志复制的转换后的sql语句粘贴进来

添加之后,点击刷新字段,如果没有报错,会在字段界面显示我们在查询中定义的四个列,如果这一步报错不能正常刷新字段,说明语句中可能包含错误。

可以改成更加直观的显示名

返回Report Builder首页,点击添加表,选择我们定好的数据集

将可用字段拖拽到值区域

点击下一步,选择报表颜色样式

点击完成,可以看见我们定制好的报表,可以通过插入图片,文字,进行编辑格式,编辑完成后,点击上方保存即可自动发布回SCCM

打开SCCM Report访问网页,可以看见我们刚才发布的报表,数据是实时更新的,可以计划生成,也可以转成其他格式输出。

至此我们通过第一种方法实现了需求,思路流程如下
?
1.通过自带查询功能曲线定义非办公软件
2.将查询获得的WQL语句转换为SQL语句
3.使用转换后的SQL语句创建Report报表
?
在通过查询定义条件时候,也可以在条件处,条件类型选择简单值,运算符选择类似于,可以通过模糊匹配出一类软件,如 所有名称%匹配游戏的软件,所有名称%匹配下载软件的,可以添加多个条件,多个条件之间会是or的关系,然后把WQL转换为SQL拿去使用。

select SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName, SMS_R_System.LastLogonUserName from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%游戏%" or SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%下载%"

?
希望可以通过我的这篇文章为大家抛砖引玉,把SCCM的报表功能更好的在企业运用起来,下篇我讲为大家介绍,如何通过为软件定义标识的方式区分出不同类别软件。

原文地址:https://blog.51cto.com/wzde2012/2485765

时间: 2024-08-29 20:50:58

SCCM2016定制软件资产报表的相关文章

使用SQL2012报表生成器自定义IT资产报表

本文将介绍如何通过SQL Server 2012 SP1的报表生成器自定义报表,为了更贴近实战,本文将自定义一张IT资产报表. 一.部署IT资产管理系统 1.本文使用微软SCCM2012R2(System Center Configuration Manager 2012 R2)作为IT资产管理系统,用来收集客户端的硬件信息.具体的部署过程因不是本文重点故略过,网上也有很多关于SCCM安装部署的资料,感兴趣的话可以自行查阅.不过需要注意的是在安装SQL Server 2012SP1时,必须安装报

SCCM 2016 客户端硬/软件资产收集 (二)

上文中,我们成功的添加了SCCM2016 的资产智能同步点,并开启了 软硬件的资产列表. 下面我们就继续进行优化部署. 我们在上文配置完同步点了之后,按照当时配置的同步计划时间,SCCM会自动的进行同步,我们也可以通过手动的方式进行同步. 右键"资产智能"--"同步"--"同步资产智能分类" ,这个手动同步过程 SCCM 2016 只允许12小时内执行一次! 大家还可以通过点击"编辑清单类"按钮来编辑我们需要同步收集的软件类型

定制软件开发市场分析|三大定制软件开发痛点|大大神整理

根据笔者的了解,如今定制软件开发行业并不景气,但是还是有大部分企业坚强的活着,前些天笔者也对接过一位定制软件开发公司的运营总监,也谈到了现在各大平台也各有政策. 一些平台需要交高昂的广告费,要不然就完全埋没在人群中,交的话利润又堪忧.还有几家需要抽取至少百分之二十的提成.利润也可想而知.根据笔者分析定制软件开发市场目前主要有以下三大问题! 行业发展趋势:定制软件开发行业已经火热数年,很多人都发现这个行业现在并不景气.并且林林种种的app如今覆盖了人们生活的各个方面,app市场已经趋于饱和.如果没

定制软件的应用特点

定制软件是 根据用户的要求设计软件,开发过程遵循软件工程的规范,提供新建系统的方案设想,并进行可行性分析.在程序编码前进行系统的概要设计和详 细设计,在程序编制结束后 进行软件测试,交付使用时,可对用户有关人员进行操作培训,并提供软件正常运行后常规维护和功能扩充开发.定制软件的应用特点体现在以下几个方面: 1.针对性强 每一个软件的开发都要经过细致的系统分析,针对不同企业的情况,编制最适用的程序.在编写软件的过程中,可以将管理者的最新管理思路或者最科学的管理模式融入到软件的数学模 型中,从而大大

软件资产的定义

今天开始正式尝试写博文,一在记录,二在总结. 最近,单位要进一步加强软件资产的管理.资产管理部门征求我的意见,什么是软件资产? 粗略用度娘搜了一下,没有发现满足要求的,于是自己在与同事的研究下,提出以下软件资产的定义,力求准确.全面,以满足管理现状.请各位看官斧正. 软件资产,作为无形资产的一种特殊资产,安装于单位各种信息处理设备(如服务器.计算机等)上,发生了采购.更新或维护成本,并经使用后可产生直接或间接经济效益的软件,其可不依附于某项固定资产而仍能被有效使用.

7 款顶级开源 BI(商务智能)软件和报表工具

在这个信息化时代,每分每秒都产生海量数据.在海量数据中,挖掘出有用的数据,并且能以较人性化.直观的方式展示这些数据,变得尤为重要.本文将介绍 7款顶级开源 BI(商务智能)软件和报表工具,用于商业数据的分析处理,希望对您有所帮助. BIRT BIRT(Business Intelligence and Reporting Tools) 是由 IBM在 2004年开源的基于 Eclipse 的报表系统,它主要是用在基于Java与J2EE的Web应用程序上.BIRT主要由两部分组成:一个是基于Ecl

SCCM 2016 客户端硬/软件资产收集 (一)

在前面的文章中,已经和大家一起探讨了如何部署SCCM2016以及后面的一些客户端配置.除了我们经常用到的软件分发和操作系统安装以及补丁分发以外,部分企业还经常会使用到SCCM的资产收集功能. 用这个功能,大家可以轻松的收集.分析.管理我们的客户端软硬件的一些资产情况,从而有效的对整个用户IT使用环境进行一个合理的规划. 今天我们就来讲一下如何通过SCCM 2016 来对客户端的软硬件进行收集. 首先,被收集信息的客户端必须要安装了SCCM configuration manager 客户端,就是

Python 脚本学习笔记(四) 定制业务质量报表

一.使用XlsxWriter模块生成Excel表格 安装XlsxWriter模块 pip2.7 install xlsxwriter 官网:http://xlsxwriter.readthedocs.org/ 常用方法说明: Workbook(filename [ options ])用于创建一个workbook对象 创建一个Excel文件 workbook = xlsxwriter.Workbook('chart.xlsx') add_worksheet(sheetname)用于添加一个工作表

vpay定制软件开发 开发平台15天出系统

近期迅速走进大家视野的Vpay是什么究竟是什么,有人说vpay是一个APP,有人说,是一个支付手段,接近一点的会说是一个模式,那究竟是什么模式?拆分?还是虚拟币?其实严谨来讲Vpay是基于区块链技术开发的手机APP支付多功可以钱包,主打无国界支付零手续费,以及主流虚拟货币交易平台.电子钱包扫码支付.是一款带有消费奖励的多功可以网络支付工具. vpay软件模式平台开发-- 价值传输中的价值是多层次的,可以理解为是否需要确认.是否需要接收等的信息.可以是微观的,比如是否确认支付或者收到付款,是否确认