Insider's Guide to Troubleshooting Client Content Download in Configuration Manager 2007

Insider's Guide to Troubleshooting Client Content Download in Configuration Manager 2007

  • Comments 14
  • Likes
[Today's post had been contributed by Bhaskar Krishnan] 

Software distribution in Configuration Manager 2007 starts with creating a package and ends when the package content installs on the client. However, there are quite a few steps in between and the content download process is usually where customers encounter most problems. Here are some examples from the TechNet forums:

This blog post offers a troubleshooting guide for customers to diagnose some of the frequently encountered issues relating to client content download problems.  It outlines the scenario, then takes you through how to track the various processes involved from when the client downloads policy to when the client installs the software.

  • Step 1: Tracking the Advertisement on the Client
  • Step 2: Tracking the Content Location Request on the Client
  • Step 3: Tracking the Content Location Response on the Management Point
  • Step 4: Identifying the Client Boundary and How this Affects Content Location and Download
  • Step 5: Tracking the Content Download
  • Step 6: Troubleshooting BITS

This scenario assumes that the package has been successfully distributed to a standard distribution point, an advertisement for this package is targeted to a collection, and for troubleshooting purposes, debug logging is enabled on both the client and the management point.  For instructions how to configure debug logging, see http://support.microsoft.com/kb/833417.

When client policy is triggered, clients in the targeted collection get the advertisement.  If you need instructions to initiate client policy, see How to Initiate Policy Retrieval for a Configuration Manager Client.

For more information about the log files mentioned and their locations, see List of Log Files in Configuration Manager 2007.

 

Step 1: Tracking the Advertisement on the Client

Start with the log file execmgr.log on the client and search for the advertisement ID. You should see references to the advertisement ID in this log that looks similar to the following:

<![LOG[CExecutionManager::HandleMessage received message: '<?xml version='1.0' ?>

          <SoftwareDeploymentMessage MessageType='Execution'>

              <AdvertisementID>CAR20000</AdvertisementID>

              <PackageID>CAR00003</PackageID>

              <ProgramID>TestProgram</ProgramID>

              <HistoryLocation>Machine</HistoryLocation>

          </SoftwareDeploymentMessage>'

 

Step 2: Tracking the Content Location Request on the Client

After confirming that the client has received the advertisement, open the log file LocationServices.log on the client. If the advertisement requires content to be downloaded, the client asks its management point for a list of URLs where this content is available. The LocationServices.log file logs this content location request sent by the client. Search for this by using the PackageID value that was referenced in execmgr.log.  It will look similar to the following:

ContentLocationRequest : <ContentLocationRequest SchemaVersion="1.00"><Package ID="CAR00003" Version="1"/><AssignedSite SiteCode="PS2"/><ClientLocationInfo LocationType="SMSPackage" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1" AllowFileStreaming="0"><ADSite Name="CorpHQ"/><IPAddresses><IPAddress SubnetAddress="A.B.C.D" Address="A.B.C.E"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>

 

Step 3: Tracking the Content Location Response on the Management Point

After receiving this content location request, the management point responds with a content location reply, containing a list of URLs. You can use the log file MP_Location.log file on the management point to track both the request (ContentLocationRequest xml segment) and the response (ContentLocationReply xml segment).

When the management point returns a valid list of URLs for the client to download the content, it will look similar to the following:

MP LM: Message Body : <ContentLocationRequest SchemaVersion="1.00" ExcludeFileList=""><Package ID="CAR00003" Version="1"/><AssignedSite SiteCode="PS2"/><ClientLocationInfo LocationType="SMSPackage" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1" AllowFileStreaming="0"><ADSite Name="MyADSite"/><IPAddresses><IPAddress SubnetAddress="A.B.C.D" Address="A.B.C.E"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>

MP_LocationManager      10/14/2009 10:52:08 AM        4768 (0x12A0)

UID not found       MP_LocationManager      10/14/2009 10:52:08 AM        4768 (0x12A0)

MP_GetContentDPInfoUnprotected (CAR00003,1,PS2,SMSPackage,00000000)
MP_LocationManager      10/14/2009 10:52:08 AM        4768 (0x12A0)

WriteContentDPInfo        MP_LocationManager      10/14/2009 10:52:08 AM        4768 (0x12A0)

MP LM: Reply message body: <ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags="0"/><Sites><Site><MPSite SiteCode="PS2" MasterSiteCode="PS2" SiteLocality="LOCAL"/><LocationRecords><LocationRecord><SMBPath Name="\\[ServerName]\SMSPKGC$\CAR00003"/><URL Name="http://[ServerName/SMS_DP_SMSPKGC$/CAR00003" Signature="http://[ServerName]/SMS_DP_SMSSIG$/CAR00003.1.tar"/><ADSite Name=""/><IPSubnets><IPSubnet Address=""/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>6221</Version><Capabilities SchemaVersion="1.0"/><ServerRemoteName>NOVA42306.NOVA42304DOM.net</ServerRemoteName><DPType>SERVER</DPType></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply>          MP_LocationManager  10/8/2009 2:42:56 PM        5408 (0x1520)

When the management point has no locations for the client to download the content, it will look similar to the following:

No Locations found.     MP_LocationManager  10/14/2009 10:52:08 AM    4768 (0x12A0)

MP LM: Reply message body: <ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags=""/><Sites><Site><MPSite SiteCode="PS2" MasterSiteCode="PS2" SiteLocality="LOCAL"/><LocationRecords/></Site></Sites></ContentLocationReply>MP_LocationManager          10/14/2009 10:52:08 AM    4768 (0x12A0)

If you see "No Locations found" like this in the MP_Location.log, confirm that the package is successfully installed on the distribution points by using the log file distmgr.log on the site server.

 

Step 4: Identifying the Client Boundary and How this Affects Content Location and Download

In the example of the MP_Location.log showing the management point returning a valid list of URLs for the client to download the content, it has SiteLocality="LOCAL", which identifies the client as being within the fast boundary of the site and hence the locality of the client is considered "local".  The two other values for the SiteLocality attribute are Remote and Fallback:

  • Remote identifies the client as being in a slow and unreliable boundary
  • Fallback identifies the client as not belonging to any boundary

When the client is located within a slow and unreliable boundary of the site, the ContentLocationReply looks similar to this:

ContentLocationReply : <ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags="0"/><Sites><Site><MPSite SiteCode="PS1" MasterSiteCode="PS1" SiteLocality="REMOTE"/><LocationRecords><LocationRecord><SMBPath Name="\\[ServerName]\SMSPKGC$\CAR00003\"/><URL Name="http://[ServerName]/SMS_DP_SMSPKGC$/CAR00003/" Signature="http://[ServerName]/SMS_DP_SMSSIG$/CAR00003.1.tar"/><ADSite Name=""/><IPSubnets><IPSubnet Address=""/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>6221</Version><Capabilities SchemaVersion="1.0"/><ServerRemoteName>[ServerName]</ServerRemoteName><DPType>SERVER</DPType></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply>          LocationServices        10/14/2009 2:01:23 PM     2592 (0x0A20)

If the client is within a slow and unreliable boundary and you want it to install software, ensure that the advertisement is configured with the following option enabled: "Download content from distribution point and run locally". The default setting for an advertisement when clients are within a slow and unreliable boundary is "Do not run program".

Note:  There might be valid reasons why clients in slow and unreliable boundaries should not install software. This setting applies to all clients identified as being in a slow and unreliable boundary and cannot be configured for individual clients.  If you do change the setting, be aware that it will impact potentially many clients.  For more information, see Decide Whether Clients Should Download Content If They Are on a Slow or Unreliable Network Boundary.

When SiteLocality="FALLBACK", the resulting behavior is the same as if the client is on a slow and unreliable boundary. The content location reply in this case looks something like this:

ContentLocationReply : <ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags="0"/><Sites><Site><MPSite SiteCode="PS1" MasterSiteCode="PS1" SiteLocality="FALLBACK"/><LocationRecords><LocationRecord><SMBPath Name="\\[ServerName]\SMSPKGC$\CAR00003\"/><URL Name="http://[ServerName]/SMS_DP_SMSPKGC$/CAR00003/" Signature="http://[ServerName]/SMS_DP_SMSSIG$/CAR00003.1.tar"/><ADSite Name=""/><IPSubnets><IPSubnet Address=""/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>6221</Version><Capabilities SchemaVersion="1.0"/><ServerRemoteName>[ServerName]</ServerRemoteName><DPType>SERVER</DPType></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply>          LocationServices        1/11/2010 10:59:55 AM     2448 (0x0990)

 

Step 5: Tracking the Content Download

The client attempts to download content from the first distribution point listed in the content location reply. This is logged in ContentTransferManager.log on the client, with an example being as follows:

CTM dumping locations returned by Location Service:          ContentTransferManager   10/8/2009 2:42:56 PM       3204 (0x0C84)
Source: 'http://[ServerName]/SMS_DP_SMSPKGC$/CAR00003' Locality: Local Version: 6221 Capability: <Capabilities SchemaVersion="1.0"/>Signatures: http://[ServerName]/SMS_DP_SMSSIG$/CAR0000.1.tar' ContentTransferManager   10/8/2009 2:42:56 PM       3204 (0x0C84)
Source: '\\[ServerName]\SMSPKGC$\CAR00003' Locality: Local         Version: 6221 Capability: <Capabilities SchemaVersion="1.0"/>Signatures: ''          ContentTransferManager   10/8/2009 2:42:56 PM       3204 (0x0C84)

Then check DataTransferService.log on the client to see if a job has been created to download the files to the client. The log entry looks like this:

DTSJob {BC1A0EAB-A1D7-48BE-AD1E-CFE85F63C1B0} created to download from 'http://NOVA42306.NOVA42304DOM.net/SMS_DP_SMSPKGC$/CAR00003' to 'C:\Windows\system32\CCM\Cache\CAR00003.1.System'.          DataTransferService 10/8/2009 2:42:56 PM       3204 (0x0C84)

Subsequent log entries look like the following:

Execute called for DTS job '{BC1A0EAB-A1D7-48BE-AD1E-CFE85F63C1B0}'.  Current state: 'PendingDownload'.     DataTransferService 10/8/2009 2:43:07 PM    3788 (0x0ECC)
...

Starting BITS download for DTS job '{BC1A0EAB-A1D7-48BE-AD1E-CFE85F63C1B0}'.       DataTransferService 10/8/2009 2:43:07 PM       3788 (0x0ECC)

The last line above indicates content download from a BITS-enabled distribution point (the configuration option Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS on the ConfigMgr Distribution Point Properties: General tab). Note that if the BITS download fails, the content download will fall back to using SMB and the download of files can then be monitored by using the FileBITS.log file.

 

Step 6: Troubleshooting BITS

If the content is being downloaded using BITS, the download process might stall under various circumstances. The bitsadmin tool is very useful in troubleshooting the status of content download. For example:

  • bitsadmin /list /allusers
    Use this command to find the job ID that's relevant to your troubleshooting task, because you will need this for other bitsadmin commands. This command lists all the BITS download jobs that are currently in progress.  From this list, identify the job related to your package ID, and note the job ID.
  • bitsadmin /getinfo jobid
    Use this command to get more information about a particular BITS job.  From the output, if you notice that the download has stopped on any one particular file or directory, use the following bitsadmin command to manually download the file as a test to see if it works: bitsadmin /transfer MyJob /download /priority normal [http://remote-file-url] [SysDrive]\LocalFileName

It's typical for the download to stall on one particular file or directory.  The following lists some frequently encountered issues and resolutions.

Please post your comments on this blog post and let me know if you would like to see similar troubleshooting posts for software distribution and other areas.  I will try to address questions as soon as possible.

- Bhaskar Krishnan

This posting is provided "AS IS" with no warranties, and confers no rights.

 

 

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Very nice guide. I'd love to have one like it on Software Updates (from release to WSUS synch to final installation). (slobber)

  • Fantastic post.  Led me straight to my problem with IIS blocking certain file types and directories.  Many thanks.

  • excellent troubleshooting guide!

    I would like to know how the task sequence for OSD behaves when the SiteLocality property equals REMOTE?

    Can an OSD task sequence run over a boundary that is configured as slow?

  • Yes task sequence deployments also have the setting to use "remote" DPs on slow networks and if you configure that it should work for clients on slow boundaries.

    Hope this helps.

    Thanks,

    Bhaskar

  • Excellent guide!  I have been beating my head against the wall trying to figure out why some of my BDP file transfers kept failing.  The BITS IIS error issues (particularly the file type issue) helped me solve the problems.  Wish this was documented as part of the SCCM configuration, though...

  • Good information. Thanks for the post. I have been getting an absolutely NO from Microsoft Tech support about the Task sequence in SLOW links. He says it is sporadic, unsupported & not tested.Can you please help me to provide more information on your comments how is the behavior of TS on SLOW links. I was having an issue with advertising TS over SLOW links. Packages are not downloaded at all or it takes long time to download.

    Thanks

    Sridhar

  • Sorry, about step 3 I don't find, in my file  MP_Location.log., the body xml as reported in artcle.

    any suggestions

    thanks

    Mario

  • Sorry, about step 3 I don't find, in my file  MP_Location.log., the body xml as reported in article.

    any suggestions

    thanks

    Mario

  • mario, you need to turn on verbose logging to be able to see detailed information in the logs.

    support.microsoft.com/.../833417

  • Just a comment on your Step 6: Troubleshooting BITS section, in Win 2003 SP2 support tools, the command is bitsadmin /info {jobid} (not /getinfo) .It is also useful to use bitsadmin /geterror {jobid}

  • Excellent article for troubleshooting sccm software distribution.

  • Excellent Artical,it was what i have been serchuing for long time ,Bhaskar i need the following flow to know very well as above propably you help me out.

    Software deployment Proceess,Patch Deployment Process,Os Deployment Process,Client Installtion Process,make my self stronger in SCCM Trouble Shooting i need above .

    thanks

    in Advanced

    :)

  • Excellent Guide,

    It's very much usefull guide to know, how the backround process runnning after distribution.

  • Does anyone know of a similar guide for SCCM 2012? There ARE differences, although the filenames are the same