Skip to content

Add Windows Option Features as WinGet Source #5986

@KevinLa2001

Description

@KevinLa2001

Relevant area(s)

WinGet CLI

Description of the new feature / enhancement

Windows provides some features that are 'optional'. Winget should make installing and removing those features as easy as other sources.
Example: A user reads they need to install telnet to test their protocol. They type in winget install telnet... and the user is told to install "AbsoluteTelnet SSH Client " While that may be great software, it is not what the user wanted.
Rather it might make sense to install TelNet that is built into windows, or minimally offer it.

Proposed technical implementation details

Absolutely — here’s the updated version with the specific incorrect behavior called out:
winget install telnet currently installs “AbsoluteTelnet SSH Client” instead of the built‑in Windows Telnet Client.


Proposal: Add a Windows “Optional Features” Source to WinGet

Summary

Windows includes a wide range of built‑in optional features—such as Telnet Client, Hyper‑V, IIS, RSAT, and legacy subsystems—that can be enabled through DISM, Enable-WindowsOptionalFeature, or the Windows Features control panel. Despite this, WinGet does not surface these built‑in features as installable packages. As a result, when a user attempts to install a Windows component using WinGet, the system may install an unrelated Microsoft Store or third‑party application instead of enabling the native feature.

A clear example:
Typing winget install telnet currently installs AbsoluteTelnet SSH Client, a third‑party application, even though Windows already includes an official Telnet Client that can be enabled instantly.

This proposal recommends adding a dedicated “optional-features” source to WinGet so that built‑in Windows features appear as first‑class packages. WinGet would then invoke DISM or PowerShell under the hood to enable or disable these features.


Problem Statement

WinGet’s current behavior creates confusion and inconsistency:

  • winget install telnet installs AbsoluteTelnet SSH Client, not the Windows Telnet Client.
  • Users assume WinGet will install the built‑in feature, but WinGet has no awareness of Windows optional features.
  • This leads to:
    • Incorrect or unintended installations
    • Security and trust concerns
    • Fragmented provisioning workflows
    • Reduced confidence in WinGet as the unified package manager for Windows

Windows already exposes these features through DISM and PowerShell. WinGet simply doesn’t surface them.


Proposed Solution

1. Add a new WinGet source: optional-features

This source would enumerate all features available via:

  • DISM /online /Get-Features
  • Get-WindowsOptionalFeature
  • Get-WindowsCapability

Each feature would appear as a package with:

  • Id (e.g., Microsoft.Windows.TelnetClient)
  • Name
  • Description
  • State (Enabled, Disabled, Not Present)

2. WinGet would call DISM or PowerShell internally

Examples:

  • winget install Microsoft.Windows.TelnetClient
    → internally runs dism /online /Enable-Feature /FeatureName:TelnetClient

  • winget uninstall Microsoft.Windows.IIS
    → internally runs dism /online /Disable-Feature /FeatureName:IIS-WebServerRole

3. Integrate optional features into existing WinGet verbs

  • winget search telnet → shows the built‑in Telnet Client
  • winget list → shows optional features and their state
  • winget upgrade → could surface capability updates (e.g., RSAT, language packs)

Benefits

For Users

  • Eliminates the current problem where WinGet installs the wrong app
  • Provides a predictable, unified installation experience
  • Makes built‑in Windows features discoverable and easy to manage

For IT Admins & DevOps

  • Enables consistent provisioning across images and automation pipelines
  • Removes the need to mix WinGet with DISM scripts
  • Reduces accidental installation of untrusted third‑party tools

For Microsoft

  • Strengthens WinGet’s role as the authoritative package manager
  • Improves user trust and reduces support friction
  • Enhances discoverability of Windows’ own capabilities

Conclusion

Adding a Windows “optional features” source to WinGet would provide a well known and supported list of tools. that the user probably intended to install.

And while I know DSC is supposed to support OptionalFeatures, this scenario is targeted at install.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-FeatureThis is a feature request for the Windows Package Manager client.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions