Troubleshooting Application Deployment in SCCM 2012 – Part II

Hi Friends

Welcome to part two of our application deployment series. In this post we will discuss client side application deployment troubleshooting. In part one, we had discussed server side application deployment. If you have not checked it, here is the link:

Let’s start by understanding the flow of application deployment.


First two steps are done at server side and I have discussed these steps in detail in my earlier post. Once you will create a deployment at server, policy will be created by Policy Provider component. You can check details in policypv.log.

Let’s concentrate at client side and start from point three.

Policy processing at client side (Point 3 and 4)

SCCM client polls its MP after a period of time defined in client policy. You may change the duration as per requirement.


Client request for policy reaches MP and the activity is logged in PolicyAgent.log. PolicyAgent_RequestAssignement component sends the request and along with request, client’s GUID, NetBIOS name and other information are also send.

2Once request reaches MP, latter will process the request. Since MP doesn’t store any policy hence it will fetch it from database and provide to client. Activities are logged in two logs:

MP_Policy.log: Records MP to database communication, including all new and
updated policy assignments and activity and client policy requests.

MP_GetPolicy.log: Records client policy request and reply information.

Important Tip

Once you open these log files, you won’t find much details. The same is case with most of the MP log files. To see detailed information you need to enable verbose and debug logging by the steps below.

The level of logging determines  how much detailed activities for  on the client and
Management Point (MP) will be logged.

For debug logging, stop the SMS Agent Host service; then create the HKLM\Software\
Microsoft\CCM\Logging\DebugLogging key. Add a new value under this key::

  • Value name: Enabled
  • Value: True
  • DataType: REG_SZ

Restart the SMS Agent Host service .
For verbose logging, change the value of Loglevel to 0 at HKLM\Software\Microsoft\
CCM\Logging\@Global\Loglevel . The @Global key globally affects all logging values, or you can set them on individual CCM threads.

Now MP has send the response (Policy) to client. So, lets discuss client side.

The ConfigMgr client uses the Root\CCM\policy namespace hierarchy to store and process policy settings retrieved from the management point. The client maintains separate namespaces for machine policy and user policy. During the policy retrieval and evaluation cycle the Policy Agent component of the client agent, downloads and compiles policy settings. Downloaded policies are stored in WMI instance of the CCM_SoftwareDistribution class in the Root\ccm\policy\<machine|user>\RequestedConfig namespace . You may use WBEMTEST to check WMI. Policy Agent activities are logged in policyagent.log.

Once policies are downloaded they are evaluated by Policy Evaluator component.  It updates policy information in the Root\CCM\policy\ {machine|user} \ActualConfig namespace. You can check policyevaluator.log to check the details. I suggest merge policyagent.log and policyevalutor.log in CMTrace tool for easier evaluation. I have discussed the way to merge multiple logs in CMTrace tool  in part 1 of this series.


Once policy for application deployment is applied, process of deployment will start. Let’ discuss the process now.

Application Deployment (Point 5)

Once application deployment policy is applied, a WMI class named CCM_ApplicationCIAssignment is created. All the application deployment instance can be checked here. I have 4 application deployments as you can see in the figure. I am highlighting one of them which we will use for tracking through logs. I have given figures sequential numbers for easier understanding of steps. Please note that I am using WBEMTEST tool for WMI exploration.


Once you click on instance you can check properties of application. The highlighted application in figure is Visio Viewer.

CCM Scheduler will pick the deployment and triggers notification to DCM Agent for activation. You may check scheduler.log for details.


DCM agent will receive the message and will create a CI agent job. Log for DCM agent is DCMAgent.log. CI Agent will take on from here. It will evaluate the CIs and will start downloading them. You may check CIAgent.log, CIDownloader.log, CIStore.log and CIStateStore.log for details.


Once CIs are downloaded, AppDiscovery component will start detection or discovery of application on client computer. You can check AppDiscovery.log for details.

1The report of detection and other details about CI will be logged as state message by DCMReporting component and its log is DCMReporting.log. AppIntentEval will check the requirements, dependencies and deployment type of application. Its log is AppIntentEval.log.

1AppEnforce will check the details of action ( install or uninstall) for application. It will prepare command line to execute for installation of application and will execute it and finally your application is installed. Details are in its log AppEnforce.log.


Here is summarized list of logfiles which you may check at client side in respect to application deployment:

  1. PolicyAgent.log
  2. PolicyEvaluator.log
  3. Scheduler.log
  4. DCMAgent.log
  5. CIAgent.log
  6. CIDownloader.log
  7. CIStore.log
  8. CIStateStore.log
  9. DCMReporting.log
  10. AppDiscovery.log
  11. AppIntentEval.log
  12. AppEnforce/log

Tip : Merge these log files in CM Trace tool for understanding the complete process.

At Management Point you may check:

  1. MP_Policy.log
  2. MP_GetPolicy.log

Additionaly you may check DataTransferService.log for BITS communication for policy download and LocationServices.log for MP and DP location. Both these logs are at client side.

Before we wrap up let’s discuss server side application deployment monitoring. Ofcourse, we can’t login to every client machine to check application deployment status. We will go to client side only in case if there is any error. So, how to find deployment status? In SCCM console, go to “Monitoring” tab and then check “Content Status”  to check distribution status to DP and “Deployments” for deployment status to clients.


You may additionally check reports too. There are number of preconfigured reports for application deployment.

So, here we complete our two part series on application deployment. I will see you soon with some other technical stuff. Till then good bye and “Happy Holi”.



13 thoughts on “Troubleshooting Application Deployment in SCCM 2012 – Part II

  1. Hi,

    Thank you for taking time and drafting these step by step detailed information, this is really helpful and to the point.
    I would appreciate if you can take time and post logs for OSD (PXE)


    1. Hello Sir,

      The way you explained the details about application deployment troubleshooting very impressive. Thank you very much for the sharing details.


  2. Hi
    your posts are very use full to us.
    can you post client installation with clear back end process and trouble shooting .


  3. Hi
    your posts are very use full to us,
    can you post the client installation with clear back end process and troubleshooting.


  4. Wow one of the excellent tips and troubleshooting process for beginners in SCCM. I searched in multiple websites and blog, but i could not find such a nice description and process flow like this. Also if you could guide us regarding package troubleshooting and log details, that would be helpful. Also could you please tell what is the diff between application deployment and package deployment and when to use these option.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s