Microsoft 365 Apps (still commonly called "Office 365") installs with Click-to-Run, which by default streams the whole suite from Microsoft's CDN on every machine. For enterprise deployment that's slow, inconsistent, and dependent on each client's internet connection. The Office Deployment Tool solves this: you download the installation source once with setup.exe /download, define exactly what to install in a configuration.xml, then install offline with setup.exe /configure. This guide builds a clean offline package, stages it on a network share, and - importantly - pins the install to that local source so clients don't silently fall back to the internet. It also covers verifying the result and controlling updates. The key rename to remember: the product is Microsoft 365 Apps for enterprise, but the ODT Product ID is still O365ProPlusRetail.
Before you start
What you will learn
- How to use the Office Deployment Tool (ODT) to download the Microsoft 365 Apps source once, stage it on a network share, and install it offline on target computers with a controlled configuration.
- Downloading Office individually on every machine wastes bandwidth and produces inconsistent installs. A single downloaded source plus an XML configuration gives you one predictable, repeatable package for the whole fleet.
Requirements
- You need local administrator rights on the machine that builds the source and on every target computer, a Windows file share reachable by the clients (or their computer accounts), and a per-user Microsoft 365 Apps license for activation. Only the initial /download step needs internet.
- Windows 10, Windows 11, or Windows Server 2016/2019/2022/2025. Plan for several GB of source files on the share (roughly 3.5-4 GB for one 64-bit language, more with extra languages or apps) and about 4 GB free on each client.
- Local administrator on the build machine and on each target computer
Good to know
- Most of the up-front time is the one-time source download; per-client installs are fast.
- Commands and XML verified against current Microsoft Learn ODT documentation in July 2026.
Quick answer
Download the Office Deployment Tool from the Microsoft Download Center, build a configuration.xml (ideally with the Office Customization Tool at config.office.com), run setup.exe /download to fetch the source once, copy setup.exe plus the Office folder to a network share, then install on each client with setup.exe /configure using a config that sets SourcePath to the share and AllowCdnFallback to FALSE. Activation is per user via their Microsoft 365 license.
setup.exe /download configuration.xml then setup.exe /configure install.xmlStep-by-step tutorial
8 stepsDownload and extract the Office Deployment Tool
Get the current ODT so you have setup.exe and sample configuration files.
https://www.microsoft.com/en-us/download/details.aspx?id=49117Download the Office Deployment Tool from the Microsoft Download Center (https://www.microsoft.com/en-us/download/details.aspx?id=49117). Always take the latest version rather than pinning an old build. Run the downloaded self-extracting officedeploymenttool.exe, accept the license, and extract to a working folder such as C:\ODT.
Extraction gives you setup.exe (the tool itself) plus sample configuration.xml files you can adapt.
mkdir C:\ODTPin the download page, not a version number - Microsoft updates the ODT regularly with fixes. If a later step misbehaves, re-download the newest ODT first.
Create the configuration.xml
Define exactly what to download and install: product, edition, channel, languages, and exclusions.
https://config.office.com/deploymentsettingsThe easiest and least error-prone way to build this file is the Office Customization Tool at https://config.office.com/deploymentsettings - pick the suite, channel, architecture, languages, and apps, then export the XML. You can also edit it by hand. A solid enterprise starting point:
<Configuration> <Add OfficeClientEdition="64" Channel="MonthlyEnterprise"> <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> <ExcludeApp ID="Groove" /> <ExcludeApp ID="Lync" /> </Product> </Add> <Property Name="SharedComputerLicensing" Value="0" /> <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" /> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%temp%" /></Configuration>
What the key options mean:
- OfficeClientEdition="64" installs the 64-bit build (the default and recommended edition).
- Channel="MonthlyEnterprise" gives predictable monthly updates with extra validation.
- Product ID="O365ProPlusRetail" is Microsoft 365 Apps for enterprise. Use O365BusinessRetail for Business plans.
- ExcludeApp removes apps you don't want. Groove is OneDrive for Business (legacy client), Lync is Skype for Business; use OneDrive, Teams, or Bing to exclude those.
- Display Level="None" with AcceptEULA="TRUE" makes the install silent.
Keep this file under version control per client site. Product IDs differ by SKU: O365ProPlusRetail (enterprise) vs O365BusinessRetail (business). A wrong Product ID is the most common cause of an install that pulls the wrong suite.
Download the Office installation source once
Fetch the full Click-to-Run source to a local folder so clients never need the CDN.
From an elevated command prompt in C:\ODT, run the ODT in download mode against your configuration file. This is the only step that requires internet, and you only do it once per channel/language set.
C:\ODT\setup.exe /download C:\ODT\configuration.xml
The tool creates an Office subfolder (with a Data\<version> folder) containing the streamed installation files. If the download is interrupted, run the same command again - ODT resumes and only fetches what's missing.
C:\ODT\setup.exe /download C:\ODT\configuration.xmlThe download has no visible progress bar - it returns to the prompt when done. Confirm success by checking that Office\Data\<version> exists and the folder size is in the expected GB range, and review the log in %temp% if it fails.
Create an install configuration pinned to the local source
Force clients to install strictly from the share, with no silent CDN fallback.
Create a second file (for example install.xml) that points at the share with SourcePath and disables CDN fallback. This is the step that actually makes the deployment offline - without SourcePath and AllowCdnFallback="FALSE", Click-to-Run can quietly pull from the internet.
<Configuration> <Add SourcePath="\\fileserver\M365Source" OfficeClientEdition="64" Channel="MonthlyEnterprise" AllowCdnFallback="FALSE"> <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> <ExcludeApp ID="Groove" /> <ExcludeApp ID="Lync" /> </Product> </Add> <Property Name="SharedComputerLicensing" Value="0" /> <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" /> <Updates Enabled="TRUE" /> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%temp%" /></Configuration>
SourcePath must point at the folder that contains the Office folder - not the Office folder itself. Set SharedComputerLicensing to 1 only for RDS, Citrix, or Windows multi-session (AVD) hosts.
Keep Channel identical to the channel you downloaded. If a language pack isn't in the local source and AllowCdnFallback is FALSE, that language simply won't install - add it to the download source instead of re-enabling fallback.
Install Office on target computers
Run the offline install on each client, interactively or through a deployment tool.
On a target machine, run the ODT in configure mode from an elevated context against the install configuration on the share:
\\fileserver\M365Source\setup.exe /configure \\fileserver\M365Source\install.xml
For at-scale rollout, call the same command from a GPO startup script (runs as SYSTEM), a Configuration Manager application, or an Intune Win32 app wrapping setup.exe. Because the install is silent (Display Level="None"), there's no user interaction.
\\fileserver\M365Source\setup.exe /configure \\fileserver\M365Source\install.xmlThe command must run elevated. A non-elevated run is the usual cause of an install that appears to do nothing or exits with an error. Check %temp% logs for the exit code if a client fails.
Verify the installation and activation
Confirm the right version, channel, and apps installed, and that Office is licensed.
Read the Click-to-Run configuration registry for version, channel, and excluded apps - this is fast and reliable, unlike querying Win32_Product (which is slow and can trigger MSI repair actions, so avoid it):
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' | Select-Object ProductReleaseIds, VersionToReport, CDNBaseUrl, O365ProPlusRetail.ExcludedApps
For activation, the authoritative check for standard user-based subscriptions is File > Account inside any Office app, which should show *Product Activated* once the user signs in. ospp.vbs /dstatus is mainly useful for volume/KMS or shared-computer scenarios, not per-user subscription activation.
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' | Select-Object ProductReleaseIds, VersionToReport, CDNBaseUrl, O365ProPlusRetail.ExcludedAppsThe channel is encoded in CDNBaseUrl - for example the Monthly Enterprise Channel GUID 55336b82-a18d-4dd6-b5f6-9e5095c314a6. Do not use Get-WmiObject Win32_Product; enumerating it reconfigures every installed MSI and is a known performance and stability trap.
Control updates and ongoing maintenance
Decide how clients update after deployment and keep the offline source current.
Computer Configuration > Policies > Administrative Templates > Microsoft Office 2016 (Machine) > UpdatesPick an update strategy and set it in the configuration or via policy:
- CDN updates (simple): leave Updates Enabled="TRUE" and clients pull updates from Microsoft directly.
- Local update source (bandwidth-controlled): download the newer source to a share and point clients at it:
<Configuration> <Updates Enabled="TRUE" UpdatePath="\\fileserver\M365Updates" /></Configuration>
- Policy-managed: use the Office ADMX Update Channel policy under Computer Configuration > Administrative Templates > Microsoft Office 2016 (Machine) > Updates, which overrides the channel set by ODT.
Refresh the offline source periodically by re-running setup.exe /download - ODT only fetches the changed files.
C:\ODT\setup.exe /download C:\ODT\configuration.xmlAlways pilot a new build/channel with a small group before broad release. Feature updates can change behavior, and a bandwidth spike from many clients updating at once can saturate a WAN link.
How to Confirm the Offline Deployment Worked
A successful offline deployment has three properties. First, the apps installed from your local source - you should see no CDN download during install, and the client's ClickToRun CDNBaseUrl should match the channel you chose. Second, the right build is present: the ClickToRun registry's VersionToReport matches the version in your downloaded source, and O365ProPlusRetail.ExcludedApps lists exactly the apps you excluded. Third, Office is activated: File > Account shows *Product Activated* after the user signs in with their licensed account. If any of these is off, it usually points back to a specific step - a missing SourcePath, a channel mismatch, or a licensing gap - rather than a broken install overall.
- Apps installed from the share with no CDN traffic; ClickToRun registry shows the expected version, channel, and excluded apps; File > Account shows Product Activated.
- The install pulls gigabytes from the internet (SourcePath missing or fallback allowed), the wrong suite installed (wrong Product ID), or apps show Unlicensed (no license assigned or the user hasn't signed in).
- Should match the version in your downloaded Office\Data folder.
- GUID for the Monthly Enterprise Channel; confirms clients are on the intended channel.
Troubleshooting
The install still downloads gigabytes from the internet
Cause: The install configuration has no SourcePath, or AllowCdnFallback isn't set to FALSE, so Click-to-Run reaches the CDN.
Use an install config with SourcePath="\\server\share" and AllowCdnFallback="FALSE", and make sure the Office folder actually exists at that path alongside setup.exe. Keep the install Channel the same as the downloaded source.
Silent deployment via GPO or SCCM fails, but a manual install works
Cause: The scheduled/startup job runs as SYSTEM (the computer account), which has no read access to the share.
Grant Domain Computers Read & Execute on both the share and NTFS permissions. Test by confirming the computer account can reach \\server\share\setup.exe.
setup.exe seems to do nothing or exits with an error code
Cause: The command wasn't run elevated, or an older MSI-based Office is blocking the install.
Run from an elevated prompt or as SYSTEM. To remove legacy Office, add <RemoveMSI /> to the configuration. Read the log in %temp% for the specific exit code.
Office installed but shows Unlicensed or Product Notice
Cause: The user has no Microsoft 365 Apps license, hasn't signed in yet, or it's a shared host without shared computer licensing.
Assign a license and have the user sign in via File > Account. For RDS/Citrix/AVD, set SharedComputerLicensing to 1 in the configuration and reinstall or reconfigure.
Unwanted apps (Teams, OneDrive) installed anyway
Cause: The matching ExcludeApp entries were missing or misspelled, or exclusions weren't applied to every Product block.
Add the correct <ExcludeApp ID="..." /> entries (for example Teams, OneDrive, Groove, Lync) and confirm the result in the ClickToRun registry's O365ProPlusRetail.ExcludedApps value.
Frequently asked questions
Do target computers need internet to install Office offline?
No for the installation itself, as long as the install config sets SourcePath to your local share and AllowCdnFallback="FALSE". Clients do need internet later for activation and for the user to sign in with their Microsoft 365 account.
What Product ID do I use for Microsoft 365 Apps for enterprise?
Use O365ProPlusRetail - it's still the correct ID even though the product was renamed from Office 365 ProPlus. Use O365BusinessRetail for Microsoft 365 Business plans, and different IDs for LTSC/perpetual editions.
Which update channel should enterprises use?
Monthly Enterprise Channel gives predictable monthly updates with extra validation and suits most organizations. Semi-Annual Enterprise Channel updates twice a year for maximum stability, while Current Channel ships features fastest but with the least soak time.
How do I make sure Office installs from the share and not the internet?
In the install configuration, set SourcePath to the folder that contains the Office folder and set AllowCdnFallback="FALSE". Keep the install Channel identical to the channel you downloaded so versions match.
How do I check the installed Office version and channel?
Read the Click-to-Run registry at HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration (VersionToReport, CDNBaseUrl, ExcludedApps). Avoid Get-WmiObject Win32_Product, which is slow and can trigger MSI reconfiguration across the machine.
How do I keep Office updated in an offline environment?
Download a newer source to an updates share and point clients at it with <Updates Enabled="TRUE" UpdatePath="\\server\M365Updates" />, or manage the channel through the Office ADMX Update Channel policy. Re-running setup.exe /download only pulls changed files.






