Don’t Change the Channel! Detecting your Microsoft 365 Update Channel with PowerShell
Ugh! Another month, another perplexing change made by Microsoft. I recently got alerted via Microsoft Digest that Microsoft is changing the way the Semi-Annual Enterprise Channel is going to work as of July 2026. This is for M365 Apps. According to their docs “Semi-Annual Enterprise Channel: Will receive feature and security updates monthly, on the same basis as Monthly Enterprise Channel” [1]. Typically, your machines should stay consistent on the update channel they’re set with, but you and I both know that’s not the case.
Here’s a little script that you can run from the Scripts module in MECM to report back the M365 update channels on your devices. As always, its on my GitHub.
Let’s Get Scripty
This is a simple “grab a reg key and report back” script, but you have to know the Content Delivery Network URL for each channel.
They are as follows:
"Monthly Enterprise Channel" = "http://officecdn.microsoft.com/pr/55336b82-a18d-4dd6-b5f6-9e5095c314a6"
"Current Channel" = "http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60"
"Current Channel (Preview)" = "http://officecdn.microsoft.com/pr/64256afe-f5d9-4f86-8936-8840a6a4f5be"
"Semi-Annual Enterprise Channel" = "http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114"
"Semi-Annual Enterprise Channel (Preview)" = "http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf"
"Beta Channel" = "http://officecdn.microsoft.com/pr/5440fd1f-7ecb-4221-8110-145efaa6372f"
So now, the simple script is just grabbing that regkey and reporting back the value. Then grabbing the version for the heck of it.
$RegChannel = Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration -Name "CDNBaseUrl"
If ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/55336b82-a18d-4dd6-b5f6-9e5095c314a6"){
$Channel = "Monthly Enterprise Channel"
}
Elseif ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60"){
$Channel = "Current Channel"
}
Elseif ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/64256afe-f5d9-4f86-8936-8840a6a4f5be"){
$Channel = "Current Channel (Preview)"
}
Elseif ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114"){
$Channel = "Semi-Annual Enterprise Channel"
}
Elseif ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf"){
$Channel = "Semi-Annual Enterprise Channel (Preview)"
}
Elseif ($Reg.CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/5440fd1f-7ecb-4221-8110-145efaa6372f"){
$Channel = "Beta Channel"
}
return $Channel
$Version = Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration -Name "ClientVersionToReport"
return $Version
Boom. You’re done. Run this from your RMM or MDM and get a pulse on where you’re getting your updates from.
Bon Voyage!
Same yourself some time and head ache with this upcoming Microsoft change. Use my script to report back to your CISO what update channel your devices are truly on.
As always:
This project is provided “as is” without any warranty of any kind, express or implied. Use it at your own risk. The authors and contributors are not responsible for any damage, data loss, or other issues that may arise from using this software. You are solely responsible for any actions taken based on this code.