Setup Guide – Microsoft Connected Cache for Enterprise and Education (GA)

On July 23, 2025, Microsoft announced the general availability (GA) of the standalone Microsoft Connected Cache solution, which features a slightly different setup compared to the preview release. Here is a guide on getting it going. The GA version is still free to use.

You may also want to review the updated Release Notes.

Requirements

To use the standalone version of MCC, you need a machine – a physical device or VM – running Windows 11, Windows Server 2022/2025, or Linux. You also need an Azure subscription and E3/E5 or A3/A5 licenses. For more details on licensing, check this page: https://learn.microsoft.com/en-us/windows/deployment/do/mcc-ent-prerequisites

Upgrading Cache Nodes installed with the Preview version

There is no solid path for upgrading existing cache nodes deployed with the preview version. You'll need to uninstall the preview version before installing the new GA version. After a couple of test runs, I decided it was simpler to just deploy new cache nodes and give them the same name (and IP address) as the old ones.

Note: You don't need to remove the cache nodes in Azure; it will be migrated as soon as the new cache node is installed.

Step-by-step Installation Guide

For this guide, I used a Windows 11 24H2 Hyper-V VM for my MCC setup. Here are the steps:

1. Deploy a Windows 11 VM on a Hyper-V host supporting nested virtualization. I used a Windows 11 Enterprise 24H2 image, and the VM was running on an HP Z8 G4 Workstation. I named the VM MCC01 and gave it a 512 GB disk, 8 GB RAM, and 4 vCPUs.

2. On the Hyper-V host, enable nested virtualization on the MCC01 VM, the command is:

Set-VMProcessor -VMName MCC01 -ExposeVirtualizationExtensions $true

3. On the MCC01 VM, using an elevated PowerShell prompt, install the Hyper-V Management Tools (new requirement), and then reboot the VM.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell -All

4. Create a local user account named MCCAccount, and add it to the local Administrators group. If you want to use PowerShell for that, here is a code snippet:

# Define credentials
$User = "MCC01\MCCAccount"
$myLocalAccountCredential = Get-Credential

# Create user, add to local administrators group, and set the account/password to never expire
New-LocalUser -Name MCCAccount -Password $myLocalAccountCredential.Password -PasswordNeverExpires -AccountNeverExpires
Add-LocalGroupMember -Group "Administrators" -Member "MCCAccount"

5. Using an elevated PowerShell prompt, install WSL 2 without any distributions using this command and then reboot the VM (the MCC deployment script is not very good at detecting any existing distros).

wsl --install --no-distribution

6. Navigate to the Azure portal (https://portal.azure.com), go to the Marketplace, search for Microsoft Connected Cache for Enterprise, and create the solution. I recommend using a separate resource group.

7. In the new Connected Cache for Enterprise & Education solution, expand Cache Node Management, and create a new cache node (I named mine MCC01).

8. In the MCC01 cache node properties, in the 1. Configuration tab, accept the default cache size of 150 GB. Then in the 2. Deployment tab, copy the Cache Node Deployment Command.

9. Install the new Windows-hosted deployment package by running the following command in an elevated PowerShell prompt:

Add-AppxPackage "https://aka.ms/do-mcc-ent-windows-x64"

10. On the MCC01 VM, in an elevated PowerShell prompt, set the following variables, and then run the previously copied Cache Node Deployment Command.

$User = "MCC01\MCCAccount"
$myLocalAccountCredential = Get-Credential
# Paste the full Cache Node Deployment Command, starting with Push-Location... 
Running the Cache Node Deployment Command
The script completed successfully

9. Go back to the Azure portal, and wait until the MCC01 cache node shows up as healthy.

Checking Cache Node Health.

10. To verify that the MCC responds, on another client on your network, in a PowerShell prompt, run the below command:

$MCC = "mcc01.corp.viamonstra.com"
Invoke-WebRequest -Uri "http://$MCC/filestreamingservice/files/7bc846e0-af9c-49be-a03d-bb04428c9bb5/Microsoft.png?cacheHostOrigin=dl.delivery.mp.microsoft.com"
Testing the MCC access from another client

11. Configure your clients to use the connected cache node, either via GPO's, Intune policies, or via DHCP. See this post for more details on DHCP setup: https://www.deploymentresearch.com/setup-microsoft-connected-cache-for-windows-autopilot-and-other-staging-scenarios/

12. On a few clients, verify that they are downloading content from the cache server. Either by simply running Resource monitor, or running the Get-DeliveryOptimizationPerfSnapThisMonth PowerShell cmdlet, or by viewing the Delivery Optimization activity monitor in Settings.

13. In the Azure portal, select the connected cache solution and select Overview.

About the author

Johan Arwidmark

5 1 vote
Article Rating
Subscribe
Notify of
guest
8 Comments
Newest
Oldest Most Voted
Dan Flynn
Dan Flynn
6 months ago

Johan,

Great guide. Microsoft has announced "HTTPS enforcement for Microsoft Connected Cache for Enterprise and Education" as of June 16, 2026

https://learn.microsoft.com/en-us/windows/deployment/do/mcc-ent-https-overview?tabs=portal

I haven't seen anything about once you setup the HTTPS how you enforce it on clients

Sergio
Sergio
9 months ago

Thank you for guide. After copying Cache Node Deployment Command, I get this error, and it seems that WSL MCC is not installed. Any idea what the problem might be ? Thanks in advance !! [12/09/2025 11:10:49] System.Management.Automation.MethodInvocationException: Exception calling "AddAccessRule" with "1" argument(s): "Some or all identity references could not be translated." —> System.Security.Principal.IdentityNotMappedException: Some or all identity references could not be translated.   at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)   at System.Security.Principal.NTAccount.Translate(Type targetType)   at System.Security.AccessControl.CommonObjectSecurity.ModifyAccess(AccessControlModification modification, AccessRule rule, Boolean& modified)   at System.Security.AccessControl.CommonObjectSecurity.AddAccessRule(AccessRule rule)   at CallSite.Target(Closure , CallSite , Object , Object )   — End of inner exception stack trace… Read more »

Kevin
Kevin
10 months ago

thank you for detail guide. everything works fine. but when do the connection verfication. Invoke-WebRequest -Uri "http://192.168.168.41/filestreamingservice/files/7bc846e0-af9c-49be-a03d-bb04428c9bb5/Microsoft.png?cacheHostOrigin=dl.delivery.mp.microsoft.com"
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a receive. Tried the localhost, the same issue, and MCC show unhealthy after a while.
Do you have any idea?

Anees
Anees
1 year ago

That is not true, MCC GA is not working, there is a product bug. I believe you have displayed screenshots from preview.


>