{"id":21697600,"url":"https://github.com/mem-zone/mem.zone-dashboards","last_synced_at":"2025-04-12T12:21:18.414Z","repository":{"id":136573752,"uuid":"233585521","full_name":"MEM-Zone/MEM.Zone-Dashboards","owner":"MEM-Zone","description":"Microsoft Configuration Manager SRS Dashboards","archived":false,"fork":false,"pushed_at":"2024-08-14T15:20:23.000Z","size":772,"stargazers_count":24,"open_issues_count":2,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-14T16:38:00.243Z","etag":null,"topics":["configmgr","configurationmanager","dashboard","ssrs","ssrs-reports"],"latest_commit_sha":null,"homepage":"https://MEMZ.one/Dashboards","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MEM-Zone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-13T11:59:28.000Z","updated_at":"2024-08-14T15:03:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c3d4082-1f27-4c1d-bb64-4e5576a5a5f1","html_url":"https://github.com/MEM-Zone/MEM.Zone-Dashboards","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MEM-Zone%2FMEM.Zone-Dashboards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MEM-Zone%2FMEM.Zone-Dashboards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MEM-Zone%2FMEM.Zone-Dashboards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MEM-Zone%2FMEM.Zone-Dashboards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MEM-Zone","download_url":"https://codeload.github.com/MEM-Zone/MEM.Zone-Dashboards/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565182,"owners_count":21125435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configmgr","configurationmanager","dashboard","ssrs","ssrs-reports"],"created_at":"2024-11-25T19:28:31.937Z","updated_at":"2025-04-12T12:21:18.392Z","avatar_url":"https://github.com/MEM-Zone.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Release version][release-version-badge]][release-version]\n[![Release date][release-date-badge]][release-date]\n[![Issues count][issues-badge]][issues]\n[![Commits since release][commits-since-badge]][commits-since]\n[![Chat on discord][discord-badge]][discord]\n[![Follow on X][x-badge]][x]\n\n# MEM.Zone Dashboards\n\nThis is a solution of dashboards and reports, for Microsoft Endpoint Configuration Manager.\n\n`_Dashboard - Software Updates` dashboard is navigable, independent of `Software Update Groups` and comes with an array of filtering options and sub-reports. All sub-reports can be run standalone.\n`Bitlocker - Compliance by Collection (MBAM)` report is a standalone complete solution for monitoring Bitlocker (MBAM) compliance and non-compliance reasons.\n`Bitlocker - Compliance by Collection` report is a standalone complete solution for monitoring Bitlocker compliance, key upload and non-compliance reasons.\n`Operating System - Version Compliance by Collection` report is a standalone solution for monitoring Feature Update or Windows Version Compliance.\n`Operating System - Windows 11 Readiness by Collection` report is a standalone solution for checking Windows 11 Upgrade Readiness.\n\nThe installation can be done manually or via the included PowerShell installer.\n\n## Main page\n\nSee [main](https://MEMZ.one/Dashboards).\n\n## Latest release\n\nSee [releases](https://MEMZ.one/Dashboards-RELEASES).\n\n## Changelog\n\nSee [changelog](https://MEMZ.one/Dashboards-CHANGELOG).\n\n## Help\n\nSee [help](https://MEMZ.one/Dashboards-Help).\n\n## Credit\n\n* Adam Weigert [`ufn_CM_GetNextMaintenanceWindow`](https://social.technet.microsoft.com/wiki/contents/articles/7870.sccm-2007-create-report-of-upcoming-maintenance-windows-by-client.aspx)\n\n## Dashboards and Reports\n\n* _Dashboard - Software Updates (Main Dashboard Report)\n* Bitlocker - Compliance by Collection (MBAM)\n* Bitlocker - Compliance by Collection\n* Operating System - Version Compliance by Collection\n* Operating System - Windows 11 Readiness by Collection\n* Site - Alerts\n* Software Update - Compliance by Collection\n* Software Update - Compliance by Device\n* Software Update - Scan Status by Collection\n* Software Update - Update Point Sync Status\n\n## Navigation Tree\n\n```bash\n.\n+-- (D) _Dashboard - Software Updates\n    +-- (C) Device Update Compliance\n    |   +-- (R) Software Update - Compliance by Collection\n    |       +-- (R) Software Update - Compliance by Device\n    |\n    +-- (C) Missing updates by Classification\n    |   +-- (R) Software Update - Compliance by Collection\n    |       +-- (R) Software Update - Compliance by Device\n    |\n    +-- (C) Device Update Agent Scan States\n    |   +-- (R) Software Update - Scan Status by Collection\n    |\n    +-- (C) Overall Update Groups Compliance\n    |\n    +-- (C) Top 5 Devices with Missing Updates by Classification\n    |   +-- (R) Software Update - Compliance by Collection\n    |       +-- (R) Software Update - Compliance by Device\n    |\n    +-- (T) Critical Alerts\n    |   +-- (R) Site - Alerts\n    |\n    +-- (T) Last Successful Synchronization Time\n        +-- (R) Software Update - Update Point Sync Status\n+-- (R) Bitlocker - Compliance by Collection * Bitlocker (MBAM)\n+-- (R) Bitlocker - Compliance by Collection * Bitlocker\n+-- (R) Operating System - Version Compliance by Collection\n+-- (R) Operating System - Windows 11 Readiness by Collection\n\n## Legend\n'()'  - 'to' or 'from' navigation element\n'(D)' - Dashboard\n'(R)' - Report\n'(C)' - Chart\n'(T)' - Text\n```\n\n## Preview (Not up-to-date)\n\nThis preview is not up-to-date, it represents version 2.0.0. A new preview will be available shortly.\n\n[![](https://s3.ioan.in/Screen-Shot-2020-01-16-at-18.01.39/Screen-Shot-2020-01-16-at-18.01.39.png)](http://www.youtube.com/watch?v=MOHxb8me4IM \"MEM.Zone Dashboards\")\n\n## Prerequisites\n\n### Discovery\n\n* `l` additional user and device discovery attribute\n* `co` additional user and device discovery attribute\n\n\u003e**Notes**\n\u003eRun the user and device discovery after adding the `l` and `co` attributes.\n\n### Software\n\n* Microsoft Endpoint Management Configuration Manager (ConfigMgr) with Windows Update Services (WSUS) integration.\n* Microsoft SQL Server Reporting Services (SSRS) 2017 or above.\n* Microsoft SQL [Compatibility Level](https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15) 130 or above.\n\n### SQL User Defined Functions (UDF)\n\n* `ufn_CM_GetNextMaintenanceWindow` helper function (Optional)\n\n### SQL SELECT Rights for smsschm_users (CM Reporting)\n\n* `ufn_CM_GetNextMaintenanceWindow`\n* `fnListAlerts`\n* `vSMS_ServiceWindow`\n* `vSMS_SUPSyncStatus`\n\n\u003e**Notes**\n\u003e You can find the code that automatically grants SELECT rights to the functions and tables above in the `perm_CMDatabase.sql`  file.\n\n## Installation - Automatic\n\nUse the provided PowerShell installer. You can find the standalone repository for the installer [here](https://MEMZ.one/Install-SRSReport-RELEASES).\n\n```PowerShell\n## Get syntax help\nGet-Help .\\Install-SRSReport.ps1\n\n## Typical installation example\n#  With extensions\n.\\Install-SRSReport.ps1 -ReportServerUri 'http://CM-SQL-RS-01A/ReportServer' -ReportFolder '/ConfigMgr_XXX/SRSDashboards' -ServerInstance 'CM-SQL-RS-01A' -Database 'CM_XXX' -Overwrite -Verbose\n#  Without extensions (Permissions will still be granted on prerequisite views and tables)\n.\\Install-SRSReport.ps1 -ReportServerUri 'http://CM-SQL-RS-01A/ReportServer' -ReportFolder '/ConfigMgr_XXX/SRSDashboards' -ServerInstance 'CM-SQL-RS-01A' -Database 'CM_XXX' -ExcludeExtensions -Verbose\n#  Extensions only\n.\\Install-SRSReport.ps1 -ServerInstance 'CM-SQL-RS-01A' -Database 'CM_XXX' -ExtensionsOnly -Overwrite -Verbose\n```\n\n\u003e**Notes**\n\u003e If you don't use `Windows Authentication` (you should!) in your SQL server you can use the `-UseSQLAuthentication` switch.\n\u003e PowerShell script needs to be run as administrator.\n\u003e If you have problems installing the SQL extensions run the script on the SQL server directly and specify the `-ExtensionsOnly` switch. If this still doesn't work check out the [`Manual Installation Steps`](#Create-the-SQL-Helper-Function).\n\n## Installation - Manual\n\nUpload reports to SSRS, update the datasource, grant the necessary permissions and optionally install the helper function.\n\n### Upload Reports to SSRS\n\n* Start Internet Explorer and navigate to [`http://\u003cYOUR_REPORT_SERVER_FQDN\u003e/Reports`](http://en.wikipedia.org/wiki/Fully_qualified_domain_name)\n* Choose a path and upload the three report files.\n\n\u003e**Notes**\n\u003e Reports must be placed in the same folder on the report server.\n\n### Configure Imported Report\n\n* Replace the [`DataSource`](https://joshheffner.com/how-to-import-additional-software-update-reports-in-sccm/) in the reports.\n\n### Create the SQL Helper Function\n\nThe `ufn_CM_GetNextMaintenanceWindow` is needed in order to display the next maintenance window.\n\n* Copy paste the `ufn_CM_GetNextMaintenanceWindow` in [`SSMS`](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-2017)\n* Uncomment the `SMS region` and change the `\u003cSITE_CODE\u003e` in the `USE` statement to match your Site Code.\n* Click `Execute` to add the `ufn_CM_GetNextMaintenanceWindow` function to your database.\n* Copy paste the `perm_CMDatabase.sql` in [`SSMS`](https://docs.microsoft.com/en-us/sql/ssms/\n* Click `Execute` to add the necessary permissions to your database.\n\n\u003e **Notes**\n\u003e You need to have access to add the function and grant SELECT on `ufn_CM_GetNextMaintenanceWindow`, `fnListAlerts`, `vSMS_ServiceWindow` and `vSMS_SUPSyncStatus` for the `smsschm_users` (ConfigMgr reporting).\n\u003e If the `ufn_CM_GetNextMaintenanceWindow` is not present you will get a 'Missing helper function!' instead of the next maintenance window.\n\u003e To resolve the error codes, or get more info, just hover over the table cell.\n\n[release-version-badge]: https://img.shields.io/github/v/release/MEM-Zone/MEM.Zone-Dashboards\n[release-version]: https://github.com/MEM-Zone/MEM.Zone-Dashboards/releases\n[release-date-badge]: https://img.shields.io/github/release-date-pre/MEM-Zone/MEM.Zone-Dashboards\n[release-date]: https://github.com/MEM-Zone/MEM.Zone-Dashboards/releases\n[issues-badge]: https://img.shields.io/github/issues/MEM-Zone/MEM.Zone-Dashboards\n[issues]: https://github.com/MEM-Zone/MEM.Zone-Dashboards/issues?q=is%3Aopen+is%3Aissue\n[commits-since-badge]: https://img.shields.io/github/commits-since/MEM-Zone/MEM.Zone-Dashboards/latest.svg\n[commits-since]: https://github.com/MEM-Zone/MEM.Zone-Dashboards/commits/master\n[discord-badge]: https://img.shields.io/discord/666618982844989460?logo=discord\n[discord]: https://discord.gg/ZCkVcmP\n[x-badge]: https://img.shields.io/twitter/follow/ioanpopovici?style=social\u0026logo=x\n[x]: https://x.com/intent/follow?screen_name=ioanpopovici","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmem-zone%2Fmem.zone-dashboards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmem-zone%2Fmem.zone-dashboards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmem-zone%2Fmem.zone-dashboards/lists"}