Configure SCCM Task Sequence Pre-Cache Content—Part 1. We use task sequences for bulk application changes or Operating system upgrades. The user starts the task sequence from the SCCM Software Center and waits for the content to download.
This delay always impacts the end-user self-service experience with the SCCM software center. Microsoft’s solution is “SCCM Task Sequence Pre-Cache Content.”
This feature is available starting with SCCM CB 1702. With the task sequence pre-caching feature enabled, installation is completed faster because the required contents are already cached on the local hard disk.
This series of posts is listed below: How to Configure SCCM Task Sequence Pre-Cache Content—Part 1 and Reporting of SCCM Task Sequence Pre-Cache Content—Part 2.
Table of Contents
Configure SCCM Task Sequence Pre-Cache Content – Part 1 Configuration Manager ConfigMgr – Benefits of SCCM Task Sequence Pre-Cache Content
We can schedule deployment as available during the night and allow at least 4 hr for the pre-caching process to complete.
Note 1: The task sequence Pre-Caching feature works only for deployments configured as “available.” Note 2: The pre-caching feature starts caching contents once the deployment available start date/time is reached.
- 1 – Reduce Task sequence run time.
- 2 – Allows you to pre-cache SCCM package contents during off-business hours.
- FIX KB5020276 Domain Join Hardening Changes using SCCM Task Sequence | 0xaac (2732) Error
- Install SCCM Client on Workgroup Non-Domain Joined Windows 11 PC
- FIX SCCM OSD Machine Domain Join Issue ldap_add_s failed: 0x35 0x216d
How Do You Enable SCCM Task Sequence Pre-cache Content?
Follow the below steps to enable the feature. Navigate to Administration > Updates and Servicing > “Features” console node. Right-click on “Task Sequence content Pre-Caching feature”.
How Do You Enable SCCM Task Sequence Pre-cache Content? |
---|
Select “Turn On”. Confirm by selecting “Yes“. If the Turn On option is not enabled on your console, then you need to enable “Consent to use Pre-Release features“ |
After enabling the feature, this change is replicated on all site hierarchy servers. You can verify smsdbmon.log. The “CM_UpdateFeaturesStatus” SQL table has been updated.
Modified trigger definition for Hierarchy Manager (CFD)[CM_UpdateFeaturesStatus_INS_UPD_HMAN]: table CM_UpdateFeaturesStatus(FeatureGuid) on insert,update, file CMF in dir C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CFD\
After installing the feature, re-open the SCCM console. Right-click Task sequence deployment and select properties.
Enable the check box “Pre-download content for this task sequence”.
Key Notes:
The pre-cache feature downloads all package contents referenced in the task sequence, except for the OS upgrade step. We will discuss this exception later in the post.
For example, The task sequence has 10 different driver packages to handle 10 hardware models. Each task sequence step is configured to install the driver based on hardware model conditions.
The pre-cache feature downloads all driver packages even though not all driver packages are applied to the system. Because the condition configured in each task sequence step gets evaluated only at run time.
Conditional pre-download is available only for the OS upgrade step. If the condition below is true, the pre-cache feature only downloads the OS upgrade package.
When writing this post, the condition can be based on 2 values (architecture and language ). In future SCCM releases, we can expect more supported conditions for the Task sequence pre-cache feature.
GitHub Link to get WMI query Task-sequence-Pre-Cache/WMI Query.sql at main · AnoopCNair/Task-sequence-Pre-Cache (github.com).
If the User starts the TS before all contents are pre-cached. TS will not wait for all contents to pre-cache. As shown below, TS will fall back to any of the 2 deployment options configured in your deployment.
So, it’s important to allow at least 5 hr. for all the contents to get pre-cached once the Task sequence is available for the user.
How Does SCCM Task Sequence Pre-Cache Content Work?
Following the logs, let’s analyze the SCCM client component workflow for pre-cache content.
- Verify policyagent.log to confirm whether the computer received the deployment policy.
- Search task sequence deployment ID in policyagent.log
Download of policy CCM_Policy_Policy5.PolicyID="DEP-CHQ20001-CHQ00001-6F6BCC28",PolicySource="SMS:CHQ",PolicyVersion="1.00" completed DTS Job ID:{91696C9D-FB85-4BD8-B163-E20475B3C8F7}
Review the log datatransferservice.log to confirm the completion of the DTS Job.
Once the above DTS job is completed, the Content access service(CAS) requests pre-cache package contents.
The content access service(CAS) verifies whether the SCCM cache has enough space to accommodate the package download. The SCCM client cache size should accommodate the content.
Received request for content CH000001.1, size(KB) 121237, under context System with priority Low. ContentAccess 1/11/2018 1:08:51 PM CacheManager: There are currently 0 bytes used for cached content items (1 total, 0 active, 1 tombstoned, 0 expired). ContentAccess 1/11/20181:08:51 PM CacheManager: Grooming cache, target free space size is 124146688 bytes, allow deletion of active items = 'FALSE'... ContentAccess 1/11/20181:08:51 PM CacheManager: There are currently 0 bytes used for cached content items (1 total, 0 active, 1 tombstoned, 0 expired). ContentAccess 1/11/20181:08:51 PM CacheManager: Goal free space size for groom operation is 124146688 bytes. cache already has 5368709120 bytes
The location services component will request a Distribution point list. You can verify this activity in locationservices.log. LocationServices component provided the Distribution point list for each package.
Distribution Point:'http://CM1.corp.contoso.com/SMS_DP_SMSPKGS/CHQOOOOS', Locality... Calling back with the following distribution points Distribution Point='http://CM1.corp.contoso.com/SMS_DP_SMSPKGS/CHQDOOOB‘, Locality... Calling back with locations for location request {0C09FC2C-E964-4F79-87AA-6CE6816FA782} Calling back with locations for location request {EBZ8A68C-C80D-4817-9A21 -EB4EC017C1 53}
ContentTranferManger component will start downloading the contents from the Distribution points list as shown below. Monitor ContentTransferManger.log to track CTM job status.
CTM job {78BC2A66-C473-4AED-8D86-ZD37D89FDAD9} entered phase CCM_DOWNLOADSTATUS_PREPARING_DOWNLOAD CTM job {CC8C1 B1 F- E322-4C36-8ABD-9AE51 6FBDEC} entered phase CCM_DOWNLOADSTATUS_PREPARING_DOWNLOAD CTM job {783C2A66-C473-4AED-8D86-2D37D89FDAD9} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA CTMjob {CC8C1 B1 F-E322-4C36-8ABD-9AE516F8D1EC} entered phase CCM_DOWNLOADSTATS_DOWNLOADING_DATA CTM job {FFBDBOZD-5E70-4F7E-947F-C9ASF2A95019} entered phase CCM_DOWNLOADSTATUS_REPARING_DOWNLOAD CTMjob {FFBDBOZD-5E70-4F7E-947F-C9A5F2A95019} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA CTM job {4BC9808F-1ACF-4AE8-A73C-B9FBOS1 AED9E} successfully processed download completion. CTM job {788C2A66-C47B-4AED-8D86-2D37D89FDAD9} successfully processed download completion. CTM job {CC8C1 B1 F-E322-4C36-8ABD-9AE516F8D1EC} successfully processed download completion. CTM job {FFBDBOZD-5E70-4F7E-947F-C9A5F2A95019} successfully processed download completion.
You can keep an eye on datatransfer.log in parallel. You can see the HTTP URLs accessed by the ContenTranferManager to download each file in the package from the Distribution Point.
UpdateURLWithTransportSettings():NEWURL-http:/cm 1.corp.contoso.com:80/SMS_DP_SMSPKGS/CHQ00002/sccm?/scepinstall.exe UpdateURLWithTransportSettings():OLDURL-http://cm1 .corp.contoso.com/SMS_DP_SMSPKG$/CHQ00002/sccm?/wimgapi.msi UpdateURLWithTransportSettings():NEWURLhttp://cm 1.corp.contoso.com:80/SMS_DP_SMSPKG$/CHQ00002/seem?/wimgapi.msi UpdateURLWithTransportSettings():OLDURL-http://cm1.corp.contoso.com/SMS_DP_SMSPKG$/CHQ00002/sccm?/x64 UpdateURLWithTransportSettingsQ:NEWURL-http://cm 1.corp.contoso.com:80/SMS_DP_SMSPKG$/CHQ00002/sccm?/x64
DataTransferManager marked as complete. Content transfer manager (CTM job ) marked as complete
- Finally, CAS verifies the Hash value for the downloaded package.
DTSJob {825979A2-ADD1-4A6A-A75ACFFSF91FC) in state 'Retrieved Data'. DTSJob {82597'1A2-ADD 1-4A6A-A546-75ACFFlfF91FC} successfully completed download. DTSJob {825979A2-ADD·1-4A6A-A 75ACFf BF91 FC} in state 'NotifiedComplete'. CTMJob {CC8C1B1F-E322-4C36-8ABD-9AE516F8D1EC} successfully processed download completion. DTSjob {B25979A2-ADD1-4AeA-A545-7SACFF8F91FC} has completed:Status :SUCCESS Download completed for content CHQ00002 under context System Hash verification succeeded for content CHQ00002.2 C\Windows\ccmache\3 CacheManager: ADD new caehe entry for id:CHQ00002 Version :2 Size :217159K RefCount:l LartRef Minutes : 0
Result for SCCM Administrator
4 Packages cached which are referenced in the task sequence as shown below. The user has yet to start the Task sequence from the Software center.
When writing this post, there is no SCCM native feature to find the Task sequence pre-caching status. In my second blog post 2, we will see how to achieve this.
We are on WhatsApp now. To get the latest step-by-step guides, news, and updates, Join our Channel. Click here. HTMD WhatsApp.
Author
Vimal has more than 10 years of experience in SCCM device management solutions. His main focus is on Device Management technologies like Microsoft Intune, ConfigMgr (SCCM), OS Deployment, and Patch Management. He writes about SCCM, Windows 10, Microsoft Intune, and MDT.
Hi, thanks for the post. It is great article!
I was really surprised that all packages already presented in th ccmcache folder. It is really nice.
I have a question:
If package already presented in the cache folder, I`ve changed one of them .Is package going to be updated before installing?
I didnt tested that scenario.
But i think it will download again.Each SCCM Package have a hash value associated.SCCM client will download new content if it observe any mismatch with the cached content and the actual source.
Hello Vimal
Thank you for sharing valuable post.
I have doubt about Pre-download WMI Condition,
I think condition for download is not checked in Task Sequence condition as you mentioned above.
For example :- (Select * from Win32_OperatingSystem where Locale = ‘0409’ and OSArchitecture = ’32-bit’)
for conditional download required Package ==> Data Source tab for matching criteria on the OS Architecture/Language
Could you please confirm?
Yes, SCCM client evaluates OS upgrade packages attribute to determine which content it downloads during pre-caching.
I think in your scenario you still need to edit the default WMI query and include appropriate locale or architecture based on your requirement.There has been lot of changes around pre-caching feature. At the time of writing options were limited.Hope u already referred below link.. https://docs.microsoft.com/en-us/configmgr/osd/deploy-use/configure-precache-content#bkmk_createpkg
Hi Vimal,
thanks for this very helpful post.
I’m experiencing strange results during my tests with SCCM 1906:
Sometimes a client starts downloading right after receiving the advertisement, sometimes it justs sits there for hours and doesn’t start downloading at all (nothing in ContentTransferManager.log).
The TS advertisement is shown in Software Center. Did you ever experience something like this?
Any ideas where to look?
I heard about this behavior for random systems in some forums
What happens if you remove the machine from collection.. refresh machine policy and then re add to collection ?
This works to me. Thanks Vimal
Thanks for a very informative post, I had a couple of question to follow.
1. Will this content download with ADAPTIVA for content download?
2. If the TS is deployed with content pre-caching, will this only be available after the content is downloaded or asap after deployment?
Hello Vimal,
We are trying pre cache option and we have deployed task sequence to collection, till here it is fine and users are installing it,
Now when we deploy to the collection and user receives policy and he will get popup “New Software available ” here users are checking in the software center and they are going and starting the task sequence without content gets downloaded
We are trying to suppress that “new software available” popup until all the task sequence content gets downloaded and once the content is downloaded users need to get that popup,
Please let us know if we can achieve this scenario
In reply to Uday Kumar, too late for him but possibly someone else will read. There may be another option but how I addressed this was to create two deployments.
Deployment one with all notices suppressed and also suppressed in the TS options. this deployment will silently download the content as is just a copy of the task sequence.
Deployment two is sent with the expected deployment options to allow messages etc. and display in software center.
You can use the cache reporting to know when you can send deployment two to the pre-cached computers.
It seems the feature Task Sequence content Pre-Caching feature”. is no longer available in CB