Summary: How to configure custom reports on SCCM 2012.
Date: Around 2014
Refactor: 6 APril 2025: Checked links and formatting.
Environment:
Goal: Create a SCCM Custom Report subscription with custom dates. One of the whole previous month and one of yesterday and today.
I want to get the reports by email, so you need to setup the email server properties on the SQL Reporting Server. Read here and here for more information on how to do that, even though the links are for SQL Server 2017 they will get you going for SQL 2012 as well. Follow these steps to configure the email server:
Save the settings and exit the Reporting Services Configuration Manager.
SCCM comes with quite a few pre-configured reports. See here for more information on all available reports, and specifically the endpoint reports.
If you need to make adjustments to a report, never do that to the original report but save a copy under a different name and use that. However, I ran into a bug with SQL 2012 SP4 which caused the report builder unable to start.
Error:
Application validation did not succeed. Unable to continue.
Details error:
... * Activation of http://chlexm05/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application?ReportPath=/BERLIN/Macola/ActualVsStandardByItem resulted in exception. Following failure messages were detected: + File, interop.shdocvw.dll, has a different computed hash than specified in manifest. ...
Now there are two hotfixes from Microsoft that claim to solve this error: KB4091266 and KB4057116. Note that these are quite big software updates, and if you do not want to go through the entire process of patching and testing your SQL servers I recommend to implement the following quick workaround:
Now you can use Report Builder without a problem from SCCM
Below instructions are valid and tested on the Endpoint Protection Reports “Infected Computers” and “Antimalware Overall status and history”:
select DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) as StartDate, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), -1) as EndDate
select DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1) as StartDate, GETDATE() as EndDate
select DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -7) as StartDate, GETDATE() as EndDate
Now save everything so you can create a subscription (schedule) for the report.
See http://www.dataceptor.com/sql-tricks for more SQL queries regarding dates
You can now wait for the report to arrive.
To view all subscriptions, go to the Monitoring workspace and navigate to Reporting → Subscriptions