Windows does not keep one list of context menu entries. It merges several sources at the moment you right-click, and each source is registered and disabled differently. This is the single biggest reason context menu cleanup fails.
Classic commands are the traditional shell verbs, stored per file class under `HKEY_CLASSES_ROOT`. On Windows 11 most of them appear under "Show more options" rather than the compact menu. These are the entries almost every tutorial talks about, and they are the only ones a simple key deletion tends to affect. They can be hidden without deletion by marking them, and they are also the only surface where you can control placement between the main list and the overflow.
App add-ons are COM handlers — the `ContextMenuHandlers` registrations that installed software adds. This is where archivers, cloud drives, antivirus, and developer tools live. The important property is that one handler frequently contributes several visible menu entries. If you remove three entries individually and they all come back together, they were almost certainly one handler. Disabling the handler by its identifier clears the whole cluster at once, and does so without unregistering the app.
Modern menu items come from packaged and MSIX apps that declare context menu commands in their app manifest rather than in the classic registry paths. These populate the Windows 11 compact menu. A registry-only tool literally cannot see them, which is why "Edit with Photos" and similar entries survive every classic cleanup attempt. ContextCleaner enumerates installed package manifests to find them.
The New submenu is its own surface, built from `ShellNew` registrations attached to file extensions and program identifiers. Every installed app that creates documents tends to add itself here. Removing one of these should not affect the file type — and ContextCleaner handles it as a reversible rename rather than a deletion, so the association stays intact and only the New-menu shortcut disappears.
Because the four surfaces need four different write strategies, ContextCleaner routes each change accordingly and reports honestly on the result. Entries registered machine-wide need administrator approval; those are collected into a single prompt per apply rather than one prompt per entry. If Windows refuses a specific entry, you are told how many were refused instead of being shown a success message that is not true.