winget-cli icon indicating copy to clipboard operation
winget-cli copied to clipboard

Cannot install a msstore app in machine scope : The current system configuration does not support the installation of this package.

Open sebma opened this issue 2 years ago • 4 comments

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

sebma avatar Oct 20 '23 08:10 sebma

Does this issue exist for all microsoft store apps?

Bevin7 avatar Oct 29 '23 20:10 Bevin7

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.

github-account1111 avatar Jun 01 '24 20:06 github-account1111

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.

gabrielgbs97 avatar Oct 17 '24 07:10 gabrielgbs97

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.

github-account1111 avatar Oct 18 '24 10:10 github-account1111

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.

gabrielgbs97 avatar Jan 28 '25 08:01 gabrielgbs97

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.

github-account1111 avatar Jan 30 '25 12:01 github-account1111

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.

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

gabrielgbs97 avatar Jan 30 '25 12:01 gabrielgbs97