Продолжаем разговор о программах по умолчанию в Windows 10. Сегодня мы рассмотрим параметры реестра, отвечающие за настройки ассоциаций файлов.
Первое место, куда мы заглянем, это раздел HKEY_CLASSES_ROOT, именно в нем можно посмотреть тип файла и ассоциированные с ним программы.
Примечание. Раздел HKEY_CLASSES_ROOT (HKCR) состоит из содержимого разделов HKLM\SOFTWARE\Classes и HKCU\Software\Classes. Соответственно изменения можно вносить не в HKCR, а один из этих двух разделов. В HKLM\SOFTWARE\Classes содержатся настройки для всех пользователей компьютера, в HKCU\Software\Classes — настройки для текущего пользователя.
Каждый зарегистрированный в системе файл хранит свои настройки в двух подразделах, которые называются подраздел расширения и подраздел идентификатора файла. Для примера возьмем обычный текстовый файл. Его подраздел расширения имеет название .txt и соответствует расширению файла с точкой перед ним. А в параметре по умолчанию содержится идентификатор данного типа файла — txtfile.
Далее в HKCR находим раздел txtfile, соответствующий найденному идентификатору и переходим в подраздел HKCR\txtfile\shell\open\command. Здесь в параметре по умолчанию хранится команда, которая используется системой для открытия всех файлов данного типа. Для текстового файла она имеет вид %SystemRoot%\System32\Notepad.exe %1, где %SystemRoot%\System32\Notepad.exe — это путь к программе Notepad, а вместо %1 подставляется имя файла.
Для управления этими настройками есть специальные утилиты командной строки assoc и ftype. С помощью утилиты assoc можно посмотреть тип файла (идентификатор):
assoc .txt
А затем ftype покажет для него программу по умолчанию:
ftype txtfile
С помощью ftype можно не только посмотреть, но и поменять программу по умолчанию. Для примера укажем в качестве программы для открытия txt-файлов редактор Notepad++ такой командой:
ftype txtfile=″C:\Program Files (x86)\Notepad++.exe″ ″%1″
Описанные выше параметры содержат настройки системы по умолчанию и применяются до тех пор, пока пользователь не переопределит их. Текущие же настройки пользователя хранятся в разделе HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts.
В разделе OpenWithList можно посмотреть список программ, которыми открывали данный тип файлов. Так в нашем случае для открытия текстовых файлов использовались Notepad, Wordpad и Notepad++. В параметре MRUList содержится очередность, в которой эти программы использовались — сначала Wordpad (b), затем Notepad (a) и последним Notepad++ (c).
А когда вы открываете в проводнике свойства текстового файла и изменяете программу по умолчанию, то эти настройки сохраняются в разделе HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice. В параметре ProgID хранится идентификатор, а в параметре Hash — хэш программы. Хэш вычисляется каждый раз, когда вы выбираете программу по умолчанию. Его наличие говорит о том, что настройка была произведена пользователем, с помощью специально предназначенной для этого оснастки. Этот механизм предназначен для защиты от вредоносного ПО, которое может подменить файловые ассоциации без ведома пользователя.
Изменить или удалить параметры в UserChoice нельзя, но можно удалить весь раздел целиком. Это приведет к сбросу текущих настроек и возвращению настроек операционной системы по умолчанию. Для примера сбросим настройки для графических файлов типа png.
А теперь внимание. Если проверить ассоциации для png файлов с помощью assoc и ftype, то можно заметить, что файлы данного типа по умолчанию ассоциированы с программой Просмотр фотографий Windows (Windows Photo Viewer), а настройки сбросились до приложения Фотографии (Photos).
А параметр ProgID вместо нормального названия принял какое-то невразумительное значение, состоящее из хаотичного набора букв и цифр.
Дело в том, что в Windows 10 кроме классических программ есть современные приложения (modern-apps). И если заглянуть в раздел HKCU\SOFTWARE\Classes, то можно выяснить, что это самое значение AppX43hnxtbyyps62jhe9sqpdzxn1790zetc как раз соответствует приложению Фотографии.
Чтобы выяснить, для каких еще файлов приложение Фотографии является программой по умолчанию, надо перейти в HKCU\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages и открыть раздел, соответствующий данному приложению. Найти нужный раздел просто — его имя состоит из названия приложения и его текущей версии, например Microsoft.Windows.Photos_17.425.10010.0_x64__8wekyb3d8bbwe. Все типы файлов, которые могут быть ассоциированы с данным приложением, перечислены в подразделе App\Capabilities\FileAssociations.
Это тот же самый список, который можно увидеть в оснастке панели управления при выборе сопоставлений для программы.
Этот список нельзя отредактировать. Можно изменить ассоциации для отдельно взятого типа файлов, но при сбросе настроек для наиболее популярных форматов графических файлов по умолчанию будет назначено приложение Photos. Это же касается и других modern-приложений, например браузером по умолчанию становится Edge, аудиоплеером — Groove и т.д.
Такое поведение системы не очень удобно, особенно с учетом того, что файловые ассоциации в Windows 10 могут сбрасываться самопроизвольно, например при установке обновлений. Но не все так плохо, и хотя нежелательное приложение нельзя убрать из списка, можно запретить его использование для открытия файлов определенного типа. Для этого необходимо в разделе HKCU\SOFTWARE\Classes найти раздел, соответствующий идентификатору приложения для нужного типа файлов. Значение идентификатора можно найти в описанном выше разделе FileAssociations, либо в разделе UserChoice, в параметре ProgID (предварительно сбросив настройки на дефолтные). Например для файлов png это то самое значение AppX43hnxtbyyps62jhe9sqpdzxn1790zetc.
Для того, чтобы приложение не предлагалось по умолчанию при сбросе настроек, в этом разделе надо создать строковый параметр NoStaticDefaultVerb с пустым значением. А если добавить параметр NoOpenWith, то приложение не будет предлагаться для выбора по умолчанию при настройке вручную и пропадет из списка «Открыть с помощью» в контекстном меню проводника. А при сбросе настроек выбор программы по умолчанию будут производиться согласно настройкам в HKEY_CLASSES_ROOT.
Как видите, настраивать программы по умолчанию с помощью реестра в Windows 10 крайне затруднительно. Поэтому при необходимости централизованной настройки лучше использовать другие инструменты, о которых я расскажу в следующей статье. А на сегодня все.
Technically StartMenuInternet
is not the default browser, it merely determined how the system reacted when you clicked on the Internet
icon in the start menu.
In Windows 10, the default application handling is done via the user choice key under:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\(http|https)\UserChoice
where (http|https)
is one of these e.g. just http
or just https
The key ProgId
references the handler application id that is invoked when the open for the url is invoked.
The ProgId value can be looked up by key in HKEY_CLASSES_ROOT
, and you’re looking for the Shell/Open/command
default value. For most browsers it will be a simple reference to the executable. You should be able to use the Application
key to get the ApplicationName
, etc.
Modern applications will reference LaunchWinApp
with a DelegateExecute
value which specifies the actual application to launch (it’s never easy, is it?), the ApplicationName in that case is a reference to a resource in the app (I have no idea how to read those values).
however, why are you looking for this information — if it’s merely to open a web page, then you should use the Desktop
API (since java 1.6) e.g.:
Desktop.getDesktop().browse(new URI("http://msn.com"));
Gross detail on how to read applications that support a specific url scheme:
On Windows, the control of the default applications is determined by the Default Programs
app, this app reads information that applications place in the registry.
There are two places the OS looks for registered applications:
HKEY_CURRENT_USER\SOFTWARE\RegisteredApplications
and
HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
The entries under those keys are references to a corresponding location in the registry rooted under the same origin as the ResisteredApplications
key you’re looking at.
e.g. when you install firefox, it places an entry in there labelled Firefox
, containing the value Software\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities
. This is referencing HKEY_LOCAL_MACHINE\…\Capabilities
.
When you look under that location, you will see the key URLAssociations
, which specifies the URLs that it handles. When you see both http
and https
Values, it makes it very likely that this is a web browser. The name of the applications should be obtainable from the ApplicationName
value in the Capabilities
key. This key can reference localized names, or be the localized name on it’s own. Determining the value from an indirection is not trivial (would be worth it’s own questions).
You can backtrack from the url’s value (e.g. http -> FirefoxURL) to a HKEY_CLASSES_ROOT\FirefoxURL\Shell\Open\Command
to get an executable, again remembering that new-ui applications are a special case.
Программы по умолчанию в Windows 10, как и в предыдущих версиях ОС — те программы, которые запускаются автоматически при открытии определенных типов файлов, ссылок и других элементов — т.е. те программы, которые сопоставлены с этим типом файлов как основные для их открытия (к примеру, вы открывает файл JPG и автоматически открывается приложение «Фотографии»).
В некоторых случаях может потребоваться изменить программы по умолчанию: чаще всего — браузер, но иногда это может быть полезным и нужным и для других программ. В целом это не сложно, но иногда могут возникать проблемы, например, если требуется установить portable программу по умолчанию. Способы установки и изменения программ и приложений по умолчанию в Windows 10 и будут рассмотрены в этой инструкции.
Установка приложений по умолчанию в параметрах Windows 10
Основной интерфейс установки программ по умолчанию в Windows 10 находится в соответствующем разделе «Параметров», открыть которые можно, нажав по значку шестеренки в меню Пуск или с помощью горячих клавиш Win+I.
В параметрах присутствует несколько возможностей настройки приложений по умолчанию.
Настройка основных программ по умолчанию
Основные (по мнению Майкрософт) приложения по умолчанию вынесены отдельно — это браузер, приложение электронной почты, карт, просмотрщик фото, проигрыватель видео и музыки. Для их настройки (например, чтобы изменить браузер по умолчанию), выполните следующие шаги.
- Зайдите в Параметры — Приложения — Приложения по умолчанию.
- Нажмите по приложению, которое нужно изменить (например, для смены браузера по умолчанию, нажмите по приложению в разделе «Веб-браузер»).
- Выберите из списка нужную программу по умолчанию.
На этом действия завершены и в Windows 10 будет установлена новая стандартная программа для выбранной задачи.
Однако не всегда требуется изменение только для указанных типов приложений.
Как изменить программы по умолчанию для типов файлов и протоколов
Ниже списка приложений по умолчанию в Параметрах можно увидеть три ссылки — «Выбор стандартных приложений для типов файлов», «Выбор стандартных приложений для протоколов» и «Задать значения по умолчанию по приложению». Сначала рассмотрим первые два.
Если вам требуется, чтобы определенный тип файлов (файлы с указанным расширением) открывались определенной программой, используйте пункт «Выбор стандартных приложений для типов файлов». Аналогично в пункте «для протоколов» настраиваются приложения по умолчанию для разного типа ссылок.
Например, нам требуется, чтобы файлы видео в определенном формате открывались не приложением «Кино и ТВ», а другим проигрывателем:
- Заходим в настройку стандартных приложений для типов файлов.
- В списке находим нужное расширение и нажимаем по указанному рядом приложению.
- Выбираем нужное нам приложение.
Аналогично для протоколов (основные протоколы: MAILTO — ссылки электронной почты, CALLTO — ссылки на номера телефонов, FEED и FEEDS — ссылки на RSS, HTTP и HTTPS — ссылки на веб-сайты). Например, если требуется, чтобы все ссылки на сайты открывались не Microsoft Edge, а другим браузером — устанавливаем его для протоколов HTTP и HTTPS (хотя проще и правильнее установить просто как браузер по умолчанию как в предыдущем способе).
Сопоставление программы с поддерживаемыми типами файлов
Иногда при установке программы в Windows 10 она автоматически становится программой по умолчанию для некоторых типов файлов, но для остальных (которые также можно открыть в этой программе) настройки остаются системными.
В случаях, когда нужно «передать» этой программе и остальные поддерживаемые ею типы файлов, вы можете:
- Открыть пункт «Задать значения по умолчанию по приложению».
- Выбрать нужное приложение.
- Отобразится список всех типов файлов, которые это приложение должно поддерживать, но часть из них не будет ассоциировано с ним. При необходимости вы можете изменить это.
Установка portable программы по умолчанию
В списках выбора приложений в параметрах не отображаются те программы, которые не требуют установки на компьютер (portable), а потому их не получается установить в качестве программ по умолчанию.
Однако это можно достаточно просто исправить:
- Выберите файл того типа, который нужно по умолчанию открывать в требуемой программе.
- Нажмите по нему правой кнопкой мыши и выберите в контекстном меню «Открыть с помощью» — «Выбрать другое приложение», а затем — «Еще приложения».
- Внизу списка нажмите «Найти другое приложение на этом компьютере» и укажите путь к требуемой программе.
Файл откроется в указанной программе и в дальнейшем она появится и в списках в параметрах приложений по умолчанию для этого типа файлов и в списке «Открыть с помощью», где можно будет установить отметку «Всегда использовать это приложение для открытия…», что также делает программу используемой по умолчанию.
Задание программ по умолчанию для типов файлов с помощью командной строки
Существует способ задать программы по умолчанию для открытия определенного типа файлов с помощью командной строки Windows 10. Порядок действий будет следующим:
- Запустите командную строку от имени администратора (см. Как открыть командную строку Windows 10).
- Если нужный тип файла уже зарегистрирован в системе, введите команду assoc .расширение (под расширение имеется в виду расширение зарегистрированного типа файла, см. скриншот далее) и запомните тип файла, который ему соответствует (на скриншоте — txtfile).
- Если нужное расширение никак не зарегистрировано в системе, введите команду assoc .расширение=тип_файла (тип файла указывается в одно слово, см. на скриншоте).
- Введите команду
ftype тип_файла="путь_к_программе" %1
и нажмите Enter, чтобы в дальнейшем этот файл открывался указанной программой.
Дополнительная информация
И некоторые дополнительные сведения, которые могут оказаться полезными в контексте установки программ по умолчанию в Windows 10.
- На странице параметров приложений по умолчанию присутствует кнопка «Сбросить», которая может помочь, если вы что-то настроили не так и файлы открываются не той программой, которой нужно.
- В ранних версиях Windows 10 настройка программ по умолчанию также была доступна в панели управления. На текущий момент времени там остается пункт «Программы по умолчанию», но все настройки открываемые в панели управления автоматически открывают соответствующий раздел параметров. Тем не менее существует способ открыть старый интерфейс — нажмите клавиши Win+R и введите одну из следующих команд
control /name Microsoft.DefaultPrograms /page pageFileAssoc
control /name Microsoft.DefaultPrograms /page pageDefaultProgram
О том, как пользоваться старым интерфейсом настройки программ по умолчанию можно почитать в отдельной инструкции Ассоциации файлов Windows 10.
- И последнее: описанный выше способ установки portable приложений в качестве используемых по умолчанию не всегда удобен: например, если речь о браузере, то его необходимо сопоставить не только с типами файлов, но и с протоколами и другими элементами. Обычно в таких ситуациях приходится прибегать к редактору реестра и изменять пути к portable приложениями (или указывать свои) в HKEY_CURRENT_USER\Software\Classes и не только, но это, пожалуй, выходит за рамки темы текущей инструкции.
В этой статье мы рассмотрим, как ассоциировать разные расширения (типы) файлов с программами в Windows 10/11 и Windows Server 2022/2019/2016/2012R2. В качестве примера мы покажем, как в Windows назначать программу по-умолчанию для открытия *.pdf файлов, импортировать эти настройки в xml файл и распространить полученный файл с параметрами сопоставления файлов на другие компьютеры вручную или с помощью групповых политик.
Главное отличие Windows 10 и 11 от предыдущих версий ОС — теперь нельзя назначить файловые ассоциации через реестр или функционал Group Policy Preferences Open With. Зато появилась новая возможность выгрузить текущие настройки файловых ассоциаций (FTA, File Type Assotiations) с “эталонного” компьютера в xml файл и использовать данный файл для изменения настроек сопоставления расширений файлов на других компьютерах. Также вы можете экспортировать файл с настройками ассоциаций файлов в стандартный образ системы, который разворачивается на клиентах в вашей сети (вручную, через WDS или SCCM).
Содержание:
- Задать программу по умолчанию для открытия типа файлов в Windows 10/11
- Изменить ассоциации программ с типами файлами в Windows из командной строки
- Экспорт, импорт и перенос настроек ассоциаций файлов Windows через XML файл
- Настройка ассоциаций файлов в Windows с помощью GPO
- Изменить файловые ассоциации через реестр Windows
- Сброс всех ассоциаций файлов в Windows
Задать программу по умолчанию для открытия типа файлов в Windows 10/11
Предположим, вы хотите использовать Adobe Reader DC для открытия *.pdf файлов на всех компьютерах домена. Т.е. вы хотите создать ассоциацию этого расширения файлов с приложением. Для этого нам понадобится эталонный компьютер с Windows 10 или 11 (в этом примере используется актуальный билд 22H1) и установленным Acrobat Reader DC.
Обратите внимание, что в Windows 10 и 11 теперь по умолчанию установлен браузер Microsoft Edge, который используется как программа по-умолчанию для просмотра PDF файлов.
Чтобы вручную создать сопоставление определенного типа файла с программой, откройте панель Settings -> Default Apps (для быстрого перехода используйте команду быстрого доступа Settings ->
ms-settings:defaultapps
) и нажмите кнопку Choose default apps by file type.
Найдите в списке расширений тип файлов .pdf. Затем щелкните по значку программы, которая ассоциирована с этим расширением и смените программу по-умолчанию для просмотра PDF файлов с Microsoft Edge на Acrobat.
Можно автоматически ассоциировать определенную программу с типами файлов, для которых она зарегистрирована. Для этого в разделе Default Apps выберите Set default by apps, найдите в списке нужную программу и нажмите кнопку Manage.
В открывшемся списке будет присутствовать список поддерживаемых приложением типов файлов. Выберите расширения файлов, которые должны открываться с помощью Acrobat Reader.
Изменить ассоциации программ с типами файлами в Windows из командной строки
В Windows вы можете использовать утилиту командной строки assoc для настройки сопоставления типов файлов с приложениями. Например, чтобы вывести программу, которая назначена для открытия файлов PDF, выполните команду:
assoc .pdf
В данном примере видно, что с этим расширением ассоциирован тип файлов AcroExch.Document.DC:
.pdf=AcroExch.Document.DC
Вывести все сопостаяления расширения с типами файлов:
assoc|more
Чтобы понять с каким исполняемым файлом ассоциирован тип файла AcroExch.Document.DC, выполните:
ftype AcroExch.Document.DC
Вы можете задать тип для определенных файлов с помощью команды:
ASSOC .csv=txtfile
В этом примере мы указали, что все CSV файлы нужно открывать как обычные текстовые файлы (по умолчанию с помощью notepad.exe).
Из командной строки вы можете создать или изменить ассоциацию файл с программой. Например, вы хотите чтобы все файлы с расширением tx1 открывались с помощью notepad++.exe. Сначала нужно создать ассоциацию расширения .tx1 с новым типом файлов tx1file.
assoc .tx1=tx1file
Теперь укажем программу, которая должна использоваться по умолчанию при открытии файлов с расширением tx1.
ftype tx1file="%programfiles(x86)%\"Notepad++\notepad++.exe" "%1"
Также вы можете использовать стороннюю утилиту SetUserFTA чтобы назначить файловые ассоциации в Windows. SetUserFTA эта утилита командой строки для быстрой настройки файловых ассоциаций (часто используется на RDS фермах Windows Server 2019/2022 для настройки сопоставления файлов с приложениями).
Список текущих ассоциаций и заданных для них progid в Windows можно вывести так:
SetUserFTA get
Чтобы задать ассоциацию для определенного типа файлов, используется команда:
SetUserFTA.exe extension progid
Например, назначить Chrome браузером по-умолчанию:
SetUserFTA http ChromeHTML
SetUserFTA https ChromeHTML
SetUserFTA .htm ChromeHTML
SetUserFTA .html ChromeHTML
Если для приложения не создан класс файлов или Progid, можно указать его исполняемый файл. Например:
SetUserFTA .txt applications\notepad++.exe
Это возможно для приложений, зарегистрированных в ветке реестра
\HKEY_CLASSES_ROOT\Applications
.
Экспорт, импорт и перенос настроек ассоциаций файлов Windows через XML файл
Текущие настройки ассоциаций файлов с программами, которые настроены под текущим пользователем, можно экспортировать в файл .XML с помощью DISM:
Dism.exe /online /Export-DefaultAppAssociations:C:\PS\DefaultAssoc.xml
Команда экспортирует в XML файл все настроенные у вас сопоставлений программ. Вы можете открыть файл DefaultAssoc.xml в любом текстовом редакторе, и посмотреть полный список настроек. Если вы хотите использовать только часть ассоциаций из этого списка (чтобы не переопределять имеющиеся настройки для остальных расширений файлов на других компьютерах), можно вручную отредактировать XML файл. Оставьте только строки с нужными вам расширениями файлов. К примеру, оставьте только строки для расширений .pdf и .fdf, остальные строки удалите. Должен получиться примерно такой XML-файл:
<?xml version="1.0" encoding="UTF-8"?> <DefaultAssociations> <Association Identifier=".fdf" ProgId="AcroExch.FDFDoc" ApplicationName="Adobe Acrobat Reader DC" /> <Association Identifier=".pdf" ProgId="AcroExch.Document.DC" ApplicationName="Adobe Acrobat Reader DC" /> </DefaultAssociations>
Полученный XML файл можно импортировать в образ Windows на другом компьютере с помощью DISM в режиме онлайн:
Dism.exe /Online /Import-DefaultAppAssociations:C:\PS\DefaultAssoc.xml
Важно. Данные настройки сопоставления расширений файлов с программами будут применены только к новым пользователям системы во время их первого входа. Если при импорте появится ошибка App default reset notification, проверьте синтаксис XML файла.
Также можно импортировать параметры ассоциаций в офлайн образ Windows в wim файл (который вы используете для раскатки образа на новые компьютеры). Сначала нужно смонтировать образ:
Dism /Mount-Image /ImageFile:C:\mnt\images\install.wim /MountDir:C:\mnt\offline
А затем импортировать xml файл:
Dism.exe /Image:C:\mnt\offline /Import-DefaultAppAssociations:\\Server1\Share\DefaultAssoc.xml
Совет. Текущие настройки ассоциаций файлов в офлайн образе Windows можно получить с помощью такой команды:
Dism.exe /Image:C:\mnt\offline /Get-DefaultAppAssociations
Настройка ассоциаций файлов в Windows с помощью GPO
В современных версиях Windows можно использовать новый параметр групповых политик, позволяющий применить xml файл с настройками ассоциаций файлов ко всем текущим пользователям компьютера.
Например, вы хотите применить групповую политику с настройками ассоциаций файлов ко всем компьютерам в определенном OU (Organizational Unit) Active Directory.
- Откройте консоль управления доменными GPO (
gpmc.msc
); - Найдите OU с компьютерами, для которых вы хотите применить файловые ассоциации и создайте новую GPO;
- Переключитесь в режим редактирования GPO и перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> File Explorer;
- Найдите параметр Set a default associations configuration file (Задать файл конфигурации сопоставлений по умолчанию);
- Включите политику и укажите UNC путь к вашему xml файлу (убедитесь, что путь не содержит кавычки или пробелы). Его можно разместить на общедоступном файловом сервере, в каталоге SYSVOL на контроллере домена, или предварительно скопировать файл на компьютеры с помощью GPP/ SCCM;
- Перезагрузите компьютер, чтобы применить новые ассоциации файлов.
Новые настройки сопоставлений будут применены ко всем пользователям компьютера после следующего входа.
Путь к XML файлу с новыми настройками ассоциации файлов содержится в параметре реестра DefaultAssociationsConfiguration в разделе Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System.
Т.к. Windows 10 отслеживает настройки файловых ассоциаций, при первой попытке открыть PDF файл может появится окно с подтверждением использования Acrobat Reader как программы по–умолчанию для открытия этого типа файлов (запрос появляется только один раз). Такой запрос будет всегда появляться также после установки нового приложения, которое регистрируется для открытия существующего типа файлов или протоколов. Можно скрыть данные уведомления, включив в этом же разделе GPO политику Do not show the ‘new application installed‘ notification (Не показывать уведомление “установлено новое приложение”).
Отметим, что пользователь в своем сеансе может изменить назначенные ассоциации файлов. Но при следующем обновлении групповой политики во время входа в систему, ассоциаций файлов пользователя будут перезаписаны настройками из xml файла.
Изменить файловые ассоциации через реестр Windows
Как мы уже говорили выше, в Windows 10/11 изменился подход к изменению настроек ассоциации файлов. В предыдущей секции мы показали, как настроить ассоциацию .pdf файла с Acrobat Reader через XML файл и групповую политику. Теперь посмотрим, как это выглядит в реестре.
Запустите редактор regedit.exe и перейдите в ветку
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice
.
Обратите внимание, что в данной ветке с настройками ассоциация для расширения html есть два параметра:
- ProgId – идентификатор зарегистрированной программы для открытия этого типа файлов. Если вместо имени приложения указан длинный идентификатора, значит назначена ассоциация файла с современным приложением UWP/Metro. Проверьте, что оно не удалено из вашего образа Windows 10;
- Hash – хеш, который генерируется автоматически для валидации настройки сопоставления типа файлов с программой. Наличие этого хэша, гарантирует, что именно пользователь или администратор (через GPO) настроил данное сопоставление. Этот механизм нужен для защиты пользователей от вредоносных программ, которые могут подменить ассоциации файлов без его ведома.
Если вы попробуете руками изменить значение ProgId и назначить другую программу, значение Hash перестанет быть валидным. В этом случае Windows автоматически сбросит настройки ассоциации файла к значению по-умолчанию и пользователь увидит уведомление:
Стандартное приложение сброшено. Приложение вызвало проблемы с настройкой стандартного приложения для файлов .html, поэтому оно сброшено для Microsoft Edge.
An app default was reset. An app caused a problem with the default app setting for .html files, so it was reset to Microsoft Edge.
Соотвественно, в Windows 10 не сможете настроить сопоставление файлов через реестр, как это работало в Windows 7.
В сети есть неофициальная утилита SetUserFTA.exe, которая позволяет вычислить хэш и назначить сопоставление программе типу файлов напрямую через реестр.
Сброс всех ассоциаций файлов в Windows
С помощью следующей команды можно сбросить импортированные ранее настройки ассоциаций файлов в Windows:
Dism.exe /Online /Remove-DefaultAppAssociations
После выполнения данной команды, все новые пользователи системы будут загружаться со стандартными настройками ассоциаций (на имеющиеся профили пользователей системы такой сброс не действует).
Чтобы сбросить ассоциации файлов, настроенные пользователем вручную, нужно в панели Параметры -> Система -> Приложения по умолчанию (Default Apps) нажать на кнопку Сброс (Reset).
При этом все ассоциации файлов вернутся к состоянию чистой Windows 10.
Чтобы это исправить, нужно воспользоваться редактором реестра. Чтобы случайно не нарушить работу системы, сделайте backup реестра и создайте точку восстановления Windows.
Покажу на примере файла с расширением .cfg. Я назначил программой по умолчанию для него WordPad.
Чтобы сбросить программу по умолчанию:
- Нажмите Win+R и введите команду
regedit
- Следуйте по пути HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts.
- Здесь ищите нужное расширение файла (например .cfg) и нажмите на OpenWithList.
- В правом окне в колонке “Значение” ищите программу, которая открывает этот тип файла (WORDPAD.EXE), нажмите ПКМ → Удалить.
- Подтверждаем операцию.
- Затем перейдите в UserChoise, нажмите правой кнопкой мыши на параметр Progld и выберите изменит (или удалить).
- Удалите строку Application/wordpad.exe и нажмите ОК (также можете удалить этот параметр полностью).
Если при нажатии ОК или при удалении вы получили ошибку “Не удается удалить все выделенные параметры”, значит система выставила защиту от изменения параметров.
Чтобы обойти защиту, не выходя из директории UserChoise:
- Нажмите “Правка” → “Разрешения…”.
- Выберите из списка свой профиль и нажмите “Дополнительно”.
- В колонке “Тип” найдите строку “Запретить” с именем профиля. Выделите ее и нажмите “Удалить”.
- Нажмите ОК, чтобы сохранить изменения в дополнительных параметрах безопасности и попробуйте удалить выбранный параметр еще раз.