cfbs add package-method-winget
                
                    
                This module enables a winget package method used with policy like:
packages:
  windows::
    "Microsoft.WindowsTerminal"
      package_method => winget,
      package_policy => "add";
In order for winget to operate properly you must opt-in to accepting source and packaging agreements. Without this acceptance the package method will fail with a message like:
    info: Installing Microsoft.WindowsTerminal...
    info: Q:powershell.exe -Comm ...:You must set some vars for package-method-winget to work
   error: Finished command related to promiser 'Microsoft.WindowsTerminal' -- an error occurred, returned 1
   error: Bulk package schedule execution failed somewhere - unknown outcome for 'Microsoft.WindowsTerminal'
Acceptance can be given either via cfbs inputs, augments, group or host specific data.
Set the value of yes in the following variables:
data:package_method_winget.accept_source_agreementsdata:package_method_winget.accept_package_agreementsThis module uses both the winget command as well as the Microsoft.WinGet.Client PowerShell module as that makes it easier to gather the list of currently installed packages.
winget should be installed on most newer desktop systems by default.
Server images often do not have winget installed.
In order for winget and Microsoft.WinGet.Client to be installed, ps1 scripts must be run which requires PowerShell Execution policy Unrestricted for LocalMachine.
The policy by default will not make this change.
You must opt-in by setting the variable winget_installed.allow_powershell_execution_policy_change to the value of yes.
This can be set in Host/Group data or via Augments in the data namespace.
{
  "variables": {
    "data:winget_installed.allow_powershell_execution_policy_change": {
      "value": "yes"
    }
  }
}