2

Короткая и сладкая

Есть ли способ действительно отключить раздел реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts в Win7?

В затронутых системах пользователи НЕ должны иметь возможность устанавливать свои собственные ассоциации, так что неспособность здесь не является ответственностью. Но недостаточно запретить пользователям; это легко. Мне также нужно запретить самой Windows записывать данные на ключ, и даже разрешения SYSTEM только для чтения не способны это сделать (см. Конец публикации).

Длинный и Гадкий:

Есть ситуация на Win7 Pro SP1, обновленная (только критическая) до октября 2017 года. VLC и различные приложения для редактирования используются для аудио и видео файлов. К сожалению, для пары типов файлов мне нужен Windows Media Player в качестве средства просмотра, поэтому я не могу избавиться от стервы, и это проблема. У меня есть очень тщательно настроенный набор расширений мультимедийных файлов, настроенных с использованием обычных расширений и идентификаторов типов файлов в HKLM\Software\Classes. Я устанавливаю VLC и редактирую приложения, не позволяя ни одному из них связываться с чем-либо, а затем сам создаю все ассоциации и записи контекстного меню, устраняя при этом большую часть их собственных и собственных помех контекстного меню Microsoft, чтобы облегчить улучшение рабочий процесс.

Проблема этой идиллической мечты заключается в том, что проигрыватель Windows Media завершает мою конфигурацию, угоняя угрызения совести ключом реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts. Если вы просто удалите ключ, Windows просто создаст его заново и снова заполнит. Поэтому мне нужно полностью отключить / заблокировать раздел реестра FileExts, чтобы он не нарушал тщательную настройку, которую я настроил.

Но это не просто проблема WMP: дополнительные программы могут вызывать такие же проблемы с соответствующими типами файлов. У меня похожая проблема с графическими приложениями. Поэтому, пожалуйста, не предлагайте решения, которые просто обрабатывают WMP. Мне нужно решение, которое полностью отключает переопределение выбора пользователя, предлагаемое с помощью ключа FileExts. Другими словами, мне нужно сделать ключ FileExts недоступным не всем, а всем.

Не имеет значения, если это приведет к потере функциональности какой-либо программы в будущем: если какое-то приложение не будет правильно устанавливать свои ассоциации в HKLM\Software\Classes, я сделаю это сам. Поэтому, пожалуйста, не теребите меня из-за этого вопроса. Дело в том, что FileExts совершенно не нужен для запуска Win7. Для запуска WMP даже нет необходимости - единственное, что он делает, это позволяет Microsoft как можно глубже погрузить свои когти, так что действительно трудно отделить контроль от приложений, которые он хочет использовать (например, WMP). Хорошо, хорошо, это также позволяет пользователям легко устанавливать графические интерфейсы для отдельных типов файлов. Но, как я отметил выше в TL/DR, это не проблема здесь.

То, что я пытался: после того, как я взял на себя ответственность за ключ и затем удалил все, что находилось под ним, я наложил разрешения только на чтение как для SYSTEM, так и для группы администраторов безрезультатно (сначала все отклонить, затем вернуть значение запроса, перечислить подразделы, уведомить Читайте Контроль). Это должно было запереть ключ, как железный пояс верности, но не игра в кости. Несмотря на то, что в предупреждающем сообщении говорится, что разрешения «Запретить» превзойдут все остальные, они этого не делают. При следующем перезапуске системы FileExts снова отображает свои сто с лишним записей по умолчанию.

Так есть ли способ очистить, а затем действительно заблокировать этот ключ, или M $ сделал это невозможным?

2 ответа2

3

Пусть Windows сделает то, что будет; Вы можете автоматически перезаписать эти ключи своим собственным предпочитаемым содержимым: 1) отредактируйте реестр в соответствии с требованиями, 2) экспортируйте эти ключи в файл .reg, 3) повторно импортируйте с помощью команд reg или regedit.exe в запланированной задаче, настроенной на запускать при каждом входе в систему или по требованию.

2

Аллилуйя.

Перечитав соответствующий раздел в Windows 7 Annoyances, я наконец смог собрать подсказки.

Критическое значение для создания эффективных блокировок реестра имеет понимание того, что разрешения «Запретить» превосходят разрешения «Разрешить». Например, «Запретить значение запроса» отключит значение «Запрос» для назначенного пользователя, даже если также присутствует параметр «Разрешить», включающий запрос для указанного пользователя. Теперь это ни для кого не новость, но последствия важны для рассматриваемой здесь проблемы. Я получил ключевую подсказку из следующего отрывка:

«[При блокировке ключа реестра] у вас может возникнуть желание удалить разрешения" Разрешить "для конкретного пользователя (или даже всех пользователей), а не добавлять запись" Запретить ".Проблема заключается в том, что это не помешает приложению или Windows стать владельцем или добавить необходимые разрешения и сломать вашу блокировку. , , , [To] сделать ключ только для чтения. , , установите флажок Запретить рядом с «Задать значение, Удалить и Написать владельцу». (Дэвид Карп, Windows 7 Annoyances, 156) [и я бы добавил Deny также в "Create Subkey", просто чтобы быть в безопасности.]

Этот отрывок говорит о том, что если вы удалите разрешения «Разрешить», а не установите «Запретить», то по какой-то причине Windows и другие приложения смогут обходить ваши настройки, даже если никто не должен разрешать. Карп не объясняет, почему это так, но кратко, как его комментарий, он ясно дает понять, что удаление Разрешить разрешения не мешает Windows делать то, что она хочет. Это также дает понять, что от прямых откровений нельзя уклониться. Таким образом, вы должны установить разрешения «Запретить», а не удалять «Разрешить».

Это не вся история, хотя. Процедура, с которой я начал, фактически начиналась с Отказов (см. OP, следующий за последним параграфом). Я проверил весь столбец Deny. Однако затем я перешел к столбцу «Разрешить» и перепроверил все элементы, которые предоставляли бы доступ для чтения: перечисление подразделов, значение запроса, чтение и выполнение и т.д. И это была Ахиллесова пята. Несмотря на то, что я не разрешил ни одно из разрешений на запись, разрешение любых разрешений вообще после установки ваших Отказов, похоже, имеет тот же эффект, что и удаление Разрешений, сводя на нет киберблокировку, достигнутую путем установки Отказов. Всем пользователям, даже администраторам, по-прежнему запрещено изменять ключ, но Windows - нет. Это не должно иметь место, конечно. Я установил правильные «Отказы» для пользователя «Все», и якобы они превосходят все остальное. Как и во многих других Microsoft, эта функция не всегда работает, как рекламируется. Но до тех пор, пока вы не коснетесь столбца Разрешить, это произойдет.

Чтобы проверить, работает ли Deny sans Allowances, я восстановил резервную копию реестра, чтобы начать с чистого листа. Затем я вернулся к ключу и ничего не сделал, кроме как установил отказ в разрешении на запись. Вот и все - в столбце «Разрешить» вообще нет галочек. И на этот раз замок работал так, как должен. Ключ все еще можно прочитать, но теперь Windows больше не может проникнуть в него и снова заполнить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .