Independent analysis by NHI Mgmt GroupSource article: Fleet, “Put Microsoft Store apps in Windows self-service with winget” (August 7, 2026)

TL;DR: winget install for Microsoft Store apps fails under SYSTEM because Store packages are per-user, so the working pattern is to run the install inside the logged-in user session, then verify success with MSIX-native checks rather than the registry, according to Fleet.


At a glance

What this is: NHI Mgmt Group's analysis, drawing on Fleet's blog post: SYSTEM-context deployment does not work for Microsoft Store packages when bringing Store apps into Windows self-service with winget.

Why it matters: It matters because device teams need to understand where endpoint automation collides with user-scoped application models, especially when packaging, verification, and rollback depend on the right execution context.


Context

Microsoft Store app deployment is not just a packaging problem, it is an execution-context problem. The app is designed to install per user, while Fleet runs scripts as SYSTEM, so the usual endpoint-management assumption of device-wide execution breaks down before the package is even resolved.

The governance gap is between automation control and application scope. For identity and endpoint teams, that means the right question is not whether winget can run a command, but whether the installation context matches the entitlement model for the app and the user session.


Key questions

Q: Why do Microsoft Store app installs fail when run from endpoint management tools?

A: They fail because the Microsoft Store app model is user-scoped, while many endpoint tools execute scripts as SYSTEM or another device-level context. The installer and the store source expect a logged-on user session, so the command can exist yet still be rejected or resolve incorrectly. The fix is to align execution context with the app’s delivery model.

Q: What should security and IT teams do first when winget cannot install a Store app?

A: First confirm whether the app is meant to be installed per user or provisioned machine-wide. If it is a user-scoped Store app, move execution into the logged-on session and verify the result with MSIX-native checks. If it must be on the image, use a provisioning workflow instead of trying to force winget to do both jobs.

Q: What are the signs that a Windows Store app deployment is using the wrong verification method?

A: A common sign is that the installer appears to run successfully, but the app does not show up in the registry-based uninstall view. Another sign is that remediation logic never triggers because the script checks the wrong inventory plane. For Store apps, the authoritative check is the MSIX package view, not the legacy uninstall registry.

Q: When should teams use per-user installation instead of machine-wide provisioning for Store apps?

A: Use per-user installation when the app is meant to appear in self-service for a logged-on user and can be installed in that user’s session. Use machine-wide provisioning only when the app must be present on the device image for all users and you are prepared to handle the extra licensing and package-hosting overhead.


Technical breakdown

Why winget fails in the SYSTEM context

Fleet executes Windows scripts as SYSTEM, but Microsoft Store packages are registered per user. That matters because winget ships through App Installer as an MSIX application, and Microsoft documents that MSIX packages are not supported in the SYSTEM context. Even when the binary is reachable, the msstore source refuses device-wide installation under admin context. The key technical point is that the Store is enforcing a user-scoped delivery model, not merely a permissions check. A flag such as --scope machine changes the target account, not the installation semantics, which is why it does not solve the problem.

Practical implication: Treat Store app delivery as a session-scoped workflow, not a device-scoped one.

Why a scheduled task in the logged-on session works

The workaround is to let SYSTEM create a scheduled task and let the logged-on user execute winget in their own session. That preserves automation while moving the install into the context where the Store and app execution alias resolve normally. The pattern is deliberately simple: find the active user, register the task, start it, wait for completion, and remove it. This is less about clever scripting and more about matching the installer’s trust boundary to the user boundary the Store expects.

Practical implication: Use the interactive user session as the execution boundary for per-user Store installs.

Why verification must use the MSIX package view

Store apps do not appear in the usual uninstall registry keys, so registry-based verification produces false negatives. The correct check is Get-AppxPackage -AllUsers, which queries the MSIX subsystem rather than the legacy Windows Installer view. That distinction matters because deployment scripts need to confirm that the package exists for a user profile, not just that a command exited. In this model, post-install verification becomes the control that turns a scheduled task run into a validated installation. Without that step, the platform can report apparent success while the app never materialised.

Practical implication: Verify Store app presence with MSIX-native queries, not registry checks.


NHI Mgmt Group analysis

Context-bound deployment is the real control issue: this pattern shows that endpoint automation fails when the installer’s trust boundary does not match the package’s scope. The article is not really about winget syntax; it is about execution context, entitlement scope, and verification domain. For device teams, the lesson is that packaging success depends on aligning task context with application model, not on forcing a universal install path.

Session-scoped installation is the right governance pattern for user apps: when software is intentionally user-bound, device-wide orchestration creates false confidence and brittle workarounds. AI governance platform buyer's guide is not the relevant lens here, but the governance principle is the same: discovery and control must fit the object being managed. For endpoint programmes, that means treating the active user session as the unit of control when the app vendor has chosen per-user delivery.

