This report is a PowerShell script that dynamically generates an overview of client health in your Configuration Manager environment and sends it as an html-styled email. It is intended to be run as a scheduled task to give regular visibility and to help identify any issues. It can be used in conjunction with my Excel-based Configuration Manager Client Health Report, which gives more detailed information.
The script can be downloaded from here.
The script has no command-line parameters to make it easier to run as a scheduled task, however there are some parameters which you need to set in the Parameters region of the code (at the top).
Enter your Configuration Manager SQL server name (and Instance name if applicable), and your ConfigMgr database name.
These are the emails parameters such as To, From etc.
The report calculates certain client health indicators as a percentage and displays this in a kind of progress bar to give easy visibility. The colour of the progress bar is determined by the thresholds. The default thresholds are:
90% + | Green | Good
80% – 90% | Amber | Warning
Below 80% | Red | Potential Problem!
In addition, there are separate thresholds defined for Hardware Inventory, Software Inventory and Heartbeat (DDR) health status, as the values here may require some adjustment based on your own environment. These are the defaults:
85% + | Green | Good
70% – 85% | Amber | Warning
Below 70% | Red | Potential Problem!
Adjust these thresholds as you need in the Parameters code region.
Client Health Indicators
The following indicators of client health are used in the report:
Discovered Systems with Client Installed
All discovered systems in your environment that have the ConfigMgr client installed.
All active ConfigMgr clients. The active status is determined by the evaluation periods set in your Client Status Settings in ConfigMgr.
Active Clients Health Evaluation
Active clients that have passed their built-in client health evaluation.
Active Clients Heartbeat (DDR)
Active Clients that are active for heartbeat discovery.
Active Clients Hardware Inventory
Active Clients that are active for hardware inventory data.
Active Clients Software Inventory
Active Clients that are active for software inventory data.
Active Clients Policy Request
Active Clients that are active for a policy request.
The list of client versions for active systems including the count and percentage.
Systems with No Client
Discovered systems that do not have the ConfigMgr client installed. The list includes those where a Windows or other operating system has been detected, and those that have a last logon timestamp within the last 7 days, indicating activity.
Windows Client Installation Failures
Windows systems where the ConfigMgr client has failed to install. This can be for various reasons so they are grouped together by error code and description. A high number of “the network name cannot be found” errors may indicate that many of these discovered systems are not actually active on the network. Some systems report error code 0 (success) but if they are included in this list then the client is not actually installed and functioning.
Computers Not Rebooted
Active systems grouped by the last bootup time. Not all active systems may be present in this list, but most of them should be. The last bootup time is taken from the current hardware inventory data for the system in the database.
Computers that are not being rebooted regularly will sooner or later have issues, especially with Software Update compliance reporting, where many software updates are not considered installed until the system has been restarted.
Client Status Settings
These are the Client Status Settings as defined in your Configuration Manager console. These thresholds are used by ConfigMgr to determine client activity / inactivity.
Running as a Scheduled Task
To run as a scheduled task, use a command like the following in the task:
Powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File “<path>\New-CMClientHealthSummaryReport.ps1”