Enabling BranchCache in SCCM Quickly and Easily

,

A few months ago, I posted on Twitter about my success with deploying BranchCache. That post sort of blew up, and somehow I ended up offering to write a blog post about it… I have seen a lot of blogs about setting up BranchCache, however, most of them end up using something outside of the built-in tools that ConfigMgr provides. This post will focus on setting up BranchCache using only the built-in solutions in ConfigMgr. BranchCache is very powerful and can be configured at a much deeper level than what ConfigMgr provides out of the box, however, I didn’t feel that I needed that level of configuration for my environment. I should also mention that this is literally my first blog post, so please, be gentle!

The Post that Brought Me Here

 

What is BranchCache?

BranchCache is a technology built-in to Windows since Windows 7 and Server 2008, it is a peer-to-peer technology designed to reduce the workload on distribution servers by allowing clients to share content between themselves. BranchCache is a very powerful technology with many options, but what really motivated me to set it up in my environment was how simple it is to turn on in ConfigMgr. Again, BranchCache has many more advanced settings and options than what I mention here, but those are not required to have a BranchCache setup that significantly reduces the load on your distribution points and network infrastructure.

 

PeerCache?

Example of BranchCache and PeerCache working together

Before getting into how to configure BranchCache, a few quick words on a similar technology, PeerCache. PeerCache is an SCCM (not Windows), technology that functions in a similar way to BranchCache, however there are a few differences:

  • PeerCache uses the SCCM content store for it’s content on the client machine
  • PeerCache content is free to be shared outside the client’s subnet (but won’t cross to different Boundary Groups)
  • PeerCache requires the client to be reachable by it’s FQDN
  • PeerCache works in an SCCM distributed WinPE with little to no extraconfiguration
  • PeerCache SuperPeers should be carefully selected to ensure the best results

I am not going to go over the configuration of PeerCache in this article, the targeting of SuperPeers and other options makes it a bit more cumbersome to set up. However, both BranchCache and PeerCache can be set up at the same time, and having both enabled can lead to even less downloads coming from your distribution points and less traffic over the WAN.

 

How to enable BranchCache using SCCM

Enabling BranchCache in an SCCM Environment is easy, and consists of 2 main steps: Enabling it on the Distribution Points, and enabling it for clients.

Enabling BranchCache on a Distribution Point

Enabling BranchCache on Distribution Points

First, you will want to enable BranchCache on at least one distribution point. I started with turning it on for just one distribution point in my environment. After seeing good results, I enabled it on the rest of the Distribution Points. To enable the BranchCache setting on a distribution point, you can do the following:

  1. Open up the ConfigMgr Console
  2. Head to the “Administration” tab and click “Distribution Points”
  3. Right click and select “Properties” on the Distribution Point where you want BranchCache enabled
  4. In the “General” tab, check the box for “Enable and configure BranchCache for this distribution point”, then click “Apply” and “OK”

Enabling BranchCache on ConfigMgr Clients

Once BranchCache is enabled on at least one Distribution Point, you can turn it on for your ConfigMgr clients.

Enabling BranchCache in Client Settings

The easiest way to configure BranchCache for your clients is through Client Device Settings. Because we are configuring BranchCache through Client Settings, the configuration can be rolled out as quickly or slowly as you want. For my environment, I tested a small subset of systems before rolling it out everywhere. Within a week of rolling out BranchCache everywhere, I was seeing huge amounts of data being shared through BranchCache. If you have concerns about congestion from Wi-Fi devices sharing their content (I received a few questions on this, but have not seen any issues myself), you can exclude, for example, all laptops from the collection that BranchCache is enabled on.
To turn on BranchCache for your clients, do the following:

  1. Head to the “Administration tab in the ConfigMgr Console
  2. Open “Client Settings” and either right click and select “Properties” for the appropriate Client Settings you want to modify or create a new set of Client Settings. (I started by creating a new set of settings, and eventually moved the BranchCache configuration to the Default Settings)
  3. Put a check on the “Client Cache Settings”, then navigate to the “Client Cache Settings” page that appears.
  4. Set the following settings on the “Client Cache Settings” page:
    1. Configure BranchCache – Yes
    2. Enable BranchCache – Yes
    3. Maximum BranchCache cache size (percentage of disk) – 10 is the default, choose whatever amount is good for your environment.
    4. If you want other Client settings to manage the cache size, make sure to set “Configure Client Cache Size to “No” here
    5. Click OK to accept these settings
  5. Right click the client settings you just created and select “Deploy”
  6. Choose the device collection to deploy these settings to
  7. You are done! Now it is time to watch the data savings!

 