MSIX-native verification is a governance requirement, not a scripting preference: when the platform stores state outside the legacy registry, the validation method has to change with it. A post-install check that reads the wrong inventory plane will always mislead operators about compliance and rollout success. For practitioners, the important conclusion is that verification should interrogate the authoritative package store, otherwise rollback logic and reporting both drift away from reality.

Automated app delivery needs a defined boundary between convenience and provenance: the article’s generator pattern is useful because it standardises only the parts that vary, while keeping the wrapper logic consistent. That reduces operator error, but only if the organisation also accepts the limits of user-session installs and the need for manual provisioning in machine-wide cases. For device governance, consistency comes from matching the deployment model to the package model, not from one universal script template.

From our research library:

What this signals

Execution-context drift: endpoint automation fails when the control plane assumes device-level authority but the application model is user-scoped. That mismatch is common in self-service software delivery, and it is why session-aware orchestration matters as much as packaging syntax.

For identity and endpoint programmes, this is another reminder that entitlement boundaries must be treated as first-class design inputs. If the app only accepts a user context, the workflow has to honour that boundary instead of trying to paper over it with elevated execution.

The operational signal is simple: when install success depends on who is logged in, the deployment model is not truly machine-neutral. Teams should expect more packages to require context-aware delivery and context-aware verification as application ecosystems become more segmented.


For practitioners

  • Define the installation scope before packaging Store apps Classify each app as per-user or machine-wide before writing the deployment script, because the install mechanism changes completely between winget in a user session and Appx provisioning as SYSTEM.
  • Move winget execution into the logged-on user session Use a short-lived scheduled task owned by the console user so winget runs where the Microsoft Store accepts it, rather than trying to force SYSTEM-context installation.
  • Validate installs with Get-AppxPackage Treat the MSIX package list as the source of truth and use Get-AppxPackage -AllUsers to confirm that the package exists after the task completes.
  • Use provisioning only for true machine-wide deployments Reserve Add-AppxProvisionedPackage and license handling for apps that must land on the image for everyone, because that path introduces hosting and licensing overhead.

Key takeaways

  • Microsoft Store apps expose a control gap between device-level automation and user-scoped installation, and that gap is why SYSTEM-context winget runs fail.
  • The article shows that verification must move from legacy registry checks to MSIX-native inventory, or rollout reporting will be wrong.
  • Practitioners need to choose between session-scoped self-service delivery and machine-wide provisioning based on the app’s actual scope, not the convenience of a single script.

Related NHI Mgmt Group resources: Infrastructure as Code Security Guide · Shadow AI and AI Agent Discovery Guide · Mobile App Security Testing Guide


Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while CIS Controls v8, NIST CSF 2.0 and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
CIS Controls v8CIS-5 — Account ManagementThe article hinges on running installs in the correct user account context.
Recommendation — Use CIS-5 to align deployment actions with the correct user and device account boundaries.
NIST CSF 2.0PR.AA-05 — Access Permissions, Entitlements and AuthorizationsStore app delivery depends on matching execution context to the entitlement model.
Recommendation — Apply PR.AA-05 to enforce installation workflows that respect user-scoped entitlements.
NIST SP 800-53 Rev 5IA-5 — Authenticator ManagementThe workflow depends on controlled use of credentials, tokens and session context during install.
Recommendation — Manage authenticator use so scripted installs execute only in the authorised user context.
OWASP Non-Human Identity Top 10NHI-10 — Human Use of NHIThe script illustrates a human-operated automation boundary where context must not be assumed.
Recommendation — Audit automation that relies on human sessions and ensure it does not assume system-wide reach.

Key terms

  • Per-user application deployment: A deployment model where software is installed into a specific user profile rather than the device image. The package is available only in that user context, so automation must execute with the right session and verification must query the right inventory plane.
  • MSIX: MSIX is a Windows application packaging format that helps preserve installation integrity and manage deployment consistently. It uses signature validation and OS-level protections to detect tampering with application files. For security teams, MSIX is useful because it supports controlled distribution without depending on a legacy sandbox for trust.
  • User session execution: Running an installation or administrative action inside the interactive user’s logged-on session rather than in a device service context. It is often the only way to satisfy application models that reject system-wide execution or need per-user registration.
  • Machine-wide provisioning: A deployment method that places an application into the device image so it is available to all users. For Store apps, this is a distinct path from winget installation and usually requires extra licensing, hosting, and operational overhead.

Deepen your knowledge

NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, machine identity security, and secrets management. It gives practitioners a practical foundation for controlling access, scope, and lifecycle across identity-heavy programmes.
NHIMG Editorial Note
Published by the NHIMG editorial team on October 22, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org