Actually.fyiDISM - "optional feature" vs "capability" vs "package"
2020-10-29, nulya
From my encounters with DISM in PowerShell, it seems that it deals with 3 different types of "features" (packages). When I first explored them, I couldn't figure out the difference, so I did some testing and came to the following:
Optional feature
- listed with
Get-WindowsOptionalFeature -Online
- shown in "Turn Windows features on or off" control panel
- contains "deep" system-level features like Hyper-V, containers, ISS, Application Guard,...
- but also a few random features like "Print to PDF" (probably because it needs a system printer driver?)
- doesn't deal with versions, just features (automatically finds and keeps latest version)
Capability
- listed with
Get-WindowsCapability -Online
- shown in "Optional features" section in new Settings (huh, wtf?)
- contains mostly user-level features - MS Paint, Notepad, OpenSSH Client/Server, IE 11, RSAT, ..., and also some fonts
- doesn't deal with versions, just features (automatically finds and keeps latest version)
Package
- listed with
Get-WindowsPackage -Online
- seems like the backing mechanism behind capabilities, but unrelated to "Optional features"
- from what I understand, it is a system-wide way to manage internal Windows packages
- deals with versions
- single capability often corresponds to multiple packages