How to tell if BranchCache is working?

The easiest way to check that BranchCache is actually working is right in the ConfigMgr Console! Head to “Monitoring” -> “Distribution Status” -> “Client Data Sources”. From there you can see where clients are downloading from based on Boundary Group. After BranchCache was enabled in my environment, I simply checked this page daily to see how well things were working out.

Note: You may have to turn on the “Client Peer Cache” feature in “Administration” -> “Updates and Servicing” -> “Features” in order for the Client Data Sources dashboard to show up (Thanks to Bert in the comments for pointing this out!).

Content Distribution View in the SCCM Console

 

If you want to ensure the client setting is set on your clients, the following command run in an admin powershell session on a client will be able to tell you that:

Get-WmiObject -Namespace root\ccm\policy\machine -class ccm_superpeerclientconfig

 

Andrew Jimenez

Twitter: @AndrewJimenez_

ConfigMgr Guides, Resources, and References

, , ,

ConfigMgr Guides, Resources, and References

As a relative newbie to the whole IT professional thing, one of the first things I learned was that there’s a near infinite amount of things I still need to learn and that Google was my very best friend in the field. While that’s still true 7 years later, I probably wouldn’t be where I am today without the guidance of the pathfinders who are generous enough and willing to share their wisdom online. This post is about some of the resources I’ve found along the way. The goal is to help navigate some of the vast amount of resources available to a ConfigMgr Admin, new or veteran.

Communities

I’m a very big fan of how the ConfigMgr community is always ready to share how they get things done. One of my favorite ways of learning is talking to other ConfigMgr admins who’ve done what I want to do and have an opinion on it. I think it’s a sign of a healthy product when the development team is actively interacting and engaging with the community; there are a few ways to do that.

Twitter

I’m pretty new to Twitter myself, but it is a veritable smörgåsbord of information and networking opportunities. I use TweetDeck to keep my eyes peeled on the #ConfigMgr, #SCCM, #PowerShell, #CMPivot, and #MMSMOA conversations. Through watching those hashtags, you’ll get a feel of who to follow to keep up to date with the latest information. Have any recommendations for hashtags that you’re following? Leave a comment below!

WinAdmins Slack

The WinAdmins Slack is a Slack group that covers a wide array of topics that a typical Windows Systems Administrator might be interested in conversating about. Some of these channels include topics like Active Directory, ConfigMgr, Exchange, O365, PowerShell, Windows OSD, and a ton others. The Slack also includes channels that aren’t IT related, so it’s a good chance to talk to others with similar hobbies or passions. If you’re worried about participation, the ConfigMgr channel has almost 5500 members alone!

To join the WinAdmins slack, you can e-mail winadmslack@gmail.com for an invite.

Reddit

Reddit is a social news aggregation site with sub-communities, also known as Subreddits. These are good places to post general questions or look for opinions on a decision. There are a few that come to mind when it comes to ConfigMgr.

/r/SCCM – One of the first ways I ever interacted with the ConfigMgr community was through this subreddit, and it’s how I found the WinAdmins slack. This subreddit has participation from the ConfigMgr development team, several superstar MVPs and thousands of other ConfigMgr admins, making it a great place to share information, or ask a question.

/r/SysAdmin – A more general subreddit, but this community is certainly the largest IT subreddit I follow. You’ll often find very useful posts about news or the latest disasters spawned by the most recent Patch Tuesday.

ConfigMgr UserVoice

Arguably one of the best ways to interact with the product team is by submitting your ideas on how to improve ConfigMgr. There are a few ways to accomplish that officially; the UserVoice and the Smiley Faces in the console, pictured below. The product team is responsive to feedback via both of these avenues, and it shows they really care about their work.

Conferences

I’m a very introverted individual, and though I suspect this is a fairly common trait amongst IT professionals, conferences are still one of my favorite things to get to do. It’s a great opportunity to be in proximity with potentially thousands of like individuals who share either a similar passion or similar experiences. Also, it’s a great opportunity to fangirl over some of the rockstars who’ve helped shape your career…

For ConfigMgr, there are three general conferences that I’m aware of or have been to, that I would recommend to anyone who’s able to go.

MMS – Midwest Management Summit

I’ve only been to MMSMOA once so far, but far and away, it was one of the most valuable experiences of my career. It’s really cool to feel like a part of a community in the various online groups that are available, but it was never more real for me than when I was at MMSMOA in 2018. I was exposed to more than I can absorb, was overwhelmed the entire time, and learned a ton of helpful, useful information, and I’d do it again in a heartbeat. This is a real-world conference, with real-world solutions, and the sessions are not recorded; this encourages participation with the audience and speakers, and it’s great. Deep, and pretty wide.

