Today, I’ve been ask to switch a couple of hundred Office 365 Deferred Channel to Current Channel. At first, I wasn’t sure if there was a supported way to do that. I start googling around and I ran into this Microsoft support article.
Before going technical, you maybe wondering why you would want to do this. Well, for a couple of reason :
- You just installed Office 365, and you’re on the Deferred Channel and want to change to Current Channel
- A fix has been released and you want to move to the Current Channel to receive it
- A new feature has been released and you want to move to the Current Channel to receive it
All actions in this blog post has been executed on a Windows 10 64-bits computer and Office 365 32-bits (Deferred Version 1602 – build 6741.2071).
Create SCCM Office 365 Switch Channel Script
The script provided by Microsoft is pretty straight forward :
- Checks if the CDNBaseUrl key is present
- Switch the Office Channel to Current
- Delete some configuration files and update configuration
- Launch the Office click-to-run client to check for an update
[su_box title=”Microsoft Script” style=”glass” box_color=”#000000″ title_color=”#F0F0F0″]
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\ /v CDNBaseUrl
if %errorlevel%==0 (goto SwitchChannel) else (goto End)
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v CDNBaseUrl /t REG_SZ /d “http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60” /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v UpdateUrl /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v UpdateToVersion /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Updates /v UpdateToVersion /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\16.0\Common\OfficeUpdate\ /f
“%CommonProgramFiles%\microsoft shared\ClickToRun\OfficeC2RClient.exe” /update user
But… the Microsoft script is not adapted to run with SCCM :
- SCCM runs .bat packages as 32bits applications on 64bits systems. This is a problem with the script provided by Microsoft because the reg command won’t be able to find the value in the registry. We simply add the /reg:64 switch at the end of each line. The /reg:64 switch enables the computer to receive the 64-bit view of the registry.
- The %CommonProgramFiles% variable will point to C:\Program Files (x86)\Common Files which is not where OfficeC2RClient.exe reside. We need to change it to %CommonProgramW6432%. See this thread for the full list for a 32-bit application on an English version of Windows.
- The OfficeC2RClient.exe /update user will display a dialog box. We want it to be silent. We’re adding displaylevel=False and forceappshutdown=True to the script to achieve that. See this Technet blog post to see full list of available variable.
We made several test with different option for the OfficeC2RClient.exe part (Office Applications opened, User logged on / Log Off, displaylevel=False/True, forceappshutdown=True/Flase)
Here’s the final script and SCCM packages options that works best for us :[su_box title=”Note” style=”glass” box_color=”#000000″ title_color=”#F0F0F0″]
The script will close all open Office application because of forceappshutdown=True but if a document is opened, it’s automatically saved and reopened after the upgrade process. There should be no data lost but be aware of this.[/su_box] [su_box title=”ChangeToCurrent.bat” style=”glass” box_color=”#000000″ title_color=”#F0F0F0″]
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\ /v CDNBaseUrl /reg:64
if %errorlevel%==0 (goto SwitchChannel) else (goto End)
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v CDNBaseUrl /t REG_SZ /d “http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60” /f /reg:64
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v UpdateUrl /f /reg:64
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v UpdateToVersion /f /reg:64
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Updates /v UpdateToVersion /f /reg:64
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\16.0\Common\OfficeUpdate\ /f /reg:64
“%CommonProgramW6432%\microsoft shared\ClickToRun\OfficeC2RClient.exe” /update user displaylevel=False forceappshutdown=True
Save this script in a batch file and store it on a location on your network. We will use it to create our package.
SCCM Package Creation
We will now create the package to deploy to switch our Office 365 clients from Deferred to Current Channel
- Open the SCCM Console
- Go to Software Library \ Application Management \ Packages
- Right-click Packages and select Create Package
- On the Package tab, name your package and in Source folder browse to the path where you saved the ChangetoCurrent.bat script
- In Program Type, select Standard program
- In Standard program, name your program and select your script in the Command line box
- In Program can run, select Only when a user is logged on
- In Run mode, select Run with administrative rights
- Leave all other option to default and complete the Create Package and Program Wizard
- Right-click your package and select Distribute Content. Complete the wizard and wait for the package to be distributed across your distribution points
We will now deploy the package to a test collection. We already created a collection containing 1 computer.
- Right-click the program you just created and select Deploy
- Select your test collection
- Leave all other options to default. We will make the deployment Available for now. Complete the Deploy Software Wizard
On the test computer, we will make verification before launching the program. Refer to our post on Office 365 inventory for complete details on that topic.
- Open Word, look for the Office version in File / Account
- We have version 16.0.6741.2071
- In registry browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\CDNBaseUrl
- We are in Deferred Channel and VersionToReport match the version displayed in Word
- We will now launch our program to change the Office 365 channel
- Go to Software Center and locate your program, click on it
- Click Install
- The script will execute for a couple of seconds before saying that it’s installed. The script has made it’s job to launch the update process, it will take about 15 minutes to complete
- You can monitor the update process using Task Manager. You will see 2 or 3 OfficeClickToRun.exe process depending of the stage of the process. You can also use the Office 365 log file located in %temp%. The file name is of the following format : yourmachinename-date-time.log
- Near the end of the process, your Office application will automatically close and reopens
- Once completed, we make the same verification, Word now shows Current Channel and it’s using the latest version available at the time of this writing (16.0.7668.2074)
- In registry, the Channel and version as been updated
That’s it you’ve just change an Office 365 Deferred Channel client to Current Channel ! You can deploy to all computers that needs to be changed.