Настройка ассоциаций файлов с программами в Windows

Настройка ассоциаций файлов с программами в Windows

В этой статье мы рассмотрим, как ассоциировать разные расширения (типы) файлов с программами в 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

Предположим, вы хотите использовать 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.

Настройка программ по умолчанию и типов файлов в windows 10

Найдите в списке расширений тип файлов .pdf. Затем щелкните по значку программы, которая ассоциирована с этим расширением и смените программу по-умолчанию для просмотра PDF файлов с Microsoft Edge на Acrobat.

задать программу по умолчанию для открытия типа файлов в windows

Можно автоматически ассоциировать определенную программу с типами файлов, для которых она зарегистрирована. Для этого в разделе Default Apps выберите Set default by apps, найдите в списке нужную программу и нажмите кнопку Manage.

выбрать программу для открытия определенного расширения файлов

В открывшемся списке будет присутствовать список поддерживаемых приложением типов файлов. Выберите расширения файлов, которые должны открываться с помощью Acrobat Reader.

сопоставление программ с поддерживаемыми типами файлов в windows 10

Изменить ассоциации программ с типами файлами в Windows из командной строки

В Windows вы можете использовать утилиту командной строки assoc для настройки сопоставления типов файлов с приложениями. Например, чтобы вывести программу, которая назначена для открытия файлов PDF, выполните команду:

assoc .pdf

В данном примере видно, что с этим расширением ассоциирован тип файлов AcroExch.Document.DC:

.pdf=AcroExch.Document.DC

команда assoc в windows для настройки сопоставления типов файлов с программой

Вывести все сопостаяления расширения с типами файлов:

assoc|more

Чтобы понять с каким исполняемым файлом ассоциирован тип файла AcroExch.Document.DC, выполните:

ftype AcroExch.Document.DC

команда ftype задать программу для типов файлов

Вы можете задать тип для определенных файлов с помощью команды:

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 утилита для настройки ассоциаций файлов

Чтобы задать ассоциацию для определенного типа файлов, используется команда:

SetUserFTA.exe extension progid

Например, назначить Chrome браузером по-умолчанию:

SetUserFTA  http ChromeHTML
SetUserFTA  https ChromeHTML
SetUserFTA  .htm ChromeHTML
SetUserFTA  .html ChromeHTML

Если для приложения не создан класс файлов или Progid, можно указать его исполняемый файл. Например:

SetUserFTA  .txt applicationsnotepad++.exe

Это возможно для приложений, зарегистрированных в ветке реестра
HKEY_CLASSES_ROOTApplications
.

Экспорт, импорт и перенос настроек ассоциаций файлов Windows через XML файл

Текущие настройки ассоциаций файлов с программами, которые настроены под текущим пользователем, можно экспортировать в файл .XML с помощью DISM:

Dism.exe /online /Export-DefaultAppAssociations:C:PSDefaultAssoc.xml

Команда экспортирует в XML файл все настроенные у вас сопоставлений программ. Вы можете открыть файл DefaultAssoc.xml в любом текстовом редакторе, и посмотреть полный список настроек. Если вы хотите использовать только часть ассоциаций из этого списка (чтобы не переопределять имеющиеся настройки для остальных расширений файлов на других компьютерах), можно вручную отредактировать XML файл. Оставьте только строки с нужными вам расширениями файлов. К примеру, оставьте только строки для расширений .pdf и .fdf, остальные строки удалите. Должен получиться примерно такой XML-файл:





Dism Export-DefaultAppAssociations в XML файл

Полученный XML файл можно импортировать в образ Windows на другом компьютере с помощью DISM в режиме онлайн:

Dism.exe /Online /Import-DefaultAppAssociations:C:PSDefaultAssoc.xml

Важно. Данные настройки сопоставления расширений файлов с программами будут применены только к новым пользователям системы во время их первого входа. Если при импорте появится ошибка App default reset notification, проверьте синтаксис XML файла.

Также можно импортировать параметры ассоциаций в офлайн образ Windows в wim файл (который вы используете для раскатки образа на новые компьютеры). Сначала нужно смонтировать образ:

Dism /Mount-Image /ImageFile:C:mntimagesinstall.wim /MountDir:C:mntoffline

А затем импортировать xml файл:

Dism.exe /Image:C:mntoffline /Import-DefaultAppAssociations:Server1ShareDefaultAssoc.xml

Совет. Текущие настройки ассоциаций файлов в офлайн образе Windows можно получить с помощью такой команды:

Dism.exe /Image:C:mntoffline /Get-DefaultAppAssociations

Настройка ассоциаций файлов в Windows с помощью GPO

В современных версиях Windows можно использовать новый параметр групповых политик, позволяющий применить xml файл с настройками ассоциаций файлов ко всем текущим пользователям компьютера.

Например, вы хотите применить групповую политику с настройками ассоциаций файлов ко всем компьютерам в определенном OU (Organizational Unit) Active Directory.

  1. Откройте консоль управления доменными GPO (
    gpmc.msc
    );
  2. Найдите OU с компьютерами, для которых вы хотите применить файловые ассоциации и создайте новую GPO;
  3. Переключитесь в режим редактирования GPO и перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> File Explorer;
  4. Найдите параметр Set a default associations configuration file (Задать файл конфигурации сопоставлений по умолчанию);
  5. Включите политику и укажите UNC путь к вашему xml файлу (убедитесь, что путь не содержит кавычки или пробелы). Его можно разместить на общедоступном файловом сервере, в каталоге SYSVOL на контроллере домена, или предварительно скопировать файл на компьютеры с помощью GPP/ SCCM;применить настройки ассоциаций файлов с помощью групповой политики
  6. Перезагрузите компьютер, чтобы применить новые ассоциации файлов.

Новые настройки сопоставлений будут применены ко всем пользователям компьютера после следующего входа.

Путь к XML файлу с новыми настройками ассоциации файлов содержится в параметре реестра DefaultAssociationsConfiguration в разделе ComputerHKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSystem.DefaultAssociationsConfiguration параметр реестра windows 10

Т.к. 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_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pdfUserChoice
.

Обратите внимание, что в данной ветке с настройками ассоциация для расширения html есть два параметра:

  • ProgId – идентификатор зарегистрированной программы для открытия этого типа файлов. Если вместо имени приложения указан длинный идентификатора, значит назначена ассоциация файла с современным приложением UWP/Metro. Проверьте, что оно не удалено из вашего образа Windows 10;
  • Hash – хеш, который генерируется автоматически для валидации настройки сопоставления типа файлов с программой. Наличие этого хэша, гарантирует, что именно пользователь или администратор (через GPO) настроил данное сопоставление. Этот механизм нужен для защиты пользователей от вредоносных программ, которые могут подменить ассоциации файлов без его ведома.

progid и hash в реестре для ассоциаций программ с файлами

Если вы попробуете руками изменить значение 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 10 не сможете настроить сопоставление файлов через реестр, как это работало в Windows 7.

В сети есть неофициальная утилита SetUserFTA.exe, которая позволяет вычислить хэш и назначить сопоставление программе типу файлов напрямую через реестр.

Сброс всех ассоциаций файлов в Windows

С помощью следующей команды можно сбросить импортированные ранее настройки ассоциаций файлов в Windows:

Dism.exe /Online /Remove-DefaultAppAssociations

После выполнения данной команды, все новые пользователи системы будут загружаться со стандартными настройками ассоциаций (на имеющиеся профили пользователей системы такой сброс не действует).

Чтобы сбросить ассоциации файлов, настроенные пользователем вручную, нужно в панели Параметры -> Система -> Приложения по умолчанию (Default Apps) нажать на кнопку Сброс (Reset).

wiindows 10 сбросить ассоциации файлов

При этом все ассоциации файлов вернутся к состоянию чистой Windows 10.

Windows 11
Настройка ассоциаций файлов с программами в Windows