How to Disable Shell Extensions on Windows 11 (Complete 2026 Guide)
Updated February 2026 — Windows 11 24H2
Whether you are troubleshooting a slow context menu, fixing Explorer crashes, or just cleaning up bloat, this guide covers every method for disabling shell extensions on Windows 11 — from beginner-friendly GUI tools to advanced registry and PowerShell techniques.
Understanding Windows 11’s Two-Layer Context Menu
Windows 11 introduced a completely redesigned context menu that affects how shell extensions work:
The New Menu (First Click)
When you right-click a file, you see the new streamlined menu with modern apps (Open, Copy, Rename, Delete). This menu only shows extensions that use the new IExplorerCommand interface.
The Classic Menu (“Show more options”)
Clicking “Show more options” (or pressing Shift+F10) reveals the old-style full context menu with all legacy IContextMenu handlers — 7-Zip, WinRAR, Git, etc.
What This Means for Disabling Extensions
- Extensions in the new menu are controlled by Windows 11’s app model
- Extensions in the classic menu are the traditional shell extensions you can disable with standard tools
- Some extensions appear in both menus (e.g., “Open with Visual Studio Code”)
Method 1: ShellExView (Recommended for Most Users)
ShellExView is the easiest and safest way to disable extensions:
Setup
- Download from NirSoft (get the 64-bit version).
- Extract the ZIP file (no installation required).
- Right-click
shexview.exe→ Run as Administrator.
Disabling Extensions
- Wait for the list to populate (may take 10-30 seconds on first load).
- Click Options → Hide All Microsoft Extensions to focus on third-party entries.
- Select the extension(s) you want to disable.
- Press F7 or right-click → Disable Selected Items.
- Go to Options → Restart Explorer.
- Test your right-click menu.
Bulk Operations
- Disable all non-Microsoft: Select all (Ctrl+A after hiding Microsoft) → F7
- Enable all: Select all → F8
- Export list: File → Save to CSV for documentation
What Each Column Means
| Column | Description |
|---|---|
| Extension Name | Display name of the handler |
| Type | Context Menu, Property Sheet, Icon Overlay, etc. |
| Company | Publisher of the DLL |
| File Name | DLL filename |
| CLSID | Unique COM class identifier |
| Disabled | Yes/No — current status |
Method 2: Autoruns (For Power Users)
Sysinternals Autoruns goes deeper than ShellExView:
- Download from Sysinternals.
- Run
Autoruns64.exeas Administrator. - Click the Explorer tab.
- Uncheck any entry to disable it.
- Changes take effect after Explorer restart.
When to Use Autoruns Instead of ShellExView
- When you suspect a service or scheduled task is re-registering extensions
- When you need to see boot-time shell integrations
- When ShellExView does not show the problematic extension
Method 3: Registry Editor (Manual)
For precise control, edit the registry directly:
Warning: Always back up registry keys before modifying them. Right-click the key → Export.
Disable a Specific Context Menu Handler
- Press
Win + R, typeregedit, press Enter. - Navigate to:
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
- Find the subkey for the extension you want to disable.
- Right-click → Export (backup).
- Right-click → Delete.
- Restart Explorer.
Restore the Classic Full Context Menu
If you want ALL legacy extensions to appear in the first right-click (no “Show more options”):
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
Restart Explorer. To revert:
reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
Disable Icon Overlay Handlers
Icon overlays are registered under:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
Windows has a 15-overlay limit. To disable specific overlays, rename the key by adding a ~ prefix (this is how ShellExView does it internally).
Method 4: PowerShell (Script-Based)
List All Extensions and Their Status
$handlers = @()
$regPaths = @(
"Registry::HKCR\*\shellex\ContextMenuHandlers",
"Registry::HKCR\Directory\shellex\ContextMenuHandlers",
"Registry::HKCR\Directory\Background\shellex\ContextMenuHandlers"
)
foreach ($path in $regPaths) {
Get-ChildItem $path -EA SilentlyContinue | ForEach-Object {
$clsid = $_.GetValue("")
$inproc = "Registry::HKCR\CLSID\$clsid\InprocServer32"
$dll = if (Test-Path $inproc) { (Get-ItemProperty $inproc -EA SilentlyContinue)."(default)" } else { "N/A" }
$handlers += [PSCustomObject]@{
Name = $_.PSChildName
DLL = Split-Path $dll -Leaf -EA SilentlyContinue
Location = $path.Split('\')[-1]
}
}
}
$handlers | Sort-Object Name | Format-Table -AutoSize
Write-Host "`nTotal: $($handlers.Count) handlers"
Batch Disable by Company Name
# Disable all extensions from a specific company (e.g., NVIDIA)
$targetCompany = "NVIDIA"
Get-ChildItem "Registry::HKCR\*\shellex\ContextMenuHandlers" -EA SilentlyContinue | ForEach-Object {
$clsid = $_.GetValue("")
$inproc = "Registry::HKCR\CLSID\$clsid\InprocServer32"
if (Test-Path $inproc) {
$dll = (Get-ItemProperty $inproc -EA SilentlyContinue)."(default)"
if ($dll -and (Test-Path $dll)) {
$info = (Get-Item $dll).VersionInfo
if ($info.CompanyName -like "*$targetCompany*") {
Write-Host "Found: $($_.PSChildName) -> $dll" -ForegroundColor Yellow
# Uncomment the next line to actually disable:
# Rename-Item $_.PSPath -NewName "~$($_.PSChildName)"
}
}
}
}
What NOT to Disable
Some extensions are critical for Windows functionality:
| Extension | What Happens If Disabled |
|---|---|
| Microsoft.Windows.ShellExtensions | Core Windows Shell breaks |
| Open With | ”Open with…” option disappears |
| Sharing | Share menu stops working |
| SendTo | ”Send to” menu disappears |
| Pin to Quick Access | Cannot pin folders |
| Windows Security | Security scanning from context menu lost |
Rule of thumb: If the Company is “Microsoft Corporation” or “Microsoft Windows”, leave it enabled.
Troubleshooting
Extensions Keep Re-Enabling
Some software re-registers its extensions on startup. Fix:
- Open Autoruns → Logon tab
- Find and disable the software’s startup entry
- The extension will no longer re-register after reboot
”Access Denied” When Disabling
Run ShellExView or regedit as Administrator. Some extensions require HKLM level changes that need elevated permissions.
Disabled Extension Still Appears in Menu
- Restart Explorer (
taskkill /f /im explorer.exethenstart explorer) - If it persists, sign out and sign back in
- Last resort: restart the computer
Frequently Asked Questions
Q: Is disabling an extension the same as uninstalling it? A: No. Disabling simply prevents Explorer from loading the DLL. The DLL file and registry entry still exist. You can re-enable it any time.
Q: How do I know which extension is causing my problem? A: Disable all non-Microsoft extensions, confirm the problem is gone, then re-enable them one by one. Our troubleshooting guide covers this in detail.
Q: Do disabled extensions use any resources? A: No. A disabled extension is not loaded into memory at all. Zero CPU, zero RAM impact.
Need a visual tool to manage extensions?
See our comparison of the best shell extension managers for 2026.
View Best Managers