SCCM Software Distribution Troubleshooting






1.   Content Monitoring and Validation from Console

The below article provide details of content monitoring and validation from console.



2.   Reports

SCCM reports should be the first thing to check the software deployment status. By looking into the report you can determine the scope of failure such as large scale failure, location based failure or client specific issues. A large scale failure may be caused by an issue with package or programe while issue can be related with specific client if deployment failure rate is low and limited to few clients.

There are multiple reports available for each category.  All Software Distribution reports can be found in below folders under Monitoring > Reporting > reports.


·         Software Distribution – Collections
·         Software Distribution – Content
·         Software Distribuiton – Package and Program Deployment
·         Software Distribution – Package and program Deployment Status

As a Deployment Administrator, it’s advisable that you browse through all these reports and make yourself familiar so you can quickly refer them whenever required. For Example, you can refer to “Package and program deployment status messages for a specified client and deployment” to check the deployment status of specific deployment for specific machine. While another report “Status of a specified package and program deployment” can be referred to know overall status of specific deployment.  


3.   Log Files:


Reviewing client side logs are one of the most important step to quickly identify any possible issue with deployment. There are few log files which you should review when troubleshooting software distribution issue. A complete list of SCCM 2012 log files are available here.

While log files can be viewed in Notepad, there is a tool CMTrace in Configuration Manager that will simplify log review experience. This tool can be found under \tools folder. This tool can be used for real time monitoring of log file. You can found here more details about CMTrace and other tools which every Configuration Manager administrator should know.


·        Policyagent.log
When you make a change in the Configuration Manager console, the site server creates a policy to communicate the change to the client. The site server sends the policy to the management point and the client polls for policy at the interval configured in the Computer Client Agent properties. The SCCM client take appropriate actions as soon as a policy arrived. The Policyagent.log records policy download requests using the Data Transfer services. This log file help to troubleshoot policy request problems.

The entries similar to below one should be recorded in the log file policy download.
Download of policy CCM_Policy1, PolicyID=”ScopeID_D791533_4C64JH/Authlist_43b454f-aa453d”

If you do not see any activity in PolicyAgent.log for long time (may be couple of days) then check SCCM client health as it may not be healthy.

·         PolicyEvaluator.log
The PolicyEvaluator.log records the details of new policy settings. This log can help to troubleshoot policy override issues.

·         Execmgr.log
Execmgr.log provide the execution details of the advertised programs or updates status. This log file provide brief details such as command line for executed program and Exit code. By looking into the error carefully you can identify the issue quickly.
The Excemgr.log should include the below entry when a new policy for a package arrived on client. The presence of such an entry helps you to determine whether you have the latest policy for the new package populating the client.
Policy arrived for parent package PKG00001 Program Test Program1
When a policy is updated for a program which client received earlier, the following entries will be shown.
Policy is updated for parent package PKG00001 Program Test Program1
If package is not available on client machine then you will see the entry for package download request.
Requesting content from CAS for package PKG00001 version 1
The Execmgr.log shows download progress and completed status. The following entries should include in the log when package download start till completion.
Program Test Program1 change to state STATE_ADVANCED_DOWNLOAD content in progress
Execution Request for Package PKG00001 program Test Program1 state change from NotExist to AdanceDownload
Mandatory Execution requested for program Test Program1 and advertisement ADV00001
Successfully raised SoftDistWaitingContentEvent event for program Test Program1
Execution Request for package PKG00001 program Test Program1 state change from WaitingDependency to waitingcontent
Execution Request for Package PKG00001 program Test Program1 state change from WaitingContent to NotifyExecutinon

The further entries should include program path, command line and execution status.
Successfully selected content location C:\Windows\System32\CCM\Cache\PKG00001.1.System
Command line = “C:\Windows\system32\CCM\Cache\PKG00001.1.system\TestProgram1.bat
Raised Program Started Event for Advertisement: ADV00001, Package: PKG00001, Program: Test Program 1
Program Exit Code 0
Execution is completed for program test program1. The exit code is 0, The execution status is success.

·         CAS.log
The CAS (Content Access Service) maintains the local package cache, checks if it already has the content. If content is not present in the cache then CAS instructs ContentTransferManager to initiate the download. CAS will be notified again once download is completed. The below details should be found in CAS.log for each requests.
Successfully created download request for content
Matching DP location found 0
Download completed for content

