Cannot install a msstore app in machine scope : The current system configuration does not support the installation of this package.
Brief description of your issue
I cannot install a msstore app (NVIDIA Control Panel [9NF8H0H7WMLT]) in machine scope, winget fails.
Steps to reproduce
In an admin console, I type winget install --accept-package-agreements --scope=machine --id 9NF8H0H7WMLT.
Expected behavior
It installs the NVIDIA Control Panel [9NF8H0H7WMLT] package.
Actual behavior
C:\Windows\system32> winget install --accept-package-agreements --scope=machine --id 9NF8H0H7WMLT
Found NVIDIA Control Panel [9NF8H0H7WMLT] Version Unknown
This package is provided through Microsoft Store. winget may need to acquire the package from Microsoft Store on behalf of the current user.
Agreements for NVIDIA Control Panel [9NF8H0H7WMLT] Version Unknown
Version: Unknown
Publisher: NVIDIA Corp.
Description: Featuring display management, application, and gaming-specific features, the NVIDIA Control Panel ensures the best overall experience using NVIDIA graphics
License: ms-windows-store://pdp/?ProductId=9NF8H0H7WMLT
Privacy Url: https://www.nvidia.com/en-in/privacy-center/
Agreements:
Category: Utilities & tools
Pricing: Free
Free Trial: No
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
Seizure Warning: https://aka.ms/microsoft-store-seizure-warning
Store License Terms: https://aka.ms/microsoft-store-license
Starting package install...
The current system configuration does not support the installation of this package.
C:\Windows\system32>
Environment
C:\Windows\system32> winget --info
Windows Package Manager v1.6.2771
Copyright (c) Microsoft Corporation. All rights reserved.
Windows: Windows.Desktop v10.0.19045.3570
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.2771.0
Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User) %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User) %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root C:\Program Files\WinGet\Packages
Portable Package Root (x86) C:\Program Files (x86)\WinGet\Packages
Installer Downloads %USERPROFILE%\Downloads
Links
---------------------------------------------------------------------------
Privacy Statement https://aka.ms/winget-privacy
License Agreement https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale
Admin Setting State
--------------------------------------------------
LocalManifestFiles Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride Disabled
LocalArchiveMalwareScanOverride Disabled
C:\Windows\system32>
### Tasks
Does this issue exist for all microsoft store apps?
I don't think you can install store apps machine-wide.
It's a shame. On MacOS, for example, apps from App Store are system-wide by default (as are Safari extensions, unlike in Edge on Windows). On Android, apps installed from Play Store are system-wide by default. Don't know why M$ decided to make apps user-only. At best, it's wasted disk space, but it also requires manually installing every app every time.
I don't think you can install store apps machine-wide.
It's a shame. On MacOS, for example, apps from App Store are system-wide by default (as are Safari extensions, unlike in Edge on Windows). On Android, apps installed from Play Store are system-wide by default. Don't know why M$ decided to make apps user-only. At best, it's wasted disk space, but it also requires manually installing every app every time.
You can install machine wide apps. See Add-AppxProvisionedPackage, it installs an Appx as part of windows image, at next login or new user login, they will register it. If there is an update, the app may update an re-registered by store in user context. Winget should perform equivalent functionality to add-appxprovisionedpackage when performing machine install of modern apps.
The overview clearly says:
will install for each new user
That's not what system-wide means.
It also doesn't look like it installs the app from the store. You need to download a .appx package (from somewhere?) to even be able to use the command.
It defeats both purposes of system-wide apps.
The overview clearly says:
will install for each new user
That's not what system-wide means.
It also doesn't look like it installs the app from the store. You need to download a .appx package (from somewhere?) to even be able to use the command.
It defeats both purposes of system-wide apps.
In modern UWP packages, this behavior is the closest to system-wide apps (oh good old MSI). I don't know winget internals, but it may download files like appx/msix/msixbundle/etc. with manifests and 'license', and then installs UWP using standard PMAPI/OS APIs. It just does not handle the '--machine' as we want in UWP.
Installing for each user isn't what the user expects when selecting a machine-wide install (because it's not a machine-wide install), so, even if implemented, it should be done under a different, say, --provision flag to avoid future confusion.
The best scenario would of course be for M$ to use fix the bad design decision by making UWP programs installable system-wide, but we all know that's not happening.
Installing for each user isn't what the user expects when selecting a machine-wide install (because it's not a machine-wide install), so, even if implemented, it should be done under a different, say,
--provisionflag to avoid future confusion.The best scenario would of course be for M$ to use fix the bad design decision by making UWP programs installable system-wide, but we all know that's not happening.
I am not keen to UWP design decisions made also, would be happy with --machine or --provision flag to provision to all users. Still the effect would be the same: app is available for all users with no intervention by final user. This would be especially useful to streamline shared desktop scenarios provisioning. Now only the following works (with extra work of provisioning installer files somewhere):
Add-ProvisionedAppxPackage -Online -PackagePath Microsoft.AV1VideoExtension_8wekyb3d8bbwe.appxbundle -LicensePath Microsoft.AV1VideoExtension_8wekyb3d8bbwe.xml