Last week, I tried my hands on the Client Health Check and shared my findings Here. This week, I continued my exploration and here are my findings.
When we install the SCCM Client agent on a machine, CCMEVAL.exe is automatically copied over in the C:\Windows\CCM location. While installing SCCM Client, we can use CCMEVALINTERVAL and CCMEVALHOUR switches as well.
Specifies the frequency when the client health evaluation tool (ccmeval.exe) runs. You can specify a value from 1 through 1440 minutes. If you do not specify this property, or specify an incorrect value, the evaluation will run once a day.
Specify the hour when the client health evaluation tool (ccmeval.exe) runs. You can specify a value between 0 (midnight) and 23 (11pm). If you do not specify this property, or specify and incorrect value, the evaluation will run at midnight.
Based on the values in the switches mentioned above a Scheduled Task is created on all SCCM Clients. If you do not use these switches then the evaluation will run once a day at 12 AM (midnight) + Random Time.
If in case the machine is powered off at the scheduled time, then this task will run as soon as the machine is powered on.
CCMEVAL.exe performs the multiple checks and remediates as and when required. These checks are mentioned in CCMEVAL.XML. Some of the common checks are:
1. Verify if WMI Service Exists.
2. Verify/ Remediate WMI Service Startup Type
3. Verify/Remediate WMI Service Status
4. WMI Repository Integrity Test
5. Verify BITS Exists
6. Verify/Remediate BITS Startup Type
7. Verify/Remediate BITS Service Status
8. Verify/Remediate Windows Update service startup type
9. Verify/Remediate Windows Update service status
There are few more checks that it does.
For my testing today, I created a Group Policy which disables the SMS Agent Host Service (though probably you are not going to see such a group policy in production environment) and applied it on the OU which had my test machines. Also I even revoked Everyone’s right to Start/Stop the Service, so that no one could Start or Stop the Service.
Then once the group policy was applied on the client machine, I manually initiated the CCMEVAL.exe to see what happens.
Over here, we can clearly see that it failed to verify if the SMS Agent Host Service exists and it failed with error code 5 (Access Denied). Other than this, we can also see that few other evaluation tasks did not run because the tasks they were dependent on failed.
Once this evaluation was complete, I checked the ConfigMgr Console to see what all is shown over there. So we go to ConfigMgr Console > Monitoring > Client Status > Client Check. Over here we get graphical view which gives summary of Client Checks.
So now, I can see that there is 1 machine which failed the Client Check. if we click on the Red/Green Area of the graph, it takes us to a Temporary Monitoring Collection. I clicked on the Red Area and it took me to a collection named “Clients that failed client check from “All Desktop and Server Clients”
So we can see that there is one machine which failed the Client Check. At the bottom on the screen, I clicked on Client Check Detail Tab
So now, I can see that “Verify SMS Agent Host service exists” task failed with the error “Access is Denied” and this caused 3 other evaluation tasks to fail because they were dependent on the first task. Pretty Nice Thing!!
We can even configure alerts based on Client Checks. For this, I opened the properties of the collection my client is a part of and went Alerts Tab.
Click on Add
I selected the option “Client check pass or no results for active clients falls below threshold (%)”. After clicking OK it took me back to the Properties of the Collection.
Now, we get an option to select the Severity of the Alert and SLA. I selected “Warning” as he Severity and 90 as the SLA. So whenever the Client Check Fail Percentage falls below 90%, I’ll get an alert in the console. Now, if we go to Monitor > Alerts. We can see that an alert has been created.
So overall, Client Health looks pretty impressive and it can save hours of work. Managing SCCM Clients has always been a cumbersome task. CCMEVAL.exe goes a long way in fixing some very common issues with SCCM Clients. It helps in diagnosing and remediating some common issues automatically (on a daily schedule), though some issues might still need manual intervention. But anyways, introducing CCMEVAL.exe in SCCM 2012 is nice step towards easing up the pressure to remediate the clients on SCCM Administrators. I’ll keep exploring more and will keep sharing my findings.