Trouble with Office Update Channels... and many ways to fix them.

  


I was in a bind because our SIEM was saying that we were behind in our Office updates on our machines. It turns out we were on the wrong Servicing Channel (Monthly). I needed a way to get back on the Current channel to get our updates on time. Here are some of the things that I did to accomplish that:

Change with the command prompt

In an elevated command prompt, I used the command:
cd C:\Program Files\Common Files\Microsoft Shared\ClickToRun
OfficeC2RClient.exe /changesetting Channel=Current
OfficeC2RClient.exe /update user


New NameChannel CodePrevious Names
Beta ChannelBetaChannelInsider, Insider Fast, Monthly
Current Channel (Preview)CurrentPreviewMonthly Channel (Targeted), Targeted, Insiders, Slow, Preview
Current ChannelCurrentMonthly Channel, Monthly, Deferred
Monthly Enterprise ChannelMonthlyEnterprise
Semi-Annual Enterprise Channel (Preview)SemiAnnualPreviewSemi-Annual Channel (Targeted), Targeted
Semi-Annual Enterprise ChannelSemiAnnualSemi-Annual Channel, Broad


Sources: 
But it didn't work. So I tried..

Change with Group Policy

  1. Verify the scheduled task "Office Automatic Update 2.0" is enabled on the device. This task is a required part of managing updates for Microsoft 365 Apps.

  2. Download the Administrative Template Files (ADMX/ADML) for Office Customization Tool for Microsoft 365 Apps for Enterprise, Office 2019 and Office 2016.

  3. In the Group Policy Management Tool, enable the Update Channel policy setting and choose the new Channel from the drop-down list.
    The policy setting can be located under: Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates

  4. The Group Policy refreshes in the background every 90 minutes. To refresh the policy assignment immediately, you can use the gpupdate command. For more information, visit Microsoft's page on gpupdate.

  5. After the Office Deployment Tool (ODT) has executed, the Office Automatic Update 2.0 task must run. The task will detect change and update channel. The device will not show the updated channel until a build of Office from the new channel is installed.

That didn't work either, so I tried...

Changing Registry Entries


Enter this into the registry
HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\officeupdate
Name: updatebranch
Type: REG_SZ
Value: Current

Sources:
It still didn't work. That was when I went into the M365 Admin center.

M365 Admin Center

I went to https://admin.microsoft.com and then went to Admin Centers > All Admin Centers > Office Configuration.
I saw that the deployment for the Monthly Channel was turned on, so I paused that job.

Then I went back to the main admin center, and went to Setup > Apps and Email > Get feature updates for Office every month. At the poopup I clicked the Manage button.

The setting was set for the Monthly Enterprise Channel. So I changed that to Current Channel and saved the setting.

That didn't work either.
Updating the UpdateChannel URL was what worked in my case

Update Channel URL

I used the below PowerShell script to change the UpdateChannel URL in the registry, and then my clients changed to the Current channel


$registryPath = "HKLM:\\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\"
$key = "UpdateChannel"
New-Item -Path $registryPath -Force | out-Null
Set-ItemProperty -Path 'HKLM:\\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' -Name $key -Value 'http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60' -Type String

New-Item -Path "HKCU:\\SOFTWARE\Policies\Microsoft\office\16.0\Common" -Force | out-Null
New-Item -Path "HKCU:\\SOFTWARE\Policies\Microsoft\office\16.0\Common\officeupdate" -Force | out-Null
Set-ItemProperty -Path 'HKLM:\\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' -Name 'updatebranch' -Value 'Current' -Type String

Set-Location $PSScriptRoot;
$proc = (Start-Process -FilePath "C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe" -ArgumentList "/update user displaylevel=false forceappshutdown=true" -Wait -PassThru);$proc.WaitForExit();$ExitCode = $proc.ExitCode
Exit($ExitCode)
Share on Google Plus

About Tom DeMeulenaere

Highly accomplished information technology professional with extensive knowledge in System Center Configuration Manager, Windows Server, SharePoint, and Office 365.
    Blogger Comment

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.