Skip to main content
The configure command applies Desired State Configuration (DSC) files to configure Windows settings, install applications, and set up development environments. You can also use the configuration or dsc alias.

Syntax

winget configure [<file>] [options]

Arguments

file
path
Path to YAML configuration file or URL

Configuration Options

-f, --file
path
Configuration file path or URL (alternative to positional argument)
-h, --history
string
Apply configuration from history by ID
--module-path
path
Path to PowerShell modules directory
--processor-path
path
Path to custom DSC processor

Behavior Options

--accept-configuration-agreements
flag
Accept configuration agreements without prompting
--suppress-initial-details
flag
Skip displaying configuration details before applying

Feature Management

--enable
flag
Enable configuration feature (requires no other arguments)
--disable
flag
Disable configuration feature (requires no other arguments)

Examples

Apply configuration file:
winget configure development-setup.yaml
Apply from URL:
winget configure https://example.com/config.yaml
Apply with agreements accepted:
winget configure setup.yaml --accept-configuration-agreements
Apply from history:
winget configure --history abc123
Enable configuration feature:
winget configure --enable

Configuration File Format

Configuration files use YAML format with DSC resources:
properties:
  configurationVersion: 0.2.0
  resources:
    - resource: Microsoft.WinGet.DSC/WinGetPackage
      directives:
        description: Install Visual Studio Code
        allowPrerelease: false
      settings:
        id: Microsoft.VisualStudioCode
        source: winget
    
    - resource: PSDscResources/Registry
      directives:
        description: Set system preference
      settings:
        Key: HKLM:\Software\MyApp
        ValueName: Setting
        ValueData: Enabled

Workflow

When applying a configuration:
  1. Parse - Validates configuration file syntax
  2. Show - Displays configuration details
  3. Confirm - Prompts for user confirmation (unless --accept-configuration-agreements)
  4. Test - Tests current state against desired state
  5. Apply - Applies required changes
  6. Store - Saves configuration to history

Output

Configuration file: development-setup.yaml

Resources:
  - Microsoft.WinGet.DSC/WinGetPackage: Install Visual Studio Code
  - PSDscResources/Registry: Set system preference

Do you agree to apply this configuration? [Y/n]: Y

Applying configuration...
  ✓ Microsoft.WinGet.DSC/WinGetPackage: Installed Microsoft.VisualStudioCode
  ✓ PSDscResources/Registry: Set registry value

Configuration applied successfully.

Exit Codes

  • 0 - Success
  • 0x8A150031 - Configuration file not found
  • 0x8A150032 - Configuration parsing failed
  • 0x8A150033 - Configuration validation failed
  • 0x8A150034 - Configuration application failed
  • 0x8A150011 - User cancelled
Configuration requires the experimental feature to be enabled. Use winget configure --enable if not already enabled.
Configuration files can make significant system changes. Review configurations carefully before applying.

Build docs developers (and LLMs) love