将 Endpoint Protection 和 Configuration Manager 数据集成到 Configuration Manager 2012 中的一个单一数据库内的一大优势在于其可简化自定义报表的生成过程。尽管我们总共提供了超过 400 个开箱即用的 System Center 2012 Configuration Manager 报表,但肯定有时您将需要自己的报表。

例如,我们提供了 6 个主要的开箱即用的 Endpoint Protection 报表,但是由于管理数据点和安全数据点中可用的数据量十分庞大,您无疑将希望根据您的组织需要而创建自定义的报表。我在下面将列举一个示例,以向您介绍如何使用可用的 System Center 2012 Configuration Manager 和 Endpoint Protection 数据、Report Builder 3.0,以及包含 SQL Reporting Services 的报表点来为反恶意软件上次扫描时间生成自定义的报表。现在马上进入正题。

入门知识

我们将介绍的示例是创建一个可显示快速反恶意软件扫描和完整反恶意软件扫描开始和结束时间的简单表格,并在其中包含一个基于日期的变量,因此您可看到该客户端的扫描日期早于您所指定的日期。此外,我们还将添加一个计算机名称和操作系统版本来展示跨 Configuration Manager 和 Endpoint Protection 视图联接数据的简便性。

创建报表的首个步骤是生成基本查询来派生数据。尽管您可在报表生成器中直接生成查询逻辑,但是我发现通过 SQL Server Management Studio 生成查询更为简单。这是因为 SQL Server Management Studio 中有更多的“活动空间”,而且如有需要,您可在编辑器中速查和使用图形设计查询以简化跨视图联接。我们将在该查询中联接三个不同的视图来获得计算机名称、操作系统和上次快速/完整扫描时间。关于使用视图和表格的对比,请注意,基于性能原因和为了在授予控制台相关权利的报表上服从 RBA,我们建议尽可能使用视图。

上次扫描时间的查询

SELECT
 
v_R_System.Name0 
as
 'Computer Name',
v_GS_OPERATING_SYSTEM.Caption0 
as
 'Operating System',
v_GS_AntimalwareHealthStatus.LastQuickScanDateTimeStart,
v_GS_AntimalwareHealthStatus.LastQuickScanDateTimeEnd,
v_GS_AntimalwareHealthStatus.LastFullScanDateTimeStart,
v_GS_AntimalwareHealthStatus.LastFullScanDateTimeEnd,
v_GS_AntimalwareHealthStatus.LastQuickScanAge 
as
 'Days since last quick scan',
v_GS_AntimalwareHealthStatus.LastFullScanAge 
as
 'Days since last full scan'
 
FROM
 
v_GS_AntimalwareHealthStatus 
INNER JOIN
v_R_System ON v_GS_AntimalwareHealthStatus.ResourceID =
v_R_System.ResourceID INNERJOIN
v_GS_OPERATING_SYSTEM ON v_R_System.ResourceID = v_GS_OPERATING_SYSTEM.ResourceID

*有关使用客户端数据生成其他自定义报表的另一条注释:您可在进行跨视图联接时始终使用 ResourceID

使用 Report Builder 3.0 创建自定义报表

借助 Report Builder 3.0*,您只需进行几个简单的步骤即可轻松创建该自定义报表,并将其发布为 Configuration Manager 报表查看。稍后我将介绍启动 Report Builder 3.0 创建 SRS 报表、联接到您的数据源、从上一步添加查询、自定义报表外观,并将报表发布到 SRS 的基本步骤。

注:有关 Report Builder 3.0 使用的详细内容,请参阅此 TechNet 文章。此文章旨在作为较高级别的入门指南,但是所引用的链接将为您提供更多示例,向您介绍利用该工具可进行的诸多惊人操作。

