To install an MSIX package for all users via PowerShell, the package at the system level . Standard installation commands like Add-AppPackage only install the app for the current user. Recommended Method: Machine-Wide Provisioning
Provisioning ensures the application is available for all current and future users who sign in to the device. Microsoft Community Hub Open PowerShell as Administrator. Run the following command: powershell Add-AppxProvisionedPackage -Online -PackagePath "C:\Path\To\YourApp.msix" -SkipLicense Use code with caution. Copied to clipboard : Targets the currently running operating system. -PackagePath : Specifies the full path to your .msixbundle -SkipLicense
: Used if you do not have a specific XML license file (common for sideloaded apps). Super User Alternative: Using DISM
can also be used from a command prompt or PowerShell for the same effect: Super User powershell Dism /Online /Add-ProvisionedAppxPackage /PackagePath: "C:\Path\To\YourApp.msix" /SkipLicense Use code with caution. Copied to clipboard How it Works Registration
: Once provisioned, the app is automatically "registered" (installed) for every new user the first time they sign in. Existing Users
: For users already signed in, the app typically appears immediately without requiring a logout. Installation Path : The app files are stored in the protected %ProgramFiles%\WindowsApps directory. Microsoft Learn Removing a Machine-Wide Package
To completely remove a provisioned app for everyone, you must deprovision it and then remove it for existing users: Deprovision for all users powershell Remove-AppxProvisionedPackage -Online -PackageName "PackageFullName" Use code with caution. Copied to clipboard Remove for existing users (optional, if they have already registered it): powershell Remove-AppxPackage -AllUsers -Package "PackageFullName" Use code with caution. Copied to clipboard for a popular app, or do you need help extracting the full name of an installed MSIX?
Installing Python install manager MSIX for all users · Issue #119
To install an MSIX package for all users via PowerShell, you must provision the application at the system level. Standard installation cmdlets like Add-AppxPackage are user-scoped and only install the app for the current user. Feature Overview: Machine-Wide MSIX Provisioning
Provisioning an MSIX package stages the application in the system image, making it available for every current and future user on the device. 1. Core PowerShell Cmdlet
The primary command for machine-wide installation is Add-AppxProvisionedPackage. This requires administrative privileges. Command Syntax: powershell install msix powershell all users
Add-AppxProvisionedPackage -Online -PackagePath "C:\Path\To\YourApp.msix" -SkipLicense Use code with caution. Copied to clipboard -Online: Targets the currently running operating system.
-PackagePath: The full path to your .msix or .msixbundle file.
-SkipLicense: Prevents errors (such as 0xc1570104) if a specific XML license file is not provided. 2. Alternative: DISM Tool
You can achieve the same result using the Deployment Image Servicing and Management (DISM) utility, which is often preferred for offline image management or IoT environments. Command Syntax: powershell
DISM /Online /Add-ProvisionedAppxPackage /PackagePath:"C:\Path\To\YourApp.msix" /SkipLicense Use code with caution. Copied to clipboard 3. Handling Unsigned Packages
If you are deploying an unsigned package for all users, you must include the -AllowUnsigned flag and run the session as an administrator. Summary Table: Per-User vs. All-Users Per-User Installation All-Users (Provisioning) Primary Cmdlet Add-AppxPackage Add-AppxProvisionedPackage Permissions Standard User (usually) Administrator Required Scope Current logged-in user only Existing and future users Registration Immediate for current user Automatic upon next sign-in Important Considerations Create an unsigned MSIX package - Microsoft Learn
To install an MSIX package for all users on a Windows machine, you must use provisioning cmdlets rather than standard installation commands. While Add-AppxPackage only installs an app for the current user, provisioning ensures the application is registered for every existing and future user profile on the device. The Core Command: Add-AppxProvisionedPackage
The primary way to handle a machine-wide installation via PowerShell is through the Add-AppxProvisionedPackage cmdlet. Standard Syntax: powershell
Add-AppxProvisionedPackage -Online -PackagePath "C:\Path\To\YourApp.msix" -SkipLicense Use code with caution.
-Online: Specifies that the action applies to the currently running operating system. To install an MSIX package for all users
-PackagePath: The full path to your .msix or .msixbundle file.
-SkipLicense: Required unless you have a specific XML license file; it prevents errors during the provisioning process. Why "All Users" Installation is Different
Unlike traditional .msi installers that often have a "per-machine" flag, MSIX is fundamentally user-centric.
User-Level (Add-AppxPackage): Installs the app only for the person running the command. If another user logs in, they won't see the app.
Provisioning (Add-AppxProvisionedPackage): Stages the app at the system level. Windows then "installs" it for each user the next time they sign in. AVEVA™ Documentationhttps://docs.aveva.com Silent Install with MSIX - AVEVA™ Documentation
To install an MSIX package for all users via PowerShell, you must use provisioning cmdlets rather than standard per-user installation commands. While standard cmdlets like Add-AppPackage only target the current user's profile, provisioning registers the application at the system level, making it available for every current and future user on the machine. Primary Command for All-User Installation
The standard way to accomplish a machine-wide installation is using the Add-AppxProvisionedPackage cmdlet from the DISM (Deployment Image Servicing and Management) module. Command Syntax: powershell
Add-AppxProvisionedPackage -Online -PackagePath "C:\Path\To\YourApp.msix" -SkipLicense Use code with caution. Copied to clipboard
-Online: Specifies that the action should be taken on the operating system currently running on the local machine.
-PackagePath: The full local path to your .msix or .msixbundle file. Understanding the Difference: Provisioned vs
-SkipLicense: Prevents errors if a specific XML license file is not provided with the package. Key Differences: Per-User vs. All-Users Machine-wide Package Provisioning (Install for All Users)
To install an MSIX package for all users on a Windows machine using PowerShell, you need to run the command with administrative privileges and use the appropriate Add-AppxProvisionedPackage cmdlet (for Windows images) or Add-AppxPackage with the -AllUsers parameter (for newer Windows 10/11 versions).
Here are the two primary methods:
Fix: Use the -ForceApplicationShutdown parameter to close the app and update it, or uninstall the lower version manually.
Many admins get confused by the term "Provisioned." Here is the distinction:
| Command | Scope | When does the app appear? |
| --- | --- | --- |
| Add-AppxPackage | Current user only | Immediately for that user |
| Add-AppxProvisionedPackage | All users (machine) | After reboot or new user login |
When you use Add-AppxProvisionedPackage, the package is staged for the machine. The actual installation for each user happens during their first logon after provisioning. This is why you might not see the app in the Start Menu immediately for currently logged-in users until they sign out and back in.
Modern PowerShell cmdlets for MSIX often rely on the Microsoft.VCLibs framework. If these dependencies are missing, the Add-AppxPackage command may fail silently or throw a generic exception. It is best practice to install the UWP Desktop and AppX frameworks prior to deploying the primary application.
Note: These dependencies are typically included in the Windows 10/11 OS but may need updating on older builds.