Add Microsoft 365 Office apps (Excel, Access, OneNote, Outlook, PowerPoint, Word) as Windows Fleet-maintained apps#38826
Add Microsoft 365 Office apps (Excel, Access, OneNote, Outlook, PowerPoint, Word) as Windows Fleet-maintained apps#38826allenhouchins wants to merge 5 commits into
Conversation
Introduces managed app support for Microsoft Excel on Windows, including input definition, install/uninstall PowerShell scripts, and output metadata. Updates the ingester to treat EXE installers as machine-scoped for managed deployments.
Updated the Windows app validation logic to skip version checks for Microsoft Excel when installed via Office Deployment Tool, as the ODT version does not match the installed Excel version. Also reformatted the categories array in the Excel winget input JSON for consistency.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #38826 +/- ##
==========================================
- Coverage 67.04% 67.03% -0.02%
==========================================
Files 2894 2895 +1
Lines 225026 225243 +217
Branches 11772 11772
==========================================
+ Hits 150867 150983 +116
- Misses 60489 60588 +99
- Partials 13670 13672 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…uite Microsoft relabeled the Office Deployment Tool winget installer from x64 to x86 in every manifest after 16.0.19426.20170, so the Excel input could no longer resolve an installer. Switch installer_arch to x86 (the ODT self-extractor is architecture-neutral; the config XML's OfficeClientEdition="64" still installs 64-bit Office) and regenerate against the latest ODT build. Also generalize the validator's ODT version-skip from a hard-coded Excel check to a shared officeODTApps map so the rest of the Office suite can reuse it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…apps Extends the Microsoft Excel (Windows) ODT pattern to the rest of the Office suite. Each app installs via the Office Deployment Tool, preserving any other Office apps already present, and uninstalls by reconfiguring ODT (removing Office entirely only when no other suite apps remain). All six apps share the OfficeDeploymentTool winget package and the officeODTApps version-skip in the validator. Access is Windows-only and has no macOS counterpart. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ma-windows # Conflicts: # cmd/maintained-apps/validate/windows.go # ee/maintained-apps/outputs/apps.json
Why we're not breaking Microsoft 365 apps into individual Windows FMAs (for now)GoalTake the Microsoft Excel (Windows) FMA pattern and extend it to the rest of the Microsoft 365 suite — Access, OneNote, Outlook, PowerPoint, and Word — as separate per-app Windows Fleet-maintained apps. TL;DRAll of these apps install through the Office Deployment Tool (ODT), which deploys Microsoft 365 as a single Click-to-Run (C2R) suite. Windows registers that as one Add/Remove Programs entry ( What we confirmed about Fleet's FMA model
The core blocker: Click-to-Run registers one suite entry
Why "Excel was passing validation" was misleadingThe Excel-only CI run passed, but not because per-app detection worked. The validator matches a WHERE LOWER(name) LIKE '%Microsoft Excel%' OR install_location LIKE '%<AppPath>%'
So the per-app approach never truly worked — the single-app green check was an artifact of the validator's path fallback. The version problem (breaks any patch policy)The version the FMA pins ( Options we evaluated
There is no subscription standalone product ID for Access/Excel/PowerPoint/Word (verified against Microsoft's supported-product-ID list) — only perpetual 2021/2024 SKUs (plus evergreen A working per-app design is technically possible — but not worth the cost nowWe confirmed it could be done by combining:
That delivers per-app install + version + exists + a meaningful patched policy. However, it requires:
DecisionGiven the complexity, the shared-code/validator changes, and the fragile assumptions, we're not breaking the M365 apps into individual Windows FMAs at this time. The single Microsoft 365 Apps suite FMA (#43938) covers Microsoft 365 subscription customers correctly. If per-app Windows FMAs are needed later, the realistic paths are (a) the |
Summary
Adds the Microsoft 365 Office suite as Fleet-maintained apps for Windows: Excel, Access, OneNote, Outlook, PowerPoint, and Word.
All six install via the Office Deployment Tool (ODT) winget package (
Microsoft.OfficeDeploymentTool). Each app's install script extracts ODT, detects any Office apps already present, and runs a generatedconfig.xmlthat installs the target app while preserving the rest. The uninstall script reconfigures ODT to exclude the target app, removing Office entirely only when no other suite apps remain.Notes / gotchas
x64tox86in every manifest after16.0.19426.20170, which broke the original Excel input. Switchedinstaller_archtox86— the ODT self-extractor is architecture-neutral; the config XML'sOfficeClientEdition="64"is what installs 64-bit Office. Regenerated against the latest ODT build (16.0.19929.20090).officeODTAppsmap incmd/maintained-apps/validate/windows.goso existence is verified without a version comparison for all six apps.sha256isno_check/ignore_hashbecause the ODT self-extractor is a thin bootstrapper.Open item
frontend/pages/SoftwarePage/components/icons). The other five share an icon with their existing macOS entries. Access needs aMicrosoftAccessicon generated from a PNG before merge (no.appbundle exists since it's Windows-only).🤖 Generated with Claude Code