Ваш самый большой ключ к назначению и местоположению находится в «большом типе», то есть названиях соответствующих ульев: HKLM и HKCU
Файловые ассоциации установлены в обоих кустах и имеют две разные цели:
Как следует из названия, записи реестра HKCU устанавливают ассоциации файлов для CURRENT USER и переопределяют соответствующие настройки типа файла в HKLM.
HKLM устанавливает ассоциации файлов для ЛОКАЛЬНОЙ МАШИНЫ, т. Е. Для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ машины (если не переопределено записями HKCU). (Для Win98 HKCR был просто сокращенным псевдонимом для HKLM \ Software \ Classes. Они не были отдельными или разными ульями. Однако это изменилось для Win XP и больше не соответствует действительности. HKCR теперь является виртуальным кустом, который является результатом слияния ключи HKLM \ Software \ Classes \, HKCU \ Software \ Classes \ и HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts с информацией HKCU, имеющей приоритет.)
Эта двухэтапная система упрощает схемы сопоставления файлов не только один-к-одному, но и многие-к-одному и один-ко-многим. Например, для типов файлов .htm, .html и .shtml может быть задано значение ProgID = htmlfile, которое, в свою очередь, может определять один браузер. OTOH, записи могут содержать подразделы OpenWithList или OpenWithProgID с несколькими записями, чтобы открыть файл из списка нескольких браузеров, редакторов или других приложений.
И HKLM \ Software \ Classes \, и HKCU \ Software \ Classes работают одинаково (один имеет приоритет над другим). В простейшей форме есть раздел реестра для расширения файла (например, HKCR.txt), значением по умолчанию которого является соответствующий ProgID (например, txtfile). Помимо значения по умолчанию или вместо него, для подраздела «OpenWithProgID» могут быть указаны дополнительные имена ProgID (например, txtfile и htmlfile) и / или дополнительные имена приложений, отображаемые в качестве подразделов в «OpenWithList» (например, Notepad ++). .exe, Opera.exe, Firefox.exe).
Каждый ProgID определен в другом ключе в HKCR (например, HKCR \ txtfile). Этот ключ содержит подключи, чтобы указать окнам, какой значок использовать и как открыть, распечатать, распечатать и т. Д. Связанный файл (например, g, HKCR \ txtfile \ shell \ open \ command). Аналогичным образом, каждое имя приложения определяется как подраздел в разделе HKCR \ Applications (например, HKEY_CLASSES_ROOT \ Applications \ Firefox.exe \ shell \ open \ command).
В дополнение к ключу HKCU \ Software \ Classes сопоставления файлов учетных записей пользователей находятся в ключе HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts. Эти записи предназначены не только для Windows Explorer, как было предложено, но являются дополнительным источником переопределений ассоциации файлов учетных записей пользователей. Записи создаются инструментами сопоставления файлов в проводнике (Explorer \ Tools \ Folder Options \ File Types) и содержат OpenWithList и / или подраздел OpenwithProgID для каждого указанного расширения файла.
Чтобы определить сопоставление файлов, Windows сначала просматривает записи HKCU для соответствующего расширения файла. Только если он не найден, записи HKLM вступают в игру. (Примечание: я не проверял, который имеет приоритет - HKCU \ Software \ Classes или HKCU \ MIcrosoft \ Windows \ CurrentVersion \ Explorer \ FileExts, но я подозреваю, что это будет ключ FileExts). Аналогичным образом, если в HKCU не найден ссылочный ProgID или имя приложения, выполняется поиск записей HKLM. (Обратите внимание, что \ Applications \ entry - это просто произвольное имя - даже если они, как правило, идентичны действительному имени файла на диске exe.)
Поэтому, чтобы определить сопоставление файлов для конкретной учетной записи пользователя, создайте записи в кусте HKCU. Чтобы определить связь для всех пользователей, создайте записи в кусте HKLM (HKCR) и удалите все ссылки в кусте HKCU для этого типа файлов. Очевидно, вам нужны соответствующие права доступа к ключам реестра.
Я не использую инструменты assoc и ftype, так как предпочитаю использовать RegEdit в интерактивном или пакетном режиме, но из других комментариев видно, что они работают только с кустом HKLM и бесполезны для очистки / установки ключей HKCU. Потратьте некоторое время и просмотрите вышеупомянутые ключи с помощью RegEdit, чтобы увидеть больше примеров.