SCCM Application Installation Workflow

The most common questions I receive from our client support team is how to troubleshoot why an SCCM deployment did not work. Depending on the installation there could be any number of errors. However, to start the process, they need to review the log files. When I tell them to look at the log files, I receive this blank look on their face. Below is my attempt to document the process flow through the logs. I cannot take credit for all this work, just how it is presented. I received most of the information from Adam Pazik and Kenneth. Links to their blogs are at the end of this post.

The Log Files

AppDiscovery.log Records details about the discovery or detection of applications on client computers

Problems with Detection Methods will be logged here.

AppIntentEval.log Records details about the current and intended state of applications, their applicability, whether requirements were met, deployment types, and dependencies.
AppEnforce.log Records details about enforcement actions (install and uninstall) taken for applications on the client.

Shows the installation command lines, the context for the install, any error codes

CAS.log Records details when distribution points are found for referenced content.
ContentTransferManager.log Schedules the Background Intelligent Transfer Service (BITS) or Server Message Block (SMB) to download or access packages.
DataTransferService.log Records all BITS communication for policy or package access.
LocationServices.log Records the client activity for locating management points, software update points, and distribution points. Look here for boundary assignment.

High-Level Flow of Information

App Flow chart

Gather application id, deployment type id’s, and content location id

  • Add the sms:debugview parameter to the Configuration Manager Console shortcut. This will add a new workspace in the console called Tools.
  • Open the SCCM Console
  • Select the Software Library Workspace
  • Open the Application Management node
  • Select Applications
  • Right-click on the application
  • Select “Show Object Detail”
  • This will open a new view in the “Tools” workspace.
  • Select the Properties tab
  • Select the CI_UniqueID row
  • Press Ctrl+C to copy the row. This will copy all contents of the row to the clipboard
  • Open Notepad and paste the information copied. We will need the Value to search the log files. This starts with the ScopeID.
    • CI_UniqueID        String        ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/Application_e3caf11a-d885-460c-b8a6-9f4d8561f9d1/1        
  • Press the back arrow on the under the ribbon to return to the application workspace.
  • In the bottom center pane, select the Deployment Types tab
  • Right-click on the deployment type you will monitor the deployment for.
  • Select Show Object Details
  • This opens the Tools workspace with the deployment type details.
  • Click on the Properties tab
  • Select the CI_UniqueID row
  • Press Ctrl+C to copy the row. This will copy all contents of the row to the clipboard
  • Open Notepad and paste the information copied. We will need the Value to search the log files. This starts with the ScopeID.
    • CI_UniqueID        String        ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b/1        
  • Select the ContentID row
  • Press Ctrl+C to copy the row. This will copy all contents of the row to the clipboard
  • Open Notepad and paste the information copied. We will need the Value to search the log files. This starts with the Content.
    • ContentId        String        Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1

Start Reviewing the log files

