Features On Demand
Overview
Features on Demand (FODs) are Windows features that can be added at any time. Common features include language resources like handwriting recognition or other features like the .NET Framework (.NetFx3). When Windows 10 or Windows Server needs a new feature, it can request the feature package from Windows Update.
You can also preinstall FODs so they're ready if a user needs them. FODs are distributed as .cab files on the Features on Demand ISO and you can use DISM to add one or more FODs to a Windows image. If you're using the Features on Demand ISO to preinstall FODs, make sure you're using the ISO that matches your Windows image version.
Features on Demand (FODs) are Windows features that can be added at any time. Common features include language resources like handwriting recognition or other features like the .NET Framework (.NetFx3). When Windows 11 or Windows Server needs a new feature, it can request the feature package from Windows Update.
You can also preinstall FODs so they're ready if a user needs them. FODs are distributed as .cab files on the Languages and Optional Features ISO and you can use DISM to add one or more FODs to a Windows image. If you're using the Languages and Optional Features ISO to preinstall FODs, make sure you're using the ISO that matches your Windows image version.
Important
Using DISM /add-package
to add FODs is deprecated. While it's possible to add non-satellite Features on Demand to a Windows image with DISM /add-package
, it's best practice to add all FODs with DISM /Add-Capability
to ensure that all FODs are properly added to an image.
The Languages and Optional Features ISO is new for Windows 11. Previous versions of Windows use the Features on Demand (FOD) ISO.
Important
Add language packs and FODs, in that order, prior to installing an update. If you add an update prior to adding language packs and FODs you'll have to reinstall the update. See Add updates to a Windows image to learn more about adding an update package to an image.
Types of Features on Demand
Windows has two types of Features on Demand:
FODs without satellite packages: Monolithic FODs with all language resources packaged into the same package. These FODs are distributed as a single .cab file.
FODs with satellite packages: Language-neutral FODs that have language and/or architecture resources in separate packages (satellites). When you install this type of FOD, only the packages that apply to the Windows image are installed, which reduces disk footprint. While these FODs are distributed as a set .cab files, they are installed by specifying a single
/capabilityname
when you runDISM /Add-Capability
.FODs with satellites require a well-formed FOD repository. You can use the Languages and Optional Features ISO as a repository, or a custom repository that you create with
DISM /export-source
. Don't hand-copy .cab files to a folder and try to use it as a repository. DISM requires additional metadata in the repository.See Available Features on demand for more information about which FODs have satellites. Language FODs don't have satellites.
Tip
While you can add non-satellite FODs using /add-package
, we recommend adding all FODs with /add-capability
because you can use it to add both satellite and non-satellite FODs.
Features on Demand media
Feature on Demand packages are available on offline media. The table below maps Windows version releases to the corresponding media you should use to install Features on Demand.
Windows Version | Media |
---|---|
Windows 11 | Windows 11 Languages and Optional Features ISO |
Windows Server 2022 | Windows Server 2022 Languages and Optional Features ISO |
Windows 10, version 2004, and later | Windows 10, version 2004 Features on Demand ISO |
Windows 10, version 1909 | Windows 10, version 1903 Features on Demand ISO |
Windows 10, version 1903 | Windows 10, version 1903 Features on Demand ISO |
Windows 10, version 1809 | Windows 10 Features on Demand, version 1809 ISO |
Adding or removing Features on Demand
Using DISM /add-capability to add or remove FODs
Install FODs using DISM /add-Capability
. If you're preinstalling a FOD onto an offline image, use the /source
option to tell Windows where to find the FOD installation files. The /source
could be a FOD repository or a mounted Language and Optional features ISO. You can use multiple /source
arguments in a command.
If you're adding a FOD to an online image, /add-capability
downloads features from Windows Update and adds them to the image. If you don't want to install from Windows Update, you can use /LimitAccess
, which tells DISM to not check Windows Update or Windows Server Update Services for the capability source files.
See DISM Capabilities Package Servicing Command-Line Options for more information.
- Use the
/online
option to add the capability to your PC. - Use
/Image:\<mount path>
with the/source
option to add the capability to a mounted Windows image.
Command | Description | Example |
---|---|---|
/add-capability | Adds a capability to an image. For packages with dependencies this also pulls dependent packages. For example, if you add the Speech package, you'll also get the Text-to-speech and Basic packages in addition to Speech. DISM looks for source files in the following locations:
|
DISM.exe /image:C:\mount\Windows /add-capability /CapabilityName:Language.Basic~~~en-US~0.0.1.0 /Source:E:
|
/Get-Capabilities | Get capabilities in the image. | DISM /image:C:\Mount\Windows /Get-Capabilities |
/Get-CapabilityInfo | Get information of a capability in the image. | DISM /image:C:\mount\Windows /Get-CapabilityInfo /CapabilityName:Language.Basic~~~en-US~0.0.1.0 |
/Remove-Capability | Removes a capability from an image. Note: You cannot remove a capability that other packages depend on. For example, if you have the French handwriting and basic capabilities installed, you can't remove the basic capability. |
DISM.exe /image:C:\mount\Windows /Remove-Capability /CapabilityName:Language.Basic~~~en-US~0.0.1.0 |
To see all available DISM commands for capabilities, see DISM Capabilities Package Servicing Command-Line Options.
FOD repositories
When using /add-capability
to add FODs to an image, you specify a repository as a source location. You can:
- Use the mounted Languages and Features ISO directly as the repository
- Create a custom FOD repository
The following example shows how to build a minimally sized custom FOD repository that includes a single satellite FOD:
Mount your Windows image
dism /mount-image /imagefile:install.wim /mountdir:C:\mount
Mount the Features on Demand ISO with File Explorer. This will assign it a drive letter.
Export a FOD from your image from the FOD ISO.
dism /image:"C:\mount\windows" /export-source /source:d: /target:c:\repository /capabilityname:App.StepsRecorder~~~~0.0.1.0
Where D:\ is the mount location for the Feature on Demand ISO
You can now use C:\repository as a source for the FODs that you included in the repository.
Note
If you're adding and removing languages from you image, you may need to create a custom FOD and language pack repository. See Build a custom FOD and language pack repository for more information.
Using DISM /add-package to add or remove FODs
It's possible to add non-satellite Features on Demand to a Windows image with DISM /add-package
, but because non-satellite FODs can't be added this way it's best practice is add all FODs with DISM /Add-Capability
to ensure that all FODs are properly added to an image.
Command | Description | Example |
---|---|---|
/add-package | Adds a package, including a FOD .cab to an image. add-package can only be used to add FODs that don't have satellite packages. |
DISM.exe /image:C:\mount\Windows /add-package /packagepath:E:\Microsoft-Windows-Holographic-Desktop-FOD-Package~31bf3856ad364e35~amd64~~.cab |
/Get-Packages | Get a list of all packages in an image. | DISM /image:C:\Mount\Windows /get-packages |
/Get-Packageinfo | Get information of a package in an image. | DISM /image:C:\mount\Windows /get-packageInfo /packagename:Microsoft-Windows-Xps-Xps-Viewer-Opt-Package~31bf3856ad364e35~amd64~~10.0.17134.1000 |
/Remove-Package | Removes a package from an image. Note: Don't remove a package that other packages depend on. For example, if you have the French handwriting and basic packages installed, don't remove the basic package. | DISM.exe /image:C:\mount\Windows /Remove-Package /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0 |