There are so many reasons for migrating your environment to ConfigMgr CB (current branch), one of them being the new content management feature – Win PE Peer caching. To me it’s important to understand what the feature is bringing to the table, and what it is not. Win PE Peer caching is introduced to save bandwidth by sharing content already present on your local network. Those who are familiar with the ConfigMgr ecosystem, know that solutions to support that has been around for years. Solutions like OneSite from Adaptiva, Nomad from 1E and custom BrancheCache from 2Pintsoftware. This blog post will describe where 3rd party solutions differ from Win PE Peer cache, and also dig a little deeper into what happens behinds the scenes when you configure Win PE Peer caching.
What are the 3rd party vendors bringing to the table?
3rd party vendors are bringing bandwidth control, content sharing and also the capability to turn a client operating system into a PXE host (thus allowing you to PXE boot without having a sever on the subnet). This blog post will not go into details between the different solutions or how they work. For a deep dive into bandwidth is preserved, check out this blog post from my colleague https://blog.ctglobalservices.com/hra/a-story-on-using-nomad-branch-and-network-impact/
This table is my take on the differences between Win PE Peer cache solution and 3rd party vendors.
|
Win PE Peer Cache |
3rd party solutions |
Content sharing on same network |
Yes |
Yes |
Packages |
Yes |
Yes |
OS Images |
Yes |
Yes |
Driver packages |
Yes |
Yes |
Applications |
No |
Yes |
Software Updates |
No |
Yes |
Bandwidth control |
|
|
Pre cache content |
Yes (see this post for additional info) |
Yes |
Bandwidth control |
Uses BITS |
Yes |
Cache Options |
||
Uses ConfigMgr Cache |
Yes |
Some vendors also have a unique vendor cache. |
Configuration |
|
|
Works out of the box |
Yes |
No (a server component and client is required, 2PintSoftware do use existing technologies like BranchCache and BITS) |
Reduce the ConfigMgr infrastructure |
Maybe* (not all content is supported) |
Yes (greatly reduces the infrastructure, by eliminating the need for most distribution points and secondary sites) |
Fault tolerance if master is down |
No (uses standard DP fall over policies) |
Yes will automatically fall over to the next peer |
Only Works in Win PE |
True (for other scenarios use BrancheCache) |
Works in full SCCM client and Win PE. |
Configure Win PE Peer Caching in ConfigMgr Current Branch
In a Win PE Peer caching environment, you will have a master (or multiple masters) and clients. In order to configure a master, you create custom client settings and deploy them to a collection:
- From the Administration workspace, select Client Settings and click Create Custom Device Setting on the ribbon.
- Name: WinPe Hosts
- Select the Windows PE Peer Cache setting.
- Configure Enable Configuration Manager Client in full OS to share content to Yes.
- Deploy the custom setting to a collection containing your future Win PE Peer Cache masters.
- You’ll see the new configuration being applied on the Win PE Peer hosts by reading the cas.log file on the client. In the illustration below, you’ll see information about checking firewall, starting the SuperPeerController main thread, configuring the Server URL and finally information stating the client is waiting for requests.
You configure client support by creating a collection variable. In this example I’ll be creating two variables on the All Workstations collection.
- Right click the All Workstations collection, select Properties and Collection Variables.
- Create a new collection variable:
- Name: SMSTSPeerDownload (The variable will instruct clients in the collection to use a local peer when downloading content)
- Do not display this value in the Configuration Manager console: Disable
- Value: True
- Create a new collection variable:
- Name: SMSTSPreserveContent (The variable will instruct clients in the collection preserve the content in the cache and use it for sharing)
- Do not display this value in the Configuration Manager console: Disable
- Value: True
How to prestage content
You can prestage content by using a new step in the task sequence. In the example below, I’ll prestage my Windows 10 image, configmgr package, USTM and Adobe Reader in the sccm agent cache.
- Go to Software Library, Operating Systems, right-click Task Sequences and select Create Task Sequence.
- Select Create a new custom task sequence and click Next.
- On the Task Sequence Information page, type Pre-cache and finish the wizard.
- Right click the newly created task sequence and select Edit.
- Click Add / Download Package Content.
- Select the packages you wish to download to the client cache. Consider adding the wim file, configuration manager client and other packages part of the task sequence.
- In Place into the following location, select Configuration Manager client cache and click OK.
- Deploy the task sequence to All Win PE Hosts (good idea is to deploy the task sequence without showing the progress bar.
- After a successful deployment, content will be in the client cache, but not installed on the client. In the illustration below, you can monitor the process by reading the cas.log file on the client.
Requesting and downloading content
A content request is a broadcast that is picked up by all Win PE Peer hosts on the subnet. You can monitor the process on the host by reading the cas.log (using cmtrace please). In the illustration below, you’ll see that my host is searching for the package in WMI, and returning a location to be used by the client.
- You can monitor the process on the Win PE Peer client by reading the smsts.log file in Win PE. Below you’ll notice some interesting things. The top arrow, not only show the number of hosts discovered, but also the priority of the hosts (Multicast first, then HTTP and SMB). In my example I have 2 Windows 10 HTTP Win PE Peer hosts. The second arrow clearly show what file is being downloaded (the wim file). Third arrow gives you the full URL to the download location.
What happens when the package is changed, but changes are not downloaded to the Win PE Peer host?
The Win PE Peer client always ask for a specific version of a content. When the Win PE Peer host receive the query, it will query WMI for the highest version of the package. If the package version does not match the version requested, the Win PE Peer cache host will not reply to the broadcast. Instead it will go back to waiting for requests. In the illustration below you can see the WMI query, not returning the requested package version.
I hope this article gave you a little insight to how easy it is to configure Win PE Peer cache.
More information about the Win PE Peer cache and the 3rd party vendors:
Win PE Peer cache – https://technet.microsoft.com/en-us/library/mt613173.aspx#BKMK_PeerCacheObjects
Adaptiva OneSite – http://www.adaptiva.com/
1E Nomad – http://www.1e.com/
2PintSoftware – http://2pintsoftware.com/
[…] L’autre en anglais mais qui compare cette fonctionnalité native avec des 3rd Party : ICI […]
[…] About WinPE Peer Caching in SCCM 1602 […]
How will the client gets applications and Windows updates since it’s not supported in Windows PE Peer cache ?
You can use brancheCache
“The Win PE Peer client always ask for a specific version of a content.”
How does the Peer client know which version to ask for, the Task Sequence? When the Peer host go back into the waiting state, will the Peer client get the package from the DP?
Also, your book is VERY helpful; thanks for writing it.
It will only look for the latest version as that is the one mentioned in the policy
Hi Kent,
Great article. I’ve implemented this, but am having some issues. I’m using a Win2k8R2 Domain Controller as the peer source. In the CAS.log it’s replying to the clients with the location of the content. However, when the client gets to the point of download, the CAS.log shows these errors:
CSuperPeerController::GetNAAInfo entered
GetUserNameExW failed for NameSamCompatible. Error 234 dec, (0x800700ea)
On the client, in SMSTS.log, it gets 401’s on the credentials then:
Download() failed. 80190191
It seems like the Network Access account can’t download the content. If I try and browse to the URL for content, it prompts for creds and nothing seems to work (even Domain Admin account).
Any ideas?
Thanks heaps
Hello, I’ve the same problem .. GetUserNameExW failed for NameSamCompatible. Error 234 dec, (0x800700ea) .. someone found a solution for that.
thanks.
Hi Kent,
in the past i learned, that a PXE DP can only reside on a windows server OS.
In our subnets are only clients. My question for WIN PE Peer client is as follows:
For a pxe OS Installation,
1.) a PXE Request to a central Distribution Point.
2.) and than, the win PE is served via win PE Peer
Is that possible?
PeerCache is Boundary, BranchCache is Subnet. If your focus is on PeerCache, then its best to have your DP on a different subnet.