The above steps provided us with the information we need to mine information from the deployment logs. You will want to use the CMTrace.exe tool to review all log files. I will select the 7-zip application from Software Center to start the installation process to monitor.

  • Open the CMTrace.exe utility.
  • In the Open file dialog box, select the AppDiscovery.log, AppIntentEval.log, AppDiscovery.log, CAS.log, ContentTransferManager.log, and DataTransferService.log files. DO NOT click open yet.
  • Check the Merge Selected files checkbox.
  • Then click on the Open button.
  • Perform a find on the deployment type ci id in Component “AppDiscovery”

    Entering ExecQueryAsync for query “select * from CCM_AppDeliveryType where (AppDeliveryTypeId = “ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b” AND Revision = 1)”

    Performing detection of app deployment type 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)(ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, revision 1) for user.

    +++ MSI application not discovered [MSI Product Code: {23170F69-40C1-2702-1805-000001000000}, MSI Product version: ]

    +++ Did not detect app deployment type 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)(ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, revision 1) for S-1-5-21-3524099696-3524480935-564596544-1113.

  • Then switch focus to the “AppIntentEval.log” component. We are still searching on the deployment type CI ID

    No dependencies for DeploymentType ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b/1.

    DT id = ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/RequiredApplication_e3caf11a-d885-460c-b8a6-9f4d8561f9d1/1, technology = MSI

    ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b/1 :- Current State = NotInstalled, Applicability = Applicable, ResolvedState = Available, ConfigureState = NotNeeded, Title = 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)

  • Then back to the AppDiscovery component.

    ActionType – Install will use Content Id: Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1 + Content Version: 1 for AppDT “7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)” [ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b], Revision – 1

  • This is where the content request is made to the Content Access Service.
  • Now switch focus to ContentAccess component. (CAS.log file)

    Requesting locations synchronously for content Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1 with priority Foreground

    The number of discovered DPs (including Branch DP and Multicast) is 1

    Distribution Point=’http://somedomain.com/SMS_DP_SMSPKG$/Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1′, Locality=’SUBNET’

    **** Received request for content Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1, size(KB) 1694, under context S-1-5-21-3524099696-3524480935-564596544-1113 with priority Foreground.

    Submitted CTM job {FA884990-BD53-4894-91B7-878671A7C8F3} to download Content Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1 under context S-1-5-21-3524099696-3524480935-564596544-1113

  • The Content Access service submitted a Content Transfer Manager job. Now look at the ContentTransferManager component.

    Starting CTM job {FA884990-BD53-4894-91B7-878671A7C8F3}.

    Submitted CTM job {FA884990-BD53-4894-91B7-878671A7C8F3} to download Content Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1 under context S-1-5-21-3524099696-3524480935-564596544-1113

    CTM job {FA884990-BD53-4894-91B7-878671A7C8F3} entered phase CCM_DOWNLOADSTATUS_WAITING_CONTENTLOCATIONS

    Queued location request ‘{61D59DC3-0D1E-4793-926E-327534B59B2D}’ for CTM job ‘{FA884990-BD53-4894-91B7-878671A7C8F3}’.

  • Over to Location Services log

    Created and Sent Location Request ‘{61D59DC3-0D1E-4793-926E-327534B59B2D}’ for package Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1

    Calling back with the following distribution points

    Distribution Point=’http://somedomain.com/SMS_DP_SMSPKG$/Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1′, Locality=’SUBNET’, Version=’8692′, Capabilities='<Capabilities SchemaVersion=”1.0″><Property Name=”SSLState” Value=”0″/></Capabilities>’, Signature=’http://somedomain.com/SMS_DP_SMSSIG$/Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1.tar’, ForestTrust=’TRUE’, BlockInfo=’0′

    Calling back with locations for location request {61D59DC3-0D1E-4793-926E-327534B59B2D}

  • Back to ContactAccess (CAS.log)

    Location update from CTM for content Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1 and request {86FB5085-ADDD-47EE-A895-8939B3FC3F6A}

    Matching DP location found 0 – http://somedomain.com/sms_dp_smspkg$/content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1 (Locality: SUBNET)

  • Note in the above line the Matching DP Location Found 0, the 0 is the index value for the array of DP’s found. It does not mean no DPs were found.
  • The next part goes back and forth between the DataTransferService log and the ContentTransferManager logs.

    CTM job {FA884990-BD53-4894-91B7-878671A7C8F3} (corresponding DTS job {A3872B43-E9D2-4B2E-AC2B-99BEF5E4F174}) started download from ‘http://somedomain.com/SMS_DP_SMSPKG$/Content_7fc48b31-224e-4bfa-b643-a3c23c504ad1.1‘ for full content download.

  • The logs will show where in the CCMCache the content is saved to and if peer cache is used.
  • Now that the source files are downloaded, we go to the AppEnforce log.

    +++ Starting Install enforcement for App DT “7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)” ApplicationDeliveryType – ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, Revision – 1, ContentPath – C:\windows\ccmcache\2, Execution Context – Any

    Performing detection of app deployment type 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)(ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, revision 1) for user.

    +++ MSI application not discovered [MSI Product Code: {23170F69-40C1-2702-1805-000001000000}, MSI Product version: ]

  • The AppEnforce.log will show the command line that is run, the context it is run under, and the exit codes.
  • Still in the AppEnforce.log

    Matched exit code 0 to a Success entry in exit codes table

    Performing detection of app deployment type 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)(ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, revision 1) for user.

    +++ Discovered MSI application [AppDT Id: ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, Revision: 1, MSI Product code: {23170F69-40C1-2702-1805-000001000000}, MSI Product version: ]

    ++++++ App enforcement completed (1 seconds) for App DT “7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)” [ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b], Revision: 1, User SID: S-1-5-21-3524099696-3524480935-564596544-1113] ++++++

  • Once the software is installed, a request is made back to the App Discovery

    Entering ExecQueryAsync for query “select * from CCM_AppDeliveryType where (AppDeliveryTypeId = “ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b” AND Revision = 1)”

    Performing detection of app deployment type 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)(ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b, revision 1) for user.

  • AppIntentEval component to determine if the application is installed, per the detection method.

    ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/DeploymentType_39a8609a-812d-4aa1-9ab5-d07620f60e8b/1 :- Current State = Installed, Applicability = Applicable, ResolvedState = Available, ConfigureState = NotNeeded, Title = 7-Zip 18.05 (x64 edition) – Windows Installer (*.msi file)

    ScopeId_EC50924B-AE13-4D0B-B92C-F0950EB076D0/RequiredApplication_e3caf11a-d885-460c-b8a6-9f4d8561f9d1/1 :- Current State = Compliant, Applicability = Applicable, ResolvedState = Compliant, ConfigureState = NotNeeded, Title = ApplicationIntentPolicy

References:

https://blogs.technet.microsoft.com/manageabilityguys/2013/10/01/configmgr-2012-tracking-application-model-installations-on-clients/

https://deploymentparts.wordpress.com/2015/08/14/how-to-track-an-installation-through-client-log-files/

https://docs.microsoft.com/en-us/sccm/core/plan-design/hierarchy/log-files 

12 thoughts on “SCCM Application Installation Workflow

    1. Thanks for the quick reply. It’s readable on print, albeit still a bit blurry. If you have it in higher resolution than the 765×443 px that’d be amazing. If not, it’s still appreciated!

      Like

  1. I have seen a few of these guides over the years. This one, however, is light years ahead of the rest. Professionally documented and with the ‘deep dive’ information that’s often missing. Thanks for your work!!

    Like

  2. Hello Dawn Wertz. One word resume this article: terrific.
    OMG! I will print the chart and paste it on my wall 🙂
    Thank you very much!

    Like

Leave a Reply to Lacerda Cancel reply

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

WordPress.com Logo

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

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s