microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
23.37k stars 1.45k forks source link

configureSelfElevate fails in hyperv vm #4926

Open harrhp opened 4 weeks ago

harrhp commented 4 weeks ago

Brief description of your issue

resources with securityContext: elevated fail to apply in hyperv vm

# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
  resources:
    - resource: DSCR_FileContent/TextFile
      directives:
        description: scratchpad
        allowPrerelease: true
        securityContext: elevated
      settings:
        Ensure: Present
        Path: "c:/test.txt"
        Contents: "hello"
  configurationVersion: 0.2.0

Steps to reproduce

  1. create windows 11 (23h2/24h2 doesn't matter, both don't work) vm in hyperv
  2. install winget 1.9.25180
  3. enable configureSelfElevate setting
  4. apply winget configuration file with resource that has securityContext: elevated directive

Expected behavior

configuration applied successfully

Actual behavior

verbose log log.txt

The configuration unit failed due to an internal error: -532462766 The text associated with this error code could not be found. Some of the configuration was not applied successfully.

Environment

Windows Package Manager v1.9.25180 Windows: Windows.Desktop v10.0.22631.4317 System Architecture: X64 Package: Microsoft.DesktopAppInstaller v1.24.25180.0

clean windows installation. no other software

denelon commented 4 weeks ago

Was the configuration run in a "user" context?

There should have been a UAC (User Account Control) trigger after accepting the configuration agreement.

denelon commented 4 weeks ago

Can you share the output from winget features?

harrhp commented 4 weeks ago

Was the configuration run in a "user" context?

There should have been a UAC (User Account Control) trigger after accepting the configuration agreement.

Yes. There was a UAC propmt and i confirmed it

Can you share the output from winget features?

The following experimental features are in progress.
They can be configured through the settings file 'winget settings'.

Feature                  Status   Property             Link
-------------------------------------------------------------------------------------
Direct MSI Installation  Disabled directMSI            https://aka.ms/winget-settings
Resume                   Disabled resume               https://aka.ms/winget-settings
Configuration Schema 0.3 Disabled configuration03      https://aka.ms/winget-settings
Configure Self Elevation Enabled  configureSelfElevate https://aka.ms/winget-settings
Configure Export         Disabled configureExport      https://aka.ms/winget-settings
denelon commented 3 weeks ago

I ran the configuration on my local machine and it did succeed. I'm spinning up a VM to see if I can repro in Hyper-V.

denelon commented 3 weeks ago

OK, I was able to repro this.

@SteveL-MSFT is this something you've seen before? Given WinGet is leveraging the DSCR_FileContent/TextFile resource in this configuration, I'm wondering if it's an issue with Hyper-V.