This page covers Change_Office_Edition.cmd, the MAS utility for modifying an existing Office Click-to-Run (C2R) installation: swapping to a different product edition, adding or removing individual editions, toggling which apps are included, and switching the Office update channel. It does not activate Office; for activation see the methods described in Activation Methods. It also does not cover changing the Windows edition; for that see Changing Windows Edition.
Before the interactive menu appears, the script performs the following checks in sequence.
| Check | What is verified |
|---|---|
| Windows build ≥ 7600 | Script requires Windows 7 or later |
| Office C2R 2016+ present | Registry key HKLM\SOFTWARE\Microsoft\Office\ClickToRun or ...\Wow6432Node\... must exist and ProPlus*.xrm-ms licence files must be on disk |
| Office version ≥ 16.0.9029 | Minimum build required for the productstoadd command-line method |
| Required variables populated | All variables set by ch_getinfo must be non-empty (_oArch, _updch, _lang, _clversion, _version, _AudienceData, _oIds, _c2rXml, _c2rExe, _c2rCexe, _masterxml) |
| Windows SPP/WMI functional | OS edition is queried via SoftwareLicensingProduct WMI to confirm SPP is working |
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd399-480
ch_getinfo Subroutinech_getinfo is the central information-gathering routine. It is called at startup and again before each major operation to refresh state. It reads exclusively from the registry path stored in o16c2r_reg (HKLM\SOFTWARE\Microsoft\Office\ClickToRun or the Wow6432Node equivalent, depending on which was found at detection time).
Variables populated by ch_getinfo:
| Variable | Registry value read | Meaning |
|---|---|---|
_oRoot | InstallPath | Root of the Office installation |
_oArch | Configuration\Platform | x64 or x86 |
_cfolder | Configuration\ClientFolder | Folder containing OfficeClickToRun.exe |
_updch | Configuration\AudienceId | Currently configured channel FFN (GUID) |
_lang | Configuration\ClientCulture | Installed language code (e.g. en-us) |
_clversion | Configuration\ClientVersionToReport | C2R client build version |
_version | Configuration\VersionToReport | Office product version |
_AudienceData | Configuration\AudienceData | Human-readable channel name (e.g. Production::CC) |
_actconfig | ProductReleaseIDs\ActiveConfiguration | Active configuration key name |
_oIds | ProductReleaseIDs\<_actconfig>\* | Space-separated list of installed product IDs |
_firstoId | first token of _oIds | First installed product (used as reference) |
_firstoIdExcludelist | Configuration\<_firstoId>.ExcludedApps | Apps currently excluded from first product |
_c2rExe | derived from _cfolder | Path to OfficeClickToRun.exe |
_c2rCexe | derived from _cfolder | Path to OfficeC2RClient.exe |
_c2rXml | derived from _oRoot | Path to c2rpridslicensefiles_auto.xml |
_masterxml | %ProgramData%\Microsoft\ClickToRun\ProductReleases\... | Path to MasterDescriptor.x-none.xml |
ltsc19 / ltsc21 / ltsc24 | version strings in ProductReleaseIDs | LTSC channel detection flags |
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1293-1362
Diagram: Main menu and sub-menu navigation
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd484-516 MAS/Separate-Files-Version/Change_Office_Edition.cmd1012-1222
When the user picks "Change all editions" or "Add edition", the script must present a list of editions available for the current Office installation. This is handled in two phases.
getlist PowerShell blockThe embedded :getlist: PowerShell block (MAS/Separate-Files-Version/Change_Office_Edition.cmd1437-1491) reads two XML files:
| File | Purpose |
|---|---|
c2rpridslicensefiles_auto.xml (_c2rXml) | Enumerates every ProductReleaseId licensed for the installed Office |
MasterDescriptor.x-none.xml (_masterxml) | Classifies each product as a Suite (contains both Excel and Word) or a single app |
It categorises each product into one of four lists and writes them to %SystemRoot%\Temp\:
| Filename | Contents |
|---|---|
Suites_Retail.txt | Full suite editions, retail channel |
Suites_Volume.txt | Full suite editions, volume channel |
SingleApps_Retail.txt | Single-app products, retail channel |
SingleApps_Volume.txt | Single-app products, volume channel |
On Windows 7/8/8.1 (build < 10240), Office 2019/2021/2024 products are excluded from these lists.
getappnames PowerShell blockWhen a Suite edition is selected, the :getappnames: PowerShell block (MAS/Separate-Files-Version/Change_Office_Edition.cmd1497-1522) reads MasterDescriptor.x-none.xml for the specific target SKU and writes the app IDs to %SystemRoot%\Temp\getAppIds.txt. The script then cross-references this list to determine which app toggles to show.
Excluded app IDs (never shown as toggles): shared, PowerPivot, PowerView, MondoOnly, OSM, OSMUX, Groove, DCF.
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1437-1522 MAS/Separate-Files-Version/Change_Office_Edition.cmd564-651
OfficeClickToRun.exeThe core mechanism for adding or replacing Office editions uses OfficeClickToRun.exe (stored in _c2rExe) with the productstoadd method. This triggers a delta download using the same installed build version, which minimises bandwidth.
Diagram: oe_editionchangefinal command construction
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd806-823
For removing a specific edition, the command uses only productstoremove:
OfficeClickToRun.exe platform=<_oArch> productstoremove=<targetedition>.16_<_allLangs>
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd992-998
After selecting a target edition, the script shows an interactive toggle screen. Each app listed below has a separate toggle (On/Off). Apps toggled Off are aggregated by the excludelist subroutine into a comma-separated exclusion string passed to the excludedapps.16= parameter.
Available toggles (for Suites):
| Key | App | Default |
|---|---|---|
| A | Access | On (if in product) |
| E | Excel | On (if in product) |
| N | OneNote | On (if in product) |
| O | Outlook | On (if in product) |
| P | PowerPoint | On (if in product) |
| J | Project | On (if in product) |
| R | Publisher | On (if in product) |
| V | Visio | On (if in product) |
| W | Word | On (if in product) |
| L | SkypeForBusiness | Off |
| D | OneDrive | Off |
| T | Teams | Off |
Groove (OneDrive for Business, internal name) is always excluded via the hard-coded prefix flt.useteamsaddon=disabled and the groove prefix in excludedapps.16.
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd637-744
Project and Visio are only available in a fixed set of languages. If the Office installation's _lang is not in this list, the script aborts with an error before running the OfficeClickToRun.exe command.
Supported languages for Project/Visio: ar-sa, cs-cz, da-dk, de-de, el-gr, en-us, es-es, fi-fi, fr-fr, he-il, hu-hu, it-it, ja-jp, ko-kr, nb-no, nl-nl, pl-pl, pt-br, pt-pt, ro-ro, ru-ru, sk-sk, sl-si, sv-se, tr-tr, uk-ua, zh-cn, zh-tw.
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd757-803
Diagram: Channel change decision flow
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1012-1222
| Display name | AudienceData value | FFN (GUID) |
|---|---|---|
| Beta / Insider Fast | Insiders::DevMain | 5440fd1f-7ecb-4221-8110-145efaa6372f |
| Current / Monthly Preview | Insiders::CC | 64256afe-f5d9-4f86-8936-8840a6a4f5be |
| Current / Monthly | Production::CC | 492350f6-3a01-4f97-b9c0-c7c6ddf67d60 |
| Monthly Enterprise | Production::MEC | 55336b82-a18d-4dd6-b5f6-9e5095c314a6 |
| Semi Annual Enterprise | Production::DC | 7ffbc6bf-bc32-4f92-8982-f9dd17fd3114 |
| DevMain Channel | Dogfood::DevMain | ea4a4090-de26-49d7-93c1-91bff9e53fc3 |
| Microsoft Elite | Microsoft::DevMain | b61285dd-d9f7-41f2-9757-8f61cba4e9c8 |
| Perpetual2019 VL | Production::LTSC | f2e724c1-748f-4b47-8fb8-8e0d210e9208 |
| Microsoft2019 VL | Microsoft::LTSC | 1d2d2ea6-1680-4c56-ac58-a441c8c24ff9 |
| Perpetual2021 VL | Production::LTSC2021 | 5030841d-c919-4594-8d2d-84ae4f96e58e |
| Microsoft2021 VL | Microsoft::LTSC2021 | 86752282-5841-4120-ac80-db03ae6b5fdb |
| Perpetual2024 VL | Production::LTSC2024 | 7983bac0-e531-40cf-be00-fd24fe66619c |
| Microsoft2024 VL | Microsoft::LTSC2024 | c02d8fe6-5242-4da8-972f-82ee55e00671 |
Channels flagged with "unofficial change method will be used" are LTSC Perpetual VL channels when the currently installed product is not already on that LTSC version. For those cases, OfficeClickToRun.exe with scenario=CLIENTUPDATE is used instead of OfficeC2RClient.exe, and the C2R client must first be updated to the target build before the channel switch is attempted.
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1058-1095 MAS/Separate-Files-Version/Change_Office_Edition.cmd1148-1222
oe_cleanupreg)Before any channel change, oe_cleanupreg removes stale update configuration from the registry. This prevents conflicts between the existing channel settings and the target channel.
Keys written or deleted under o16c2r_reg\Configuration:
| Operation | Key / Value |
|---|---|
| Set | CDNBaseUrl → https://officecdn.microsoft.com/pr/<targetFFN> |
| Set | UpdateChannel → https://officecdn.microsoft.com/pr/<targetFFN> |
| Set | UpdateChannelChanged → True |
| Delete | UnmanagedUpdateURL |
| Delete | UpdateUrl |
| Delete | UpdatePath |
| Delete | UpdateToVersion |
| Delete | Updates\UpdateToVersion |
| Delete | HKLM\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate (both native and WOW) |
| Delete | HKCU\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate |
| Delete | HKLM\SOFTWARE\Policies\Microsoft\cloud\office\16.0\Common\officeupdate (both native and WOW) |
| Delete | HKCU\Software\Policies\Microsoft\cloud\office\16.0\Common\officeupdate |
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1250-1276
After a successful edition change, the script checks whether the currently configured update channel matches the newly installed product type. If there is a mismatch, it prints a recommendation.
| Installed product contains | Expected channel _AudienceData | Expected FFN |
|---|---|---|
2019Volume | Production::LTSC | f2e724c1-... |
2021Volume | Production::LTSC2021 | 5030841d-... |
2024Volume | Production::LTSC2024 | 7983bac0-... |
| Non-volume / perpetual product after an LTSC channel | Production::CC | 492350f6-... |
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd830-858
All operations except Remove edition require an active internet connection. The oe_chkinternet subroutine tests connectivity by pinging l.root-servers.net, resolver1.opendns.com, download.windowsupdate.com, and google.com. As a fallback it calls the INetwork.IsConnectedToInternet COM interface. If no connection is detected the operation is aborted.
Sources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1389-1406
The script writes four list files to %SystemRoot%\Temp\ during edition selection. These are cleaned up by oe_tempcleanup after each operation completes (or if the user goes back):
SingleApps_Volume.txtSingleApps_Retail.txtSuites_Volume.txtSuites_Retail.txtgetAppIds.txtSources: MAS/Separate-Files-Version/Change_Office_Edition.cmd1280-1287
MAS_AIO.cmdThe change_offedition label in MAS_AIO.cmd calls the same logic embedded in the AIO file when option [7] is selected from the main menu (MAS/All-In-One-Version-KL/MAS_AIO.cmd496). The Separate-Files-Version/Change_Office_Edition.cmd file contains the identical logic as a standalone script. Neither file accepts command-line switches to run non-interactively; the operation always requires user input via the menu.
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd479-496 MAS/Separate-Files-Version/Change_Office_Edition.cmd484-516
Refresh this wiki
This wiki was recently refreshed. Please wait 4 days to refresh again.