Group Policy
Control WinGet functionality, sources, and behavior across your organization using Windows Group Policy. This guide covers all available policies and enterprise deployment strategies.Overview
WinGet Group Policy enables centralized control over:- Feature availability and restrictions
- Package source configuration
- Security settings and overrides
- Default behavior and preferences
Group Policy settings override user-configured settings in
settings.json. Policies take precedence.Installing Policy Templates
Locating ADMX Files
Policy templates are included in the WinGet source repository:Deployment Steps
Copy ADMX File
Copy Domain Controller (Central Store):
DesktopAppInstaller.admx to your PolicyDefinitions folder:Local Machine:Copy ADML File
Copy Domain Controller:
DesktopAppInstaller.adml to the language-specific folder:Local Machine:Policy Categories
Toggle Policies
Toggle policies enable or disable specific features. They use DWORD values (0 = Disabled, 1 = Enabled).Value Policies
Value policies set configuration values like intervals or proxy settings.List Policies
List policies define multiple items, such as additional sources or allowed sources.Core Functionality Policies
Enable Windows Package Manager
Policy:EnableAppInstaller
Path: Computer Configuration > Administrative Templates > Windows Components > Desktop App Installer > Enable Windows Package Manager
Controls whether WinGet can be used at all.
Configuration Details
Configuration Details
Enabled/Not Configured: Users can use WinGetDisabled: WinGet is completely blockedRegistry Key:
Enable Command Line Interfaces
Policy:EnableWindowsPackageManagerCommandLineInterfaces
Controls access to WinGet CLI and PowerShell cmdlets.
Configuration Details
Configuration Details
Enabled/Not Configured: CLI and PowerShell are accessibleDisabled: Blocks winget.exe and WinGet PowerShell module
Does not override the
Enable Windows Package Manager policy. Both must be enabled.Enable Settings
Policy:EnableSettings
Controls whether users can modify their WinGet settings.
Configuration Details
Configuration Details
Enabled/Not Configured: Users can edit
settings.jsonDisabled: Settings file is read-only; only policy appliesUse this to enforce standardized configurations.Enable Experimental Features
Policy:EnableExperimentalFeatures
Controls access to experimental features.
Configuration Details
Configuration Details
Enabled/Not Configured: Users can enable experimental features in settingsDisabled: All experimental features are blockedUseful for preventing untested features in production environments.
Source Management Policies
Source Auto Update Interval
Policy:SourceAutoUpdateInterval
Sets the automatic update interval for package sources (in minutes).
Configuration
Configuration
Range: 0 - 43200 minutes (0 = disabled, max = 30 days)Default: 15 minutes if not configuredRegistry:Example Values:
0: Disable automatic updates60: Update every hour1440: Update once per day
Enable Default Source
Policy:EnableDefaultSource
Controls availability of the default WinGet source (winget).
Configuration Details
Configuration Details
Not Configured: Default source available, users can removeEnabled: Default source available, users cannot removeDisabled: Default source not available
Enable Microsoft Store Source
Policy:EnableMicrosoftStoreSource
Controls availability of the Microsoft Store source.
Configuration Details
Configuration Details
Not Configured: Store source available, removableEnabled: Store source available, not removableDisabled: Store source unavailable
Enable Additional Sources
Policy:EnableAdditionalSources
Define enterprise package sources that users cannot remove.
Add Source Definitions
In the policy configuration dialog, click Show next to “Additional Sources”.Add each source as a JSON object:
Source JSON Format
Source JSON Format
Required fields:
- Name: Display name for the source
- Arg: URL or UNC path to source
- Type: Source type (
Microsoft.PreIndexed.PackageorMicrosoft.Rest) - Identifier: Unique identifier
- Data: Additional metadata
- TrustLevel: Array of trust levels
- Priority: Source priority (requires experimental feature)
Enable Allowed Sources
Policy:EnableAllowedSources
Restrict users to only specified sources.
Define Allowed Sources
List each permitted source in JSON format.Example allowing only corporate and default sources:
Enable Font Source
Policy:EnableFontSource
Controls the experimental font package source.
Requires the
fonts experimental feature to be enabled.Security Policies
Enable Local Manifest Files
Policy:EnableLocalManifestFiles
Controls whether users can install from local YAML manifest files.
Security Considerations
Security Considerations
Enabled/Not Configured: Local manifests allowedDisabled:
winget install --manifest is blockedEnable Hash Override
Policy:EnableHashOverride
Controls whether users can override SHA256 hash validation.
Configuration Details
Configuration Details
Enabled/Not Configured: Users can use
--force or --ignore-security-hashDisabled: Hash validation cannot be bypassedRecommended: Disable in production environments for security.Enable Local Archive Malware Scan Override
Policy:EnableLocalArchiveMalwareScanOverride
Controls ability to skip malware scanning for local archive installations.
Configuration Details
Configuration Details
Enabled: Users can skip malware scan with:Disabled/Not Configured: Malware scan cannot be bypassed
Enable Certificate Pinning Bypass for Microsoft Store
Policy:EnableBypassCertificatePinningForMicrosoftStore
Controls certificate validation for Microsoft Store source.
Configuration Details
Configuration Details
Enabled: Bypasses certificate pinning for Store sourceDisabled/Not Configured: Certificate must match known Store certificatesUse cases:
- Corporate SSL inspection/decryption
- Proxy environments with certificate replacement
Network Policies
Set Default Proxy
Policy:WindowsPackageManagerDefaultProxy
Define a default proxy for all WinGet network operations.
If not configured, WinGet uses system proxy settings.
Enable Proxy Command Line Options
Policy:EnableWindowsPackageManagerProxyCommandLineOptions
Controls whether users can override proxy settings via command line.
Configuration Details
Configuration Details
Enabled: Users can specify proxy per-command:Disabled/Not Configured: Command-line proxy options are blockedUse to enforce centralized proxy settings.
Installation Policies
MSIX Allowed Zones
Policy:EnableMsixAllowedZones
Control from which URL security zones MSIX packages can be installed.
Default Behavior
Default Behavior
Not Configured: All zones allowed except Untrusted SitesExample Configuration:
- Local Machine: Allow
- Intranet: Allow
- Trusted Sites: Allow
- Internet: Block
- Untrusted Sites: Block
Enable MSIX SmartScreen Check
Policy:EnableMsixSmartScreenCheck
Controls whether MSIX package URIs are checked against Microsoft SmartScreen.
Configuration Details
Configuration Details
Enabled/Not Configured: SmartScreen validates package URIs from internetDisabled: SmartScreen checks are skipped
Only applies to packages originating from internet zones.
Protocol Policies
Enable ms-appinstaller Protocol
Policy:EnableMSAppInstallerProtocol
Controls whether users can install packages via ms-appinstaller:// protocol links.
Use Cases
Use Cases
Enabled: Users can click web links like:Disabled/Not Configured: Protocol links are blockedDisable to prevent web-based package installation vectors.
Configuration Feature Policies
Enable Windows Package Manager Configuration
Policy:EnableWindowsPackageManagerConfiguration
Controls the WinGet configuration feature (DSC integration).
Configuration Details
Configuration Details
Enabled/Not Configured: Users can run:Disabled: Configuration feature is blocked
WinGet Configuration enables declarative system setup using PowerShell DSC.
Enable MCP Server
Policy:EnableWindowsPackageManagerMcpServer
Controls the Model Context Protocol (MCP) server for WinGet.
Configuration Details
Configuration Details
Enabled/Not Configured: MCP server can be usedDisabled: MCP server functionality is blockedUsed for AI-assisted package management scenarios.
Policy Implementation Strategies
Scenario: Locked-Down Environment
Block Risky Features
Disable these policies:
- Enable Local Manifest Files
- Enable Hash Override
- Enable Local Archive Malware Scan Override
- Enable Experimental Features
Scenario: Balanced Corporate Environment
Provide Corporate Sources
Use Additional Sources to add enterprise repositories:Leave default sources enabled.
Scenario: Developer Workstations
Verifying Policy Application
Check Registry Values
Verify policies are applied:Test WinGet Behavior
Validate policy enforcement:Group Policy Results
Generate policy report:Troubleshooting
Policies Not Applying
Policies Not Applying
- Verify ADMX/ADML files are correctly placed
- Run
gpupdate /forceon client machines - Check GPO is linked to correct OU
- Verify no conflicting GPOs
- Check client is receiving policies:
gpresult /r
Settings.json Overriding Policy
Settings.json Overriding Policy
Policy should always win. If not:
- Verify policy is applied: check registry
- Ensure policy targets are correct (Computer vs User)
- Check for local policy overrides
- Restart WinGet process
Source Policies Not Working
Source Policies Not Working
Common issues:
- JSON Format: Ensure proper JSON escaping in policy editor
- Quotes: Use double quotes in JSON, not single quotes
- Identifiers: Make identifiers unique across sources
- URLs: Verify source URLs are accessible from clients
Certificate Pinning Issues
Certificate Pinning Issues
If corporate proxy causes certificate errors:
- Enable Bypass Certificate Pinning policy
- Ensure proxy certificates are trusted system-wide
- Test source connectivity from client
- Review proxy logs for SSL interception issues
Best Practices
Start Restrictive
Begin with locked-down policies and relax as needed based on organizational requirements.
Test Before Deployment
Always test policies on a small group before organization-wide rollout.
Document Configuration
Maintain documentation of policy decisions and source configurations.
Monitor Compliance
Regularly review policy application with
gpresult and registry checks.Version Control Sources
Keep source JSON configurations in version control for audit trail.
Separate by OU
Apply different policy sets to different organizational units (developers, standard users, servers).
Policy Reference Table
| Policy Name | Type | Default | Registry Value |
|---|---|---|---|
| Enable Windows Package Manager | Toggle | Enabled | EnableAppInstaller |
| Enable Settings | Toggle | Enabled | EnableSettings |
| Enable Experimental Features | Toggle | Enabled | EnableExperimentalFeatures |
| Enable Local Manifest Files | Toggle | Enabled | EnableLocalManifestFiles |
| Enable Hash Override | Toggle | Enabled | EnableHashOverride |
| Enable Default Source | Toggle | Removable | EnableDefaultSource |
| Enable Microsoft Store Source | Toggle | Removable | EnableMicrosoftStoreSource |
| Enable Command Line Interfaces | Toggle | Enabled | EnableWindowsPackageManagerCommandLineInterfaces |
| Enable Configuration | Toggle | Enabled | EnableWindowsPackageManagerConfiguration |
| Source Auto Update Interval | Value | 15 min | SourceAutoUpdateInterval |
| Default Proxy | Value | None | DefaultProxy |
| Enable Additional Sources | List | None | AdditionalSources (subkey) |
| Enable Allowed Sources | List | All | AllowedSources (subkey) |
Related Resources
Private Sources
Set up enterprise package repositories
Configuration Files
Understand user settings and policy interaction
Package Management
Learn package workflows affected by policies