Я нашел решение, которое работает без необходимости добавлять записи в области реестра, недоступные для записи:
[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu]
"MUIVerb"="Nice Name"
"subcommands"=""
"Icon"="c:\\path\\to\\icon.ico"
Обратите внимание на запись subcommands
с пустым строковым значением, это кажется важным.
Чтобы любые подкоманды появлялись в меню, добавьте следующее:
[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu\Shell\subcommandname]
@="Nice Name of Subcommand"
"Icon"="c:\\path\\to\\another_icon.ico"
[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu\Shell\subcommandname\command]
@="c:\path\to\command.exe"
Это поместит подменю для каталогов в левой панели в Explorer, для основного окна используйте базовый путь HKEY_CURRENT_USER\Software\Classes\Directory\shell
и для файлов используйте HKEY_CURRENT_USER\Software\Classes\*\shell