Disable WindowsOptionalFeature - PowerShell


The Disable-WindowsOptionalFeature command disables optional Windows features, removing them from the operating system and making them unavailable for use. It is commonly used to streamline the system, reduce resource consumption, or resolve feature-related issues.


Disable-WindowsOptionalFeature -FeatureName <string> [[-Online] <switch>] [-All]


| Option | Description | Default Value |
| -FeatureName | Specifies the name of the feature to disable. | Required |
| -Online | Check for the latest feature information and metadata from Windows Update. | $false |
| -All | Disables all optional features that are currently enabled. | $false |


Example 1: Disable a specific feature

Disable-WindowsOptionalFeature -FeatureName Microsoft-Windows-Subsystem-For-Linux

Example 2: Disable all optional features

Disable-WindowsOptionalFeature -All

Example 3: Disable a feature with online metadata check

Disable-WindowsOptionalFeature -FeatureName Windows-Defender -Online

Common Issues

  • Feature not found: Ensure that the specified FeatureName is valid and installed on the system.
  • Access denied: Running the command as an Administrator is required to disable features.
  • Restart required: Some feature disable operations may require a system restart to complete.


The Disable-WindowsOptionalFeature command can be used in combination with other PowerShell commands for automation and scripting. For example:

Get-WindowsOptionalFeature -Online | Where-Object {$_.State -eq "Enabled"} | Disable-WindowsOptionalFeature