Win PE Peer caching in ConfigMgr Current Branch

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 http://blog.coretech.dk/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:

  1. From the Administration workspace, select Client Settings and click Create Custom Device Setting on the ribbon.
    1. Name: WinPe Hosts
    2. Select the Windows PE Peer Cache setting.
    3. Configure Enable Configuration Manager Client in full OS to share content to Yes.
    4. Deploy the custom setting to a collection containing your future Win PE Peer Cache masters.

      image

    5. 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.

      image

You configure client support by creating a collection variable. In this example I’ll be creating two variables on the All Workstations collection.

  1. Right click the All Workstations collection, select Properties and Collection Variables.
  2. Create a new collection variable:
    1. Name: SMSTSPeerDownload (The variable will instruct clients in the collection to use a local peer when downloading content)
    2. Do not display this value in the Configuration Manager console: Disable
    3. Value: True
  3. Create a new collection variable:
    1. Name: SMSTSPreserveContent (The variable will instruct clients in the collection preserve the content in the cache and use it for sharing)
    2. Do not display this value in the Configuration Manager console: Disable
    3. Value: True

      image 

      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.

  4. Go to Software Library, Operating Systems, right-click Task Sequences and select Create Task Sequence.
    1. Select Create a new custom task sequence and click Next.
    2. On the Task Sequence Information page, type Pre-cache and finish the wizard.
  5. Right click the newly created task sequence and select Edit.
    1. Click Add / Download Package Content.
    2. 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.
    3. In Place into the following location, select Configuration Manager client cache and click OK.

      image 

    4. Deploy the task sequence to All Win PE Hosts (good idea is to deploy the task sequence without showing the progress bar.
    5. 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.

      image

      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.

      image

      When the client starts downloading content, you’ll also notice the Get requests in the cas.log file

      image

      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.

      image 

    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.

    image 

    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/


Comments (10):

  1. […] L’autre en anglais mais qui compare cette fonctionnalité native avec des 3rd Party : ICI […]

  2. Ben says:

    How will the client gets applications and Windows updates since it’s not supported in Windows PE Peer cache ?

  3. Kent Agerlund Kent says:

    You can use brancheCache

  4. LS says:

    “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.

  5. Kent Agerlund Kent says:

    It will only look for the latest version as that is the one mentioned in the policy

  6. NG says:

    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

    • Alessandro says:

      Hello, I’ve the same problem .. GetUserNameExW failed for NameSamCompatible. Error 234 dec, (0x800700ea) .. someone found a solution for that.

      thanks.

  7. Jörn Rink says:

    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?

    • Jonathan says:

      PeerCache is Boundary, BranchCache is Subnet. If your focus is on PeerCache, then its best to have your DP on a different subnet.

Leave a Reply