·         Location services.log
The LocationServices.log records attempt to find management points and distribution points.  This log file can help to troubleshoot scenario where the client cannot find a management point or distribution point.
·         ContentTransferManager.log
ContentTransferManager is the one who determines how the content should be downloaded. When package is to be downloaded from Distribution point using BITS, the download request is handed over to DataTransferService.log:
·         Datatransferservices.log
The DataTransferServices.log records all Background Intelligent Transfer (BITS) communication for policy or package download. The entries related to package download can be found here.

4.   Deployment Errors:

The Execmgr.log record the success or failure information for all advertisements. The below information can helpful in troubleshooting the issue.

·         Exit Code
The Excecmgr.log record the exit code for all deployment. By understanding the exit code, you can move forward with troubleshooting in right direction.  For all success deployment the exit code will be 0.

Execution is completed for program test program1. The exit code is 0, the execution status is success.
To know the description of common exit codes you can use ‘net Helpmsg’ command from command prompt.

For Example, the deployment failed with Exit Code 1. As you see in below screen shot, the error code 1 error description is ‘Incorrect Function’. Most probably the issue should be with the command line you have provided in Program. So, you need to re-validate the command line.





Another example:






In fact, by understanding the error code and their description you can quickly move towards next troubleshooting steps.

You may not get the details of all Exit code using above command. However you can refer to Microsoft Documentation System Error Codes for complete list of error codes. There are custom error codes for Software Distribution which can be found here.

·         Program Failed with Runtime Exceeded Error:

The most common issues which leads to above failure reasons are following.

1.   The “Maximum allowed run time” set in program properties is too short for the installation to complete. The default time is 120 minutes and it should be fine with most of the deployment.











2. The program is not a silent install and it’s waiting for user input. This may happen due to error messages popup if install is not completely silent. If it’s silent install then try to install manually with the same command line which is used in the package program.

3.   There may be an issue with installation package which might be getting stuck in middle. Try to install the package manually to identify any possible issue with package.

4. Select "Allow users to interact with this program" checkbox in program properties and deploy to test machine, check if you are getting any prompt during installation.

·         Program is waiting for Service Window availability

Maintenance Windows provide administrators with a way to define a period of time that limits when changes can be made on the system that are members of a collection. You will see the similar details in Execemgr.log when a Service window is not available. You can also refer to ‘ServiceWindowsManager.log’ for more specific information about Maintenance Windows.

Succesfully raised SoftDistWaitingForServiceWindowEvent event for program Test Program1

Execution Request for advert ADV00001 package PKG00001 program Test Program1 state change from Ready to WaitingServiceWindow execmgr

To check all Maintenance Windows available for a client you can refer to “Maintenance Windows Available to a Particular Client” SCCM report.


·         Program waiting for content for long time

If you are seeing below message for long time then there may be an issue with package download. However review DataTransferServices.log to check if download is in progress.
Execution Request for package program state change from WaitingDependency to waitingcontent
Refer to the below article to know the details about Content Monitoring and validation

The below article provide good details about basic content deployment troubleshooting



·   Program failed with Exit Code 1603 – A fatal error occurred during installation

-The error code 1603 is a generic windows installer error code. This error indicates that a problem occurred during installation and there can be various reason behind failure. The error code 1603 is most difficult to check out.
The best option to troubleshoot error 1603 to use MSI verbose logging. You need to re-run the setup with verbose logging enabled. You can follow the similar steps listed below.

-Generate verbose log using below command. This command will create a verbose log file which offers a lot of information about the installation.

Msiexec /i \setup.msi /l*v c:\temp\msi.log

-      Open log file in a text editor such as Notepad and review carefully.
The below article describe few tricks which you can use to quickly identify failure reason from verbose log.




·   Error: Software Distribution Site Settings for the client are missing from WMI

The above error indicates that client has not yet received software distribution site setting. This may happen due to following reasons.

-      Check if client is healthy. You can review ccmexec.log to know client health status

-      An issue with WMI, Try to stop WMI service, rename %windir%\system32\wbem\repository folder and start WMI again.

-      Client has not received policy from Management Point. Cheek PolicyAgent.log to know if new policies are coming.


-      Check locationservices.log to know if client is able to locate a Management Point.



5.   References:

Troubleshooting SCCM Software Distribution

The below article briefly describe software distribution troubleshooting from package creation till client receive the deployment.


Troubleshooting Configuration Manager


Comments

Post a Comment

Popular posts from this blog

Powershell - List AD Organizational Unit and GPOs linked to them

Troubleshooting System Center Endpoint Protection (SCEP) Client