Are you enrolling lots of machines into Windows Autopilot and want to speed up the process? Or, do you simply want to speed up application deployment from Intune? Well, Microsoft Connected Cache (MCC) is here to the rescue.
When it comes to MCC, at least for now, you have to use the on-premises version that requires ConfigMgr. But since that server setup can easily be deployed – fully automated – using my Hydration Kit. It's not really a big deal.
Why Microsoft Connected Cache?
When using Windows Autopilot to enroll machines into Microsoft Intune, you typically also want the machines to get a basic set of applications installed before the user is allowed to grab the device. Without a local cache available, either via Microsoft Connected Cache, or a bunch of Windows 10/11 clients available having the application content cached, you'll find it can take quite some time to get applications deployed. Definitely time for a comparison for deployment times with or without a local cache available.
Real World Note: MCC won't cache Intune content like Win32 apps until it's been requested at least three times, so don't be surprised if it does not start caching immediately 🙂
For this test, all machines were on the same location/subnet, and were sharing a 45 mbit Internet connection. In Intune, I had created four applications in different size as Win32 apps. My Windows Autopilot Enrollment Status Page (ESP) was configured to not allow a user access to the device until they were fully deployed. The applications were the following:
- Notepad++ (8 MB)
- WinMerge (5 MB)
- Adobe Reader DC (200 MB)
- Office 365 as Win32 App (3.2 GB)
Note: If installing multiple apps in Windows Autopilot, make sure they are all Win32 apps (hence why I used a Win32 apps version of office 365). Mixing different applications types is not recommended.
Configuring the MCC on the ConfigMgr side is easy. In your Distribution Settings, select the Enable this distribution point to be used as Microsoft Connected Cache server check box, allocate some disk space and you're done.
Configuring the Windows Autopilot devices to use MCC
For the MMC testing, to make sure the clients were configured early in the process, I used DHCP scope options 234 (DOGroupID), and 235 (DOCacheHost). If that's not an option, you can also script in the values via a Win32 app that comes down early (you can use app dependencies to control the app order in the enrollment status page).
Note: For clients to use DHCP Scope Options 234 and 235 for Delivery Optimization settings, you must configure the Cache Server Hostname Source and Select the source of Group IDs policies, in either group policy or Intune policies. For more info see the Delivery Optimization reference.
To create these DHCP options, right-click your IPv4 node in DHCP Manager, and select Set Predefined Options. Then click Add, and use the following info. Repeat the same for option 235.
Data type: String
Data type: String
Benchmark Time – No MCC Available
In the first test, I enrolled five Windows 11 machines into Windows Autopilot without MCC being available. For all five machines to enroll it took about 75 minutes over the 45 mbit connection.
When reviewing the Delivery Optimization data, it did show that most of the data came from Microsoft, but that the clients were able to share a little bit of DO traffic in between themselves. Since no MCC was configured the DownloadCacheHostBytes value was not surprisingly at zero bytes. As you can see in the screenshot from one of the machines, it downloaded 3179870291 bytes (3.0 GB) from Microsoft, and 676331520 bytes (0.6 GB) from local peers.
Benchmark Time – MCC Available
In the second test, I enrolled five other Windows 11 machines into Windows Autopilot with a ConfigMgr Site Server / Distribution point having MCC enabled. For all five machines to enroll it took about 25 minutes, so a bit over twice the speed compared to the test without having MCC available.
Microsoft Connected cache provides some basic options for monitoring. Either via IIS Manager, or via PowerShell. Below is a PowerShell example on how to view the disk cache statistics:
$MCCServer = "dp01.corp.viamonstra.com" $MCC = Invoke-RestMethod http://$($MCCServer):53000/summary $MCC.LastCacheNodeHealthPingRequest
Below is an example of the monitoring in IIS Manager for one of the server farms responsible for Win32 apps from Microsoft Intune.