How to Configure Windows Server BranchCache to Optimize WAN Bandwidth

The Wide Area Network Bottleneck

In a distributed enterprise, the corporate headquarters usually houses the primary file servers and application databases, while remote branch offices connect back to HQ via a Wide Area Network (WAN) link, such as an MPLS circuit or a site-to-site VPN.

When an employee in the London branch office downloads a 500MB PowerPoint presentation from the New York file server, that 500MB traverses the slow, expensive WAN link. If five minutes later, a second employee in London opens the exact same PowerPoint presentation, the server in New York blindly transmits the 500MB again. If 20 employees open it, 10GB of redundant data clogs the WAN link, grinding all other network traffic (like VoIP calls and ERP database queries) to an absolute halt.

To eliminate this massive inefficiency, Microsoft introduced BranchCache. BranchCache is a Wide Area Network bandwidth optimization technology. When enabled, it caches a copy of the data locally at the branch office. When the second employee attempts to open the PowerPoint file, their Windows 10/11 client seamlessly retrieves the data from the local branch cache at Gigabit LAN speeds, reducing the WAN traffic for that file to virtually zero.

Step 1: Understanding BranchCache Modes

BranchCache operates in two distinct modes, depending on the infrastructure available at the remote site:

  1. Distributed Cache Mode: Ideal for small branch offices (under 50 users) that do not have a dedicated local server. In this mode, the Windows 10/11 client PCs act as a peer-to-peer swarm. If PC-A downloads the file, it advertises on the local subnet that it has a copy. When PC-B requests the file, it downloads it directly from PC-A’s hard drive.
  2. Hosted Cache Mode: Ideal for larger branch offices. In this mode, a dedicated Windows Server at the branch office acts as the central cache repository. All clients download files from the main HQ server and immediately upload a copy to the local Hosted Cache Server. Subsequent requests are pulled directly from that server.

Note: This guide focuses on Hosted Cache Mode, as it is the most robust enterprise deployment.

Step 2: Configuring the HQ Content Server

The first step is enabling BranchCache on the main file server located at Headquarters. The server must be instructed to generate cryptographic hashes of its files so clients can verify data integrity.

Open an elevated PowerShell prompt on the HQ File Server:

Install-WindowsFeature FS-BranchCache -IncludeManagementTools

Next, you must enable BranchCache on the specific file share. You can do this via the Server Manager GUI (by editing the share properties) or via PowerShell:

Set-SmbShare -Name "SalesData" -CachingMode BranchCache

Finally, configure the server to automatically generate the necessary hashes for all files on the share:

Enable-BCHashPublication -Mode "AllShares"

Step 3: Configuring the Hosted Cache Server (Branch Office)

Next, log into the local Windows Server physically located at the branch office.

Install the BranchCache feature:

Install-WindowsFeature BranchCache -IncludeManagementTools

Now, enable the Hosted Cache Server mode. This automatically configures the Windows Firewall and provisions the necessary SSL certificates for secure local transmission:

Enable-BCHostedServer -RegisterSCP

The -RegisterSCP flag is crucial. It creates a Service Connection Point in Active Directory. When Windows clients in the branch office boot up, they query Active Directory, automatically discover this specific Hosted Cache Server, and configure themselves to use it without needing manual Group Policy configurations.

Step 4: Configuring the Windows Clients

While the SCP allows clients to find the server, you must still explicitly enable the BranchCache service on the Windows 10/11 client machines using Group Policy.

  1. Open the Group Policy Management Console (GPMC).
  2. Create a GPO named “Enable BranchCache” and link it to the OU containing your branch office computers.
  3. Navigate to Computer Configuration > Policies > Administrative Templates > Network > BranchCache.
  4. Enable the following policies:
    • Turn on BranchCache (Set to Enabled).
    • Enable Automatic Hosted Cache Discovery by Service Connection Point (Set to Enabled).
    • Set BranchCache for network files latency (milliseconds): By default, BranchCache only activates if the latency to the HQ server is above 80ms. If you have a fast but low-bandwidth link (e.g., 20ms latency but only 10Mbps bandwidth), you should lower this value to 10 or 0 to force BranchCache to optimize all files regardless of latency.

Step 5: Verifying the Optimization

To verify that BranchCache is actually working and saving bandwidth, you can monitor the performance counters on a client machine or the Hosted Cache Server.

On a branch office Windows 10 client, open PowerShell and run:

Get-BCStatus

This command provides a massive readout of the client’s internal BranchCache engine. Look specifically at the BranchCacheIsEnabled and HostedCacheServerConfiguration fields to ensure the GPO applied correctly.

To view the actual byte-level savings, use the Get-BCDataCache command. After a user downloads a large file twice (once pulling from HQ, the second time pulling from the cache), the output will show the exact number of bytes served locally versus bytes pulled over the WAN.

Conclusion

Deploying BranchCache is one of the highest-ROI configurations an IT administrator can implement in a distributed enterprise. By silently caching file shares, SharePoint traffic, and WSUS updates at the branch level, organizations can drastically extend the life of their existing WAN circuits, drastically accelerating remote employee productivity without spending a dime on upgraded network bandwidth.

RELATED POSTS

  • How to Configure Microsoft Local Administrator Password Solution (LAPS) via Group Policy
  • How to Deploy Software Packages Using Windows Group Policy
  • How to Configure a DHCP Relay Agent in Windows Server
  • How to Change the Maximum Transmission Unit (MTU) Size in Windows Server
  • How to Clear the Windows RSAT (Remote Server Administration Tools) Cache via PowerShell
  • Get the best tech tips delivered straight to your inbox.

    Join thousands of readers mastering Apple, Google, Microsoft, and Linux.