MMS has since started spin-off editions in order to be available to those who aren’t able to make it to the main event, and they put work in to make sure it’s worth your time.

You can read more about MMS here, and on Twitter @mmsmoa.

Microsoft Ignite

The big event. Microsoft’s huge, giant, stunning, impressive showcase of the year. Your superstar Microsoft MVP’s will be here with the latest to share, and there aren’t many networking opportunities like it. Real, real wide, but not very deep. However, it is great exposure to the entire Microsoft stack, and the range of IT Professionals attending is incredible. Additionally, all of the sessions are generally recorded and made available online, so if you miss a session you’re interested in, you can always check the VOD later.

You can read more about Microsoft Ignite here.

Local User Groups

If a System Center user group, Windows Management user group, or any relevant IT “thing” user group is available to you, locally, I highly recommend participation in those events. The production isn’t going to be comparable to a big conference, but that’s not the point. It’s a great opportunity to network with some of your local peers! Finding some local user groups can be difficult, though. It’s possible such a user group does not exist in your area. If that’s the case, there stands an opportunity to start something new! It doesn’t have to be extravagant, and could even start out as a booth at a local pub. You can use Twitter, local Facebook groups, local subreddits, or any number of ways to reach out to potentially interested IT professionals in your area. Maybe your TAM is even willing to help you start one.

Learning

You could call this section training, but I always think of the Rocky movies when someone brings up training, and am somehow let down by that fact. For ConfigMgr, these are the resources I’ve recommended the most.

Justin Chalfant’s SCCM Video Guides

Justin Chalfant (@setupconfigmgr) of PatchMyPC posts, very regularly, to his blog, and the youtube channel linked here. These videos are probably what I see most often recommended, and for good reason. Justin posts quality videos, with great details, and paired with a paired with a lab, are a great way to dig in and learn ConfigMgr. I’m sure there are other channels out there, but Justin’s videos are the ones I know, and the ones I recommend.

Home Labs

Speaking of labs, I can’t recommend one enough. Microsoft provides a free to download lab, by way of the Modern Desktop Deployment and Management Lab Kit, and it’s a quick and easy way to get started with your own lab. Build it up, tear it down, and do it again. Break what you can, and then fix it; deploy Windows 10 to a VM, then deploy an app you’ve packaged to that VM, and then remove that app with a configuration baseline! Outside of these pre-built labs, you could take it a step further and build a lab yourself, from the ground up. This is how I did it, and it provides the most opportunity to learn, in my opinion.

Books

Recommending books in 2019? Yeah, why not. These books helped me when I first started out. Real-world opportunities, a lot of free time, books, and labs. These are the two books I’m familiar with and have on my bookshelf in the office. I’m providing Amazon links to the books for your convenience, but they’re not affiliate links or anything like that.

System Center Configuration Manager Current Branch Unleashed

Mastering System Center Configuration Manager

The One-Stop Shop

/u/ExeqZ on Reddit posted a Google Document intended to serve as a community-driven, one-stop shop for ConfigMgr resources. The ConfigMgr Community is one of the most eager communities out there when it comes to sharing knowledge. This document serves as a single point of reference for contributor blog sites, relevant twitter accounts, Microsoft documentation, and a lot more. You could have an entire bookmark folder dedicated to ConfigMgr related links, and still learn about something new from the doc.

So here I am, trying to do my part in sharing the doc wherever I can. I expect that this document will evolve over time, and maybe Google Docs isn’t the final form of a resource like this, but it’s a start.

If you’re reading this blog post, you’re probably a techie, and you’ve probably been inspired by one of the many people featured in this Doc. Maybe you want to give back to the ConfigMgr community and this is a low-effort way to do just that. You can contribute your favorite blog, guide, twitter account, or whatever, just add it to the doc where you see it’s most relevant. Don’t see a category that you think is relevant to what you’d like to contribute? Just make it! That’s the whole point, it’s by the community, for the community.

I hope that something in this list has helped you out if you’ve made it this far, and if so, let me know what you found interesting! If I posted something wrong, or if you have anything you would like me to add, just let me know. Interested in one of these for PowerShell resources? Let me know below, and I can start working on that as well.

If you’d like to reach out to me, you can always contact me @tstolswo.

To find other posts I’ve contributed to the blog, you can check my Author page here.