* Report Builder 3.0 现已推出 SQL 2008 最新版本。当用户从 Configuration Manager 控制台启动 System Center 2012 Configuration Manager 时,其将使用 Report Builder 2.0。但是二者的报表生成体验将十分类似。

  1. 从 Configuration Manager 报表点服务器的报表主页启动 Report Builder 3.0:

  2. 单击“新建报表”,然后单击“表或矩阵向导”。

  3. 创建一个数据集

      

  4. 在“数据源属性”对话框中选择一个新的数据源,然后选择您的 Configuration Manage 数据库服务器名称和 Configuration Manage 数据库。

  5. 在“设计查询”页面中选择“编辑为文本”。注意:如果您希望这些报表中的一个作为您自有的自定义报表的起始点,那么您也可从该页面打开一个现有的 Configuration Manager 报表。

     

  6. 粘贴您在 SQL Server Management Studio 中所创建的查询(或者您可直接导入 .SQL 或 .RDL 文件),单击红色 ! 来测试您的查询。

  7. 将以下 WHERE表达式添加到您的查询的末尾,这可让您在报表中传递一个日期变量,从而您可将该报表限制到自某个特定日期以后未执行快速扫描的计算机。

    WHERE DATEADD(day, 0, DATEDIFF(day, 0, 
    v_GS_AntimalwareHealthStatus.LastQuickScanDateTimeEnd)) <= @LastQuickScanDate

    WHERE DATEADD(day, 0, DATEDIFF(day, 0, v_GS_AntimalwareHealthStatus.LastQuickScanDateTimeEnd)) <= @LastQuickScanDate

  8. 再次单击红色 ! 来测试您的查询,并在系统提示时添加一个日期:

     

     

  9. 如果您的查询返回了预期的结果,则您可继续操作,单击“下一步”。如果您未看到结果,则返回 SQL 查询分析器,并确保您的查询确实可在此返回结果,和/或查看报表生成器在执行报表时所返回的任何错误。

  10. 在下一屏幕中,您排列作为您报表基础的字段。在示例中,行将按照“计算机名称”从各个计算机中派生,每个“计算机名称”的值将从诸如以下所示的其他查询行中生成。当完成这些操作后,请继续并单击“下一步”。

     

  11. 接下来,您将选择布局。对于类似于此示例的简单报告,由于它们并不会真正在此上下文中添加任何兴趣内容,因此您可继续并取消勾选“显示小计和总计”和“展开/折叠组”。取消勾选这些选项后,单击“下一步”。

  12. 现在您将看到设计屏幕,可在此进行诸如添加标题、展开列,以及添加其他内置字段(如分页和编号)等操作。为了让该报表变得更易于用户阅读,让我们在此进行一些简单的操作。首先,展开列,使用户能够读取完整标题。然后添加一个标题,例如“客户端上次运行快速扫描的时间:”然后由于我们拥有相应的能力,因此在标题旁添加一个控件来显示您在变量中所设置的日期。该控件将在系统运行报表以在报表标题中突出显示该值时,显示输入的变量日期字符串,因此如果系统导出该值,那么查看器将了解他们所查看内容的含义。

  13. 当您根据需要设置了格式之后,单击功能区下方的“运行”按钮,您将看到的报表如同管理员从报表查看器中启动的报表。

     

  14. 在该视图的变量框中输入一个日期(如 3/12/2012),并单击“查看报表”,系统将显示类似于以下的报表:

     

  15. 要发布报表,您只需(从功能区)返回设计视图,并保存报表。创建或选择一个文件夹,然后单击“保存”。

  16. 保存了报表之后,在您的浏览器中转到报表链接,您将看到所显示的新的自定义报表。仍请继续并启动试用。

 总结

这仅是介绍您可如何利用功能丰富的 Configuration Manager 和 Endpoint Protection 数据库来为您的组织创建自定义报表的一个简单示例。该数据库可生成成千上万个报表,因此您只需确定组织需求,并使用该流程来开始创建宝贵的报表。此外,您可使用报表生成器打开现有的 Configuration Manager 报表,并将其作为您希望在自有的自定义报表中使用的查询基础。报表生成器还可让您集成多个报表,以准确获得您希望在同一页面中显示的数据。因此,请创建一些出色的报表,并向大家展示您的报表。然后将其发布,以让大家都能获得其宝贵价值,并向您借鉴学习。最后在本篇博文中添加指向您的作品的链接。谢谢,并祝您好运!

--Jason Githens

本篇博文按照“原样”提供,且不提供任何担保和授予任何权利。