Office 365 installation in Citrix

Last Updated on November 18, 2022

Microsoft 365 Apps or Office 365 installation in Citrix Virtual Apps and Desktops (XenApp and XenDesktop) is little different from traditional installation. Update channel and License token roaming are two most important components among others that should be carefully administered. Staying up to date is another key factor in successfully deploying Office 365 in Citrix environment. You might have observed that Office 365 ProPlus is now called Microsoft 365 Apps for Enterprise and most notably, ProPlus is not supported on Windows 10 LTSC versions anymore.

By the end of this article, you will know things about Office 365 (Microsoft 365 Apps) installation in Citrix that you don’t know now and something among those things you already know would make a difference in your consulting practices.

It is advised to use Readiness Toolkit to identify compatibility issues with your Microsoft Visual Basic for Applications (VBA) macros and add-ins that you use with Office. It generates an Excel report by using Readiness Report Creator with information to help your organization assess its readiness to move to Microsoft 365 Apps. The toolkit can be downloaded from MS Download Center. It’s an MSI file that, when executed, walks you through a UI wizard to create a readiness report. For more information, see Use the Readiness Toolkit to assess application compatibility for Microsoft 365 Apps.

Relevant Updates

Here you can find all Office 365 updates with their link references. Before your next Office 365 (Microsoft 365 Apps) installation in Citrix, come back here or visit What’s new in Office deployment for IT Pros to validate your plan and Strategy against new updates. If I am sluggish in updating this list, please let me know in comments of new updates and I shall add them here.

  1. Link https://learn.microsoft.com/en-us/deployoffice/endofsupport/windows-server-migration
    • We’ve revised our support policy and Microsoft 365 Apps will be supported (still in preview) on Windows Server 2022 until October 2026.
  2. Link RE2OqRI (microsoft.com)
    • No support for Microsoft 365 Apps on Windows server 2022. Other alternatives are Office LTSC, which is supported until October 2026, and Office 2019, which is supported until October 2025.
  3. Linkhttps://docs.microsoft.com/en-us/lifecycle/announcements/office-365-system-requirements-updates
    • To clarify our current support practices for ProPlus running on Windows 10, ProPlus will not be supported on Windows 10 Semi-Annual Channel (SAC) versions that are no longer being serviced per the Windows 10 lifecycle. Office ProPlus will be supported on Windows 10 versions in active servicing and in servicing extensions as outlined here.
    • Effective January 14, 2020, ProPlus will no longer be supported on the following versions of Windows and Windows Server – this will help customers get the best experience by receiving regular updates to both Windows and Office:
      • Any Windows 10 Long-Term Servicing Channel (LTSC/LTSB) release.
      • Windows Server 2012, 2012 R2.
  4. Link – https://cloudblogs.microsoft.com/windowsserver/2019/10/07/windows-server-2019-adds-support-for-office-365-proplus/
    • Today we’re introducing Office 365 ProPlus support for Windows Server 2019 customers with on-premises and Azure deployments.
  5. Link – https://docs.microsoft.com/en-us/deployoffice/teams-install.
    • In the past, Microsoft Teams was a separate installation from Microsoft 365 Apps. However, starting with Version 1902, Teams is included as part of new installations of Microsoft 365 Apps. If Teams is already installed on the device, no changes are made to that installation of Teams.
    • If Skype for Business is already installed on the device, Skype for Business won’t be removed and will continue to function as before. Skype for Business will continue to be installed with new installations of Microsoft 365 Apps, unless you configure your installation to exclude it.
  6. Link – https://docs.microsoft.com/en-us/deployoffice/endofsupport/windows-server-support
    • Microsoft 365 Apps is not supported on Windows Server 2008 R2, Windows Server 2012, or Windows Server 2012 R2.
    • Using Microsoft 365 Apps on older, unsupported operating systems may cause performance and reliability issues over time.
    • If your organization is using a version of Windows Server that doesn’t support Microsoft 365 Apps, we recommend that you move to Windows Server 2019 or Windows Virtual Desktop.
    • Microsoft 365 Apps is supported on Windows Server 2019 until October 2025.
  7. Link – https://techcommunity.microsoft.com/t5/microsoft-365-blog/microsoft-365-apps-say-farewell-to-internet-explorer-11-and/ba-p/1591666
    • Beginning November 30, 2020, the Microsoft Teams web app will no longer support IE 11. The Microsoft Teams web app no longer supports IE 11 as of November 30, 2020. To access Microsoft Teams, use the desktop app or a supported modern browser like the new Microsoft Edge.
    • Beginning August 17, 2021, the remaining Microsoft 365 apps and services will no longer support IE 11.

Office 365 Installation in Citrix

There are three ways to install Office 365 or Microsoft 365 Apps:

  1. Deploy from a local source with Configuration Manager.
  2. Deploy from the cloud or local source with Office Deployment Tool (ODT)
  3. Self-install from the cloud

Option 1 and 2 are suitable for a VDI and RDSH environments like Citrix Virtual Apps and Desktops. Option 3 lets you manage your deployment from the Office portal and have your users install Office on their client devices directly from the portal. Rest of the article will prepare you for Office 365 installation in Citrix Infrastructure using Option 1 and 2.

  1. First step is to download latest version of Office Deployment Tool (ODT) from Microsoft Download Center. Once downloaded, extract the files to a folder (exp. D:\MSOffice or \\guptanishith.com\Apps\M365).
Office Deployment Toolkit
  1. Visit Office Customization Tool (OCT) at https://config.office.com. In further steps, we will prepare a configuration (.XML) file like the one below.
<Configuration ID="806365b8-ee05-4ace-a47f-a91980ea439d">
  <Add SourcePath=\\guptanishith.com\Apps\M365 OfficeClientEdition="64" Channel="MonthlyEnterprise" AllowCdnFallback="TRUE">
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
      <Language ID="nb-no" />
      <ExcludeApp ID="Access" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
      <ExcludeApp ID="OneDrive" />
      <ExcludeApp ID="OneNote" />
      <ExcludeApp ID="Outlook" />
      <ExcludeApp ID="PowerPoint" />
      <ExcludeApp ID="Publisher" />
      <ExcludeApp ID="Teams" />
      <ExcludeApp ID="Bing" />
    </Product>
    <Product ID="ProofingTools">
      <Language ID="nn-no" />
    </Product>
  </Add>
  <Property Name="AUTOACTIVATE" Value="0" />
  <Property Name="FORCEAPPSHUTDOWN" Value="FALSE" />
  <Property Name="DeviceBasedLicensing" Value="0" />
  <RemoveMSI />
  <AppSettings>
    <Setup Name="Company" Value="Nishith Gupta" />
    <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" />
    <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" />
    <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" />
  </AppSettings>
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>
  1. Scroll down and click Create under Create a new configuration. Alternatively, you can Import Configuration-Office365-x64.xml file which was downloaded as part of Office Deployment Tool.
Create a new configuration file
  1. Select the Architecture (32 or 64 bit) you want to deploy. It will add <Add OfficeClientEdition=”64″> to the XML file. If OfficeClientEdition is not specified, the ODT (Office Deployment Tool) will default to the 64-bit edition, unless the device is running a 32-bit edition of Windows or has less than 4 GB RAM.
Office 365 Architecture
  1. Select the Office Suite (Exp. Microsoft 365 Apps for enterprise) you want to deploy. This will add <Product ID=”O365ProPlusRetail”> to the XML file. If you select Microsoft 365 Apps for Business then it will add <Product ID=”O365BusinessRetail”> to the XML file. Selecting Office Professional Plus 2019 – volume License adds <Product ID=”ProPlus2019Volume” PIDKEY=”NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP”> to the XML file. For Office Standard 2019 – Volume License, the value of Product ID attribute is “Standard2019Volume” and PIDKEY is “6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK”.
Office 365 Suites
  1. Select an appropriate Update Channel. This adds <Add Channel = “MonthlyEnterprise”> to the XML file if Monthly Enterprise channel was selected as the Update channel. Update channel determines the channel to be installed, regardless of an optionally specified update channel in the Updates (discussed later in this article) element or via Group Policy Setting. If not defined, the default channel is Current. If Office is installed on the device and the channel attribute is not specified, the ODT will match the channel of the existing installation. In my opinion, Monthly Enterprise Channel is best suited for Citrix deployments.
Office 365 Update Channel
  1. Update Channels are dependent on the Office suite. Other allowed values for Channel attribute of Add element are BetaChannel, CurrentPreview, Current, SemiAnnualPreview and SemiAnnual. All these Update Channels are also available for Microsoft 365 Apps for Business office suite. For Office Professional Plus 2019 – volume License and Office Standard 2019 – volume License, the only available Update Channel is Office 2019 Perpetual Enterprise. Here is a comparison of update channels. For more information about Update Channels, visit Overview of update channels for Microsoft 365 Apps.
Current ChannelMonthly Enterprise ChannelSemi-Annual Enterprise Channel
Recommended useProvide your users with new Office features as soon as they are ready, but on no set schedule.Provide your users with new Office features only once a month and on a predictable schedule.For select devices in your organization, where extensive testing is needed before rolling out new Office features. For example, to comply with regulatory, governmental, or other organizational requirements.
Release frequencyAt least once a month (likely more often), but on no set scheduleOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Feature updatesAs soon as they’re ready (usually once a month), but on no set scheduleOnce a month, on the second Tuesday of the monthTwice a year (in January and July), on the second Tuesday of the month
Security updates
(if needed)
Once a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Non-security updates
(if needed)
Usually at least once a month (possibly more often), but no set scheduleOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Support duration for a given versionUntil the next version is released with new features, which is usually about one monthTwo monthsFourteen months
Update Channels for Microsoft 365 Apps
  1. The update channel you select shows up in Account section of each Office application. Open any office application, go to Files in the menu and click Account.
Current Update Channel
Monthly Enterprise Update Channel
Semi-Annual Enterprise Update Channel
  1. The update channel can also be verified through Registry. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration and check the value of CDNBaseUrl. Source: Channel Management,Office 365 ProPlus (microsoft.com)
    • 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
CDNBaseURL for Current Update Channel
CDNBaseURL for Monthly Enterprise Update Channel
CDNBaseURL for Semi-Annual Enterprise Update Channel
  1. Installation of Microsoft Visio and Project requires a separate article (maybe in future) that’s why I have excluded them from this blog.
  2. Next, select a Version. Choose Latest unless you have some specific requirement for an older version. If you select any version other than Latest then it adds <Add Version=”16.0.6741.2056″>, for example, to the XML file. In the drop down, 2012 is the version and 13530.20538 is the Build number for Monthly Enterprise Channel. Every Update Channel has different versions of office 365, therefore, when you select Semi-Annual Enterprise channel, a different list of versions will appear and version attribute of Add element will have a corresponding value. See Update history for Microsoft 365 Apps (listed by date).
Office 365 versions for Monthly Enterprise Channel
  1. Under Apps section, turn on the office application you want to install and turn off the application you don’t want to. Turning off an application (exp. Teams) adds <ExcludeApp ID=”Teams” /> to the XML file. The value of ID attribute of ExcludeApp element will change according to the identifier of the excluded application. I also prefer disabling Background service for Microsoft Search in Bing. This adds <ExcludeApp ID=”Bing” /> to the XML file.
    • <ExcludeApp ID=”Access” />
    • <ExcludeApp ID=”Groove” />
    • <ExcludeApp ID=”Excel” />
    • <ExcludeApp ID=”Lync” />
    • <ExcludeApp ID=”OneDrive” />
    • <ExcludeApp ID=”OneNote” />
    • <ExcludeApp ID=”Outlook” />
    • <ExcludeApp ID=”PowerPoint” />
    • <ExcludeApp ID=”Publisher” />
    • <ExcludeApp ID=”Teams” />
    • <ExcludeApp ID=”Word” />
    • <ExcludeApp ID=”Bing” />
Include or Exclude Office 365 applications
  1. Within a VDI or RDSH environment, you would prefer machine-wide installation of Microsoft Teams rather than per-user. That’s the reason I have excluded Teams from Office 365 (Microsoft 365 Apps) installation in Citrix. However, that is not enough, Don’t install Microsoft Teams with new installations or updates of Office group policy setting at Computer Configuration/Policies/Administrative Templates/Microsoft Office 2016 (Machine)/Updates should also be set to enabled.
Don't install Microsoft Teams with new installations or updates of office
  1. Under Language section, you can choose Primary and additional languages. Proofing tools for Primary and additional languages are part of installation by default. If you wish, you can select additional Proofing tool. Defining languages in Office customization tool adds ID attributeof Language element in the XML file. For example, <Language ID=”en-us” />, <Language ID=”ja-jp” />, <Language ID=”hi-IN” />. Defining additional proofing tools adds <Product ID=”ProofingTools”> <Language ID=”nn-no” /> (nn-no is just an example) to the XML file. For a list of all languages, see Languages, culture codes, and companion proofing languages. Click Next.
Office 365 Primary and Additional languages
  1. If you define multiple languages, the first language in the configuration file determines the Shell UI culture, including shortcuts, right-click context menus, and tooltips. If you decide that you want to change the Shell UI language after an initial installation, you have to uninstall and reinstall Office.
  2. When you select an additional language and an additional proofing tool, they wouldn’t appear in their respective fields. You can find them in the Configured Settings section on the right side of the page.
Office 365 Additional languages and proofing tools
  1. Select an appropriate Installation option. For Office 365 or Microsoft 365 Apps installation in Citrix, you first determine what deployment tool to use and whether to install Office files from the cloud or from a local source on the network. Isn’t it the same statement we started this topic with? It’s important that’s why the repetitive emphasize.
    • Office Content Delivery Network (CDN) – Choose this option to manage the deployment with ODT, and install office on devices directly from the office CDN. Here is what Microsoft’s enterprise deployment guide says, “If you use the ODT and have the network capacity, we recommend deploying Office from the cloud (CDN). Doing so will minimize your administrative overhead. If you don’t have the network capacity to install Office on client devices from the cloud, you can use the ODT to download the Office files to a local source on your network and install from there.”
    • Local Source – This method is my first choice for all most all type of Golden/Master image type of Citrix environments. It is used to deploy Office 365 (Microsoft 365 Apps) from a shared folder on network by using the Office Deployment Tool (ODT). First, you need to create a shared folder on the Network, something like \\guptanishith.com\Apps\M365 with read permission assigned to everyone. After that, download Office deployment tool (ODT) from Microsoft download center to the shared folder and run the self-extracting executable file, which contains the ODT executable (setup.exe) and a sample configuration file (configuration.xml). Then, in Office customization tool (https://config.office.com/), under Installation options, select Local Source; provide source path (\\guptanishith.com\Apps\M365 for example) and select Fall back to the CDN for missing languages. Select other suitable options and export the Configuration file (*.xml) to the shared folder. Lastly, download office files by executing \\guptanishith.com\Apps\M365\setup.exe /download \\guptanishith.com\Apps\M365\configuration.xml. Finally, from a command prompt as an Administrator, run the ODT executable in configure mode with a reference to the configuration file you saved – \\guptanishith.com\Apps\M365\setup.exe /configure \\guptanishith.com\Apps\M365\configuration.xml. The information in this paragraph may seem a little overwhelming; don’t worry, later in this article starting with next step, we will touch upon everything discussed here.
    • Microsoft Endpoint Configuration Manager – I would prefer this method for manually provisioned Citrix VDAs. Although CDN and Local source can also be a good choice, provided, there is a manageable count of servers (not more than 5 in my opinion). If you want to use this method then you, practically, don’t have to do anything in Office customization tool. That’s true even for Office updates because the Office 365 installer wizard in Configuration Manager will take you to the Office customization tool, let you select appropriate options and submit them within itself. If deploying with Configuration Manager, Microsoft recommends deploying from a local source, using your Configuration Manager Distribution points. Installing Office 365 (Microsoft 365 Apps) with Configuration Manager has some specific requirements such as Peer Cache should be enabled for deployment in remote locations, use the current branch of Configuration Manager, internet access should be enabled on Virtual desktops so users can activate Microsoft 365 Apps after installation, etc. See Review and update your Configuration Manager infrastructure for Office 365 deployment. Also, see Prajwal Desai’s step-by-step instructions for Office 365 ProPlus deployment using SCCM.
  2. SourcePath defines the location of the Office installation files. Selecting Office Content Delivery Network (CDN) under Installation option in Office Customization Tool removes SourcePath attribute from Add element in the XML file.
    • Selecting Local source and enabling Fallback to the CDN for missing languages will add <Add SourcePath=”\\guptanishith.com\Apps\M365″ AllowCdnFallback=”TRUE”> to the XML file.
    • If you want to deploy Office 365 Apps (Microsoft 365 Apps) from Configuration Manager then select Microsoft Endpoint Configuration Manager and see Manage Microsoft 365 Apps with Configuration Manager | Microsoft Docs
    • Turning off Show installation to use will add <Display Level=”None” /> to the XML file.
    • Add element has another attribute called DownloadPath that defines where the installation files are downloaded from when running ODT in download mode (setup.exe /download configuration.xml). The value of DownloadPath attribute defaults to CDN if not specified. This is normally used to store a central copy of multiple languages and products for Office and distribute just the languages and products that are needed to other locations on the network. We are not using this attribute but let’s understand this with the help of an example – <Add SourcePath=”\\guptanishith.com\Apps\M365″ OfficeClientEdition=”64″ Version=”16.0.6741.2056″ DownloadPath=”\\guptanishith.com\AdminStore\M365″>. Here 64-bit version of Microsoft 365 Apps for Enterprise will be downloaded from \\guptanishith.com\AdminStore\M365 (DownloadPath) to \\guptanishith.com\Apps\M365 (SourcePath). Devices will still install Office from the SourcePath. You must specify a version when using DownloadPath. Version is discussed in one of the previous steps.
    • Click Next.
Local Source - Office 365 Installation options
  1. The Updates element defines how Office is updated after it is installed.
    • Selecting Microsoft Endpoint Configuration Manager under Update and upgrade options on Office Customization Tool disables Automatically check for updates option.
    • Selecting Microsoft Endpoint Configuration Manager adds OfficeMgmtCOM = “TRUE” in Add element. When set to TRUE, the Office COM object takes commands from Configuration Manager to download and install office updates.
    • <Add OfficeMgmtCOM = “TRUE”> and <Update Enabled = “TRUE”> are the requirements to enable Office 365 clients to receive updates from Configuration Manager. Source: Manage updates to Microsoft 365 Apps with Microsoft Endpoint Configuration Manager – Deploy Office | Microsoft Docs
Office 365 Update and Upgrade options
  1. There is a better way – Enable Management of Microsoft 365 Apps for enterprise group policy setting under Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates. If using this method then make sure <Add OfficeMgmtCOM = “TRUE”> is not part of the XML file but <Update Enabled = “TRUE” is. Since the default value of Enabled attribute of Update element is TRUE, you don’t have to define it exclusively in the XML file. Apply this GPO setting to an OU that contains client devices. Download and install the Administrative Template files (ADMX/ADML) for Office from the Microsoft Download Center.
    • When OfficeMgmtCOM is set to true (or Management of Microsoft 365 Apps for enterprise GPO setting is enabled) and Enabled attribute of Update element is also set to true then Office will still check for the updates using scheduled task Office Automatic Updates 2.0 but updates will still be delivered by Configuration Manager. Apart from that, the Office Automatic Updates 2.0 scheduled task is also responsible for initiating product configuration tasks such as channel management, that’s why don’t try to disable it.
      • Path: Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates
      • Setting: Management of Microsoft 365 Apps for enterprise = Enabled
    • Alternatively, you can configure a Client Policy in Configuration Manager to enable Office 365 clients to receive updates from Configuration Manager.
      • In the Configuration Manager console, click Administration > Overview > Client Settings.
      • Open client settings, click Software Updates and select Yes for the Enable management of the Office 365 Client Agent setting.
Group policy for Office 365 Update channel
  1. Having <Add OfficeMgmtCOM =”True”> in the XML file or Management of Microsoft 365 Apps for enterprise policy group policy enabled, removes the Update Now option on the Account page for Microsoft 365 Apps on client devices.
Update now option in Office applications
  1. Selecting Office Content Delivery Network (CDN) or Local source expects you to leave Automatically check for updates turned on.
    • This is how Updates element will look like with CDN selected and Automatically check for updates enabled: <Updates Enabled= “TRUE” />
    • This is how Updates element will look like with CDN selected and Automatically check for updates disabled: <Updates Enabled=“FALSE” />
    • This is how Updates element will look like with Local Source selected, UpdatePath defined and Automatically check for updates enabled: <Updates Enabled= “TRUE” UpdatePath= \\Servera\Share\” />
    • This is how Updates element will look like with Local Source selected, Update Path defined and Automatically check for updates disabled: <Updates Enabled= “FALSE” UpdatePath= \\Servera\Share\” />
    • This is how Updates element will look like with Microsoft Endpoint Configuration Manager selected: No Updates element in the XML file. Enabled attribute in Updates element always remains true (default value) even if it is not defined in the XML file or until you set its value to False. However, it does not mean that updates will not be delivered by Configuration Manager.
  1. Corresponding registry values for <Updates Enabled= “TRUE”/”FALSE” /> are:
    • Registry Location: HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\OfficeUpdate
    • Name: EnableAutomaticUpdates
    • Type: DWORD
    • Values: 0 or 1
      • 1 = automatic updates are enabled
      • 0 = automatic updates are disabled
  1. You can hide the option to disable or enable updates from the Account section of each Office 365 application through group policy or registry. Source: Automatic updating for Microsoft Office is not enabled – Office 365 | Microsoft Docs
    • Group Policy:
    • Path: Computer Configuration/Policies/Administrative Templates/Microsoft Office 2016 (Machine)/Updates/
    • Setting: Hide option to enable or disable updates = enabled
    • Registry:
    • Location: HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\OfficeUpdate
    • Name: HideEnableDisableUpdates
    • Type: DWORD
    • Values: 0 or 1
      • 1 = hide the menu option to enable or disable automatic updates
      • 0 = show the menu option to enable or disable automatic updates
Enable Disable Updates option in Office applications
Hide option to enable or disable updates Group policy
Registry location to enable or disable updates in office applications
  1. Channel attribute (<Updates Channel = “MonthlyEnterprise”>) for the Updates element defines which channel to use for updating Office after it is installed whereas Channel attribute for the Add element is used to specify an update channel while installing Office. The channel attribute in Updates element can also be used to change the channel for an existing installation of Office. For both purposes, which channel to use for updating office after it is installed and change the channel for an existing installation, Microsoft provides a Group Policy – Channel Name. I always prefer the GPO method as it takes precedence over the Channel value set by using the Office Deployment Tool. That’s why <Updates Channel = *****> is not part of our XML file shown at the beginning of this article. The default value is Current if not specified. In my opinion, Monthly Enterprise Channel is best suited for all type of Citrix Deployments; however, different organizations may have different standards and approach towards keeping office applications updated.
    • Path: Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates
    • Setting: Update Channel = Enabled
    • Value: Channel Name = Monthly Enterprise Channel
Group policy for Office 365 Update channel 1
  1. After the group policy has been applied or ODT has executed, the Office Automatic Update 2.0 scheduled task must run based on trigger definition or manually. On first run, it detects the updated policy/change done through ODT and updates the update channel. On next run, it detects the new assigned channel and Office updates to a new build from that channel. The Office user interface on the client device will not show the updated channel until a build of Office from the new channel is installed. See Change the Microsoft 365 Apps update channel for devices in your organization.
  2. In one of the previous step, we verified the Update Channel for the installation of Office Apps through Registry – HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration with the help of Microsoft provided Office CDN URLs. At the same registry location, notice the value of UpdateChannel and CDNBaseUrl, they are same – (Semi-Annual Enterprise Channel in this case) http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114. Once Office Automatic Updates 2.0 scheduled task changes the update channel to Monthly Enterprise channel for example, it will replace the value of UpdateChannel in registry to http://officecdn.microsoft.com/pr/55336b82-a18d-4dd6-b5f6-9e5095c314a6. Also notice the value of UpdateChannelChanged, currently it is set to False. After update channel change, it will be replaced with True. Upon next successful Office 365 Client update, UpdateChannelChanged will reset to False.
Registry location for Office 365 Update channel
  1. If you manage Office updates through Configuration Manager, you can change the update channel by using Group Policy or the ODT (as described in previous steps) in combination with Configuration Manager. After the Office Automatic Update 2.0 task runs and updates the assigned channel, the new build is installed the next time the Configuration Manager client runs a Software Updates Deployment Evaluation Cycle. See Change the update channel with Configuration Manager.
  2. Configure Licensing and Activation options after clicking on Next in Update and Upgrade option. First, turn on Automatically accept the EULA. This adds <Display AcceptEULA=”TRUE” /> to the XML file. Notice the Product Key section is greyed out, that’s because Microsoft 365 Apps for Enterprise was selected under Product and Release Option of Office Customization Tool (OCT). Now, under Product activation section, select Shared Computer (more on shared computer activation later in this article), check Allow the licensing token to roam, provide a path to a shared folder on network (Microsoft 365 Apps needs to be able to write to that folder location) and click Next. This adds following elements and attributes to the XML file:
    • <Property Name=”SharedComputerLicensing” Value=”1″ /> – Default value is 0 if not specified, which means disabled. 1 means enabled.
    • <Property Name=”SCLCacheOverride” Value=”1″ /> – Default value is 0 if not specified. 1 means you want to roam the licensing token.
    • <Property Name=”SCLCacheOverrideDirectory” Value=”\\serverc\share” /> – A shared folder location to hold licensing tokens.
Licensing and activation for Office 365 applications
  1. Shared computer activation can be verified at three locations. See Verify that shared computer activation is enabled
    • Go to File > Account > About Word (or any other office application). You should see Shared Computer Activation, instead of a Product ID.
    • Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration and look for SharedComputerLicensing. Its value should be set to 1.
    • Go to the shared folder location on network. You should see some text files for each user. If network path wasn’t defined (more on this later in this article) then go to %localappdata%\Microsoft\Office\16.0\Licensing (Default location) for a user who has been assigned a Microsoft 365 Apps for Enterprise license. You should see some text files. These file appear only after activation.
How to verify Office 365 shared computer activation 1
How to verify Office 365 shared computer activation 2
How to verify Office 365 shared computer activation 3
  1. Shared computer activation allows deployment of Microsoft 365 Apps on a computer that is accessed by multiple users, for example, Citrix non-persistent VDI, Hosted Shared Desktops, RDSH hosts. Here is what Microsoft at Overview of shared computer activation says about Licensing token roaming – “Starting with Version 1704 of Microsoft 365 Apps, you can configure the licensing token to roam with the user’s profile or be located on a shared folder on the network. Previously, the licensing token was always saved to a specific folder on the local computer and was associated with that specific computer. In those cases, if the user signed in to a different computer, the user would be prompted to activate Microsoft 365 Apps on that computer in order to get a new licensing token. The ability to roam the licensing token is especially helpful for non-persistent VDI scenarios.
  2. About Licensing token renewal from the same MS docs linked above – “The licensing token that is stored on the shared computer is valid only for 30 days. As the expiration date for the licensing token nears, Microsoft 365 Apps automatically attempts to renew the licensing token when the user is logged on to the computer and using Microsoft 365 Apps. If the user doesn’t log on to the shared computer for 30 days, the licensing token can expire. The next time that the user tries to use Microsoft 365 Apps, Microsoft 365 Apps contacts the Office Licensing Service on the internet to get a new licensing token. Because the shared computer has to contact the Office Licensing Service on the internet to obtain or renew a licensing token, reliable connectivity between the shared computer and the internet is necessary.
  3. I prefer enabling Microsoft 365 shared computer activation through Group policy that’s why it is not part of the XML file shown at the beginning of this article.
    • Path: Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Licensing Settings
    • Setting: Use shared computer activation = Enabled
Group policy for shared computer activation of office 365 applications
  1. There is a group policy (Specify the location to save the licensing token used by shared computer activation) to enable Licensing token roaming and define the network path to hold licensing tokens for users. I don’t prefer this group policy method. You should access customer requirements before deciding the best way to deal with Licensing token roaming. The default location for licensing token for each user is %localappdata%\Microsoft\Office\16.0\Licensing. Now, to roam the token with user, I simply add the default location to Directories to synchronize Citrix policy.
    • Microsoft Office Group Policy:
    • Path: Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Licensing Settings
    • Setting: Specify the location to save the licensing token used by shared computer activation = Enabled
    • Value: Folder location = <network path>
    • Citrix Group Policy:
    • Path: Computer Configuration\Policies\Administrative Templates\Citrix Components\Profile Management\File system\Synchronization
    • Setting: Directories to synchronize
    • Value: AppData\Local\Microsoft\Office\16.0\Licensing
      • There is an alternate way of configuring license token roaming through registry. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration, add a string value of SCLCacheOverride, and set the value to 1. Also, add a string value of SCLCacheOverrideDirectory and set the value to the path of the folder to save the licensing token.
Directories to synchronize Citrix UPM group policy
  1. Now in General option, provide a name to set the Company property on Office documents and a description for this configuration for documentation purposes. This adds <Setup Name=”Company” Value=”guptanishith.com” /> under AppSettings element in XML file.
General option in Office customization tool
  1. In Application preferences, there are plethora of options available to define application preferences for Microsoft 365 Apps, including VBA Macro notifications, default file locations, and default file format. The one I am using is Default File Format for Excel, Word and Powerpoint. To configure, select the setting and click Configure in front of it. This will open an overlay panel from the right side of the page, choose the desired value and close the panel. This adds (for example) <User Key=”software\microsoft\office\16.0\excel\options” Name=”defaultformat” Value=”51″ Type=”REG_DWORD” App=”excel16″ Id=”L_SaveExcelfilesas” /> under AppSettings element in XML file.
Application preferences in Office customization tool 1
Application preferences in Office customization tool 2
  1. Finally, review all the options you have configured and click Export. Choose Keep Current Settings and click OK.
Configuration File export in Office customization tool 1
  1. Accept the terms of license agreement, provide a name to the file and click Export. I prefer giving a descriptive name to the XML file, for example Configuration-MEP(I)-MEP(U)-Prod(W10), where MEP stands for Monthly Enterprise Channel, I stands for Update channel for Installation, U stands for Update channel for installing updates, Prod means production and W10 means windows 10 machines. Additionally, abbreviations for language packs can also be considered in the name of XML file. This greatly helps in separating configuration files for prod and pilot users or SAEP (Semi-Annual Enterprise Channel) with MEP or CU (Current).
Configuration File export in Office customization tool 2
  1. Copy the downloaded XML file to the file share (\\guptanishith.com\Apps\M365). Download office files with the help of \\guptanishith.com\Apps\M365\setup.exe /download \\guptanishith.com\Apps\M365\Configuration-MEP(I)-MEP(U)-Prod(W10).xml.
Download office files using Office Deployment toolkit (ODT)
  1. This downloads the office files inside \\guptanishith.com\Apps\M365\Office\Data folder. The download process also creates the Office folder. The size of the folder with one language is approximately 2.8 GB. With two languages, the size is approximately 3.12 GB. The v64.cab file lets the ODT validate the installation media. This file is required for local installation and is automatically provided when downloading the latest build for a respective channel. Notice that stream.x64.x-none.dat, is over 2 GB (almost 2.5 GB). This file contains all the language-neutral content. Files stream.x64.en-us.dat and stream.x64.nb-no.dat contain support languages, which are typically about 370 MB each. File stream.x64.nn-no.proof.dat contains proofing tools, which is almost 3 MB.
Office 365 Installation files 1
Office 365 Installation files 2
  1. Install by executing \\guptanishith.com\Apps\M365\setup.exe /configure \\guptanishith.com\Apps\M365\Configuration-MEP(I)-MEP(U)-Prod(W10).xml. It will not display anything because of <Display Level=”None” /> in XML file.
Install office 365 using Office Deployment toolkit (ODT)
  1. Once completed, Office should appear in Programs and Features and all office applications that were included for installation will appear under Recently added section of Start Menu.
Office 365 application in Program and Features
Office 365 applications in start menu
  1. This concludes Office 365 (Microsoft 365 Apps) installation in Citrix. Continue reading if you are interested in installing previously excluded office 365 app, uninstalling specific office app and uninstall whole office suite.

Install previously excluded Office 365 Application

During Office 365 installation in Citrix, you might have not included an office application, maybe because it wasn’t needed at that time. Let’s see how to install previously excluded Office 365 (Microsoft 365 Apps) application in Citrix. This one is simple. Create a copy of an existing configuration file. Add Version attribute to the Add element with value set to MatchInstalled. This ensures that the same version of Office is installed, even if a newer version is available. Microsoft recommends including the Channel attribute when you use the version attribute. If you don’t include the Channel attribute, the default channel will be used, which may or may not match the specified version.

Now, change the value of ID attribute in Language element to MatchInstalled. If you previously installed additional proofing tools then do the same for ID attribute of Language element under <Product ID=”ProofingTools”>.

Remove the <ExcludeApp ID=”PowerPoint” /> row for the previously excluded Office application that you want to install now. Let other excluded apps be there. That’s it, you don’t need anything else in the configuration file. Use below code for an example:

<Configuration>
  <Add OfficeClientEdition="64" Channel="MonthlyEnterprise" version="MatchInstalled">
    <Product ID="O365ProPlusRetail">
      <Language ID="MatchInstalled" />
      <ExcludeApp ID="Access" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
      <ExcludeApp ID="OneDrive" />
      <ExcludeApp ID="OneNote" />
      <ExcludeApp ID="Outlook" />
      <ExcludeApp ID="Publisher" />
      <ExcludeApp ID="Teams" />
      <ExcludeApp ID="Bing" />
    </Product>
    <Product ID="ProofingTools">
      <Language ID="MatchInstalled" />
    </Product>
  </Add>
</Configuration>

Finally, initiate the installation.

Uninstall Powerpoint from Office 365 suite

I intentionally removed <Display Level=”None” /> from XML file just to show what happens during the installation. Well, nothing much, just two graphical windows and installation is completed.

Office 365 Installation progress 1
Office 365 Installation progress 2

Uninstall Office 365 (Microsoft 365 Apps) Applications

Create a new XML configuration file (RemoveOffice.xml for example) with following code and execute setup.exe /Configure RemoveOffice.xml. This will remove all Microsoft 365 Apps products and languages, including Project and Visio. Change the Product ID accordingly.

<Remove All="TRUE">
  <Product ID="O365ProPlusRetail" >
  </Product>
</Remove>

Uninstall specific Office Application, Language pack and Proofing tool

  1. During Office 365 installation in Citrix, you might have installed all the office applications but you may want to remove a specific application(s) now. Let’s see how to do that. To remove previously installed office application, add version attribute to the add element with value set to “MatchInstalled”. Make sure Channel attribute is defined in Add element. Set <Language ID=”MatchInstalled” /> for Office Suite (<Product ID=”O365ProPlusRetail”>) as well as Proofing tools (<Product ID=”ProofingTools”>). Add the application to be removed in the ID attribute of ExcludeApp element. Also, define previously excluded apps in the XML configuration file. Use below code as a reference. Here, I am removing Excel, which was previously installed. Access and PowerPoint were previously excluded.
<Configuration>
<Add OfficeClientEdition="64" Channel="MonthlyEnterprise" Version=”MatchInstalled”>
<Product ID="O365ProPlusRetail">
<Language ID="MatchInstalled" />
<ExcludeApp ID="Access" />
<ExcludeApp ID="Excel" />
<ExcludeApp ID="PowerPoint" />
</Product>
<Product ID="ProofingTools">
<Language ID="MatchInstalled" />
</Product>
</Add>
</Configuration>

  • From ExcludeApp element | Microsoft Docs – If a configuration file with ExcludeApp is used to install Office on a device that already has Microsoft 365 Apps installed, the ExcludeApp setting is treated differently based on the list of languages:
    • If the list of languages in the configuration file includes all the installed languages, then the ExcludeApp setting in the file replaces any existing ExcludeApp setting on the device. This is also true if the list of languages in the configuration file includes both all the installed languages and additional languages.
    • If the list of languages in the configuration file doesn’t include all the installed languages, then the ExcludeApp setting in the configuration file will be combined with the ExcludeApp setting on the device.
  1. To remove an installed language, you must provide both the product and the language. Use below code as an example. Change the Product ID accordingly.
<Remove All="FALSE">
  <Product ID="O365ProPlusRetail" >
    <Language ID="hi-IN" />
  </Product>
</Remove>
  1. Use below code to remove language packs or proofing tools.
<Remove>
  <Product ID="LanguagePack"> or <Product ID=”ProofingTools”>
    <Language ID="de-de" />
  </Product>
</Remove>

See FSLogix Office 365 container setup if you are interested.

13 thoughts on “Office 365 installation in Citrix

  1. We are getting “you can’t get there from here” error message.
    “This application contains sensitive information and can only be accessed from: “domain.name” domain joined devices. Access from personal devices is not allowed.”

    We do have a policy set not to allow use of personal devices. Citrix should not be considered personal devices. Is there a way around this? Thank you.

  2. Have you ever seen an issue with O365 auto updates on Citrix? We have disabled auto updating on the image of our XenDesktop server (Win Server 2019) and when we deploy the template, this is set correctly and Office shows as not updating. However, once deployed after a while something within the system (almost certainly a login or start of an Office application by a user) changes this setting to auto update and bypasses the group policy and we are unable to change it back.

    I have noticed that this seems to be linked to a scheduled task that is created called \Microsoft\Office\Office Serviceability Manager. I have tried disabling this task on the image however the system automatically recreates it as enabled.

  3. Thank you for this. We are trying to disable automatic updates for Office 365 on Citrix XenDesktop but nothing we do seems to work. We have the Group Policy set to prevent updates and it is even set as a local policy on our image in MCS. However it seems whenever a new user logs in, Office creates a scheduled task called Office Serviceability Manager which overrides the group policy and sets Office to auto update. I have tried disabling this task on the image however Office just deletes and recreates it.
    Do you know how we can disable O365 auto updates completely? We are going crazy here trying to work it out!

    1. Hi Paul,

      You can disable office updates with the following registry key:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration
      UpdatesEnabled
      REG_SZ “False”

  4. In general there are two issues with running Office 365 as a published app on server 2019.

    1. Office 365 locks up when starting as a published app. The fix is to disable Office 2016 hardware graphics acceleration using Office GPO settings.

    2. Office 365 shared computer activation doesn’t work when running as a published app. There is a fix for this documented by Microsoft which includes creating a logon script to install the appropriate license activation modern UI package so that it’s available for each user account that launches the published app.

    1. @Wendell – for your 2nd issue listed above, you state that there’s a documented fix for this by Microsoft. Would you mind giving a link to the document? Been looking for it for a little while and can’t seem to find what you’re referencing.

  5. While updating M365 Apps in environment, if a user is active in ica session using any office products, updation fails. Any solution for the same ?

    1. Updates can only be applied when office applications aren’t running.
      Are you using CDN to deliver updates or Configuration Manager? And have you suppressed all update notifications?

Leave a Reply