こんにちは、阿久津です。ファイルの関連付けは、Windows OSを使いこなすうえで重要な役割を担ってきました。ファイルをダブルクリックするだけで、アプリケーションが起動し、ファイルが開くという一連の流れを実行できます。このロジックはMS-DOS時代のファイラーから、Windows 8.1の現在まで実装されてきました。

Windows 8.1の場合、関連付け情報はコントロールパネルの「既定のプログラム」を起動するか、「PC設定」の「検索とアプリ」→「既定」と選択することで参照および設定が可能になります(図01~02)。

前者の場合は、<既定のプログラムの設定>をクリックすることでアプリケーションベースの設定が、<ファイルの種類またはプロトコルのプログラムへの関連付け>をクリックすればファイルの種類(拡張子)およびプロトコルベースで関連付けるアプリケーションの設定が可能。後者は<+>ボタンをクリックすることで、任意のWindowsストアアプリ/デスクトップアプリを選択できます(図03~05)。

図01 デスクトップ環境で使用する「既定のプログラム」

図02 モダンUI環境で使用する「検索とアプリ」の「既定」

図03 <既定のプログラムの設定>をクリックすると現れる設定画面。アプリケーションベースで関連付けを設定できます

図04 <ファイルの種類またはプロトコルのプログラムへの関連付け>をクリックすると現れる設定画面。拡張子およびプロトコルベースで関連付けを設定できます

図05 モダンUIの場合は<+>ボタンをクリックして関連付けするアプリケーションを選択します

一見するとモダンUI環境は使い勝手が悪いように見えますが、ページをスクロールさせると下部に、<ファイルの種類ごとに既定のアプリを選ぶ><プロトコルごとに既定のアプリを選ぶ>の2項目が存在することにお気付きでしょうか。それぞれの項目をクリックすると、設定が可能になります(図06)。

さらに後者は「URL:audiocall-messenger」など、Windows 8.1の内部で定義されたスキームによる関連付け設定が可能。例えば「Skype」のようなインターネット電話アプリケーションを複数インストールしている場合、他のアプリケーションを選択することで、連絡を受けるアプリケーションを変更できるという仕組みです(図07~08)。

図06 「既定」を下方向にスクロールされると現れる項目で、関連付けするアプリケーションの選択方法を変更できます

図07 こちらは<ファイルの種類ごとに既定のアプリを選ぶ>を選択した状態。ページ左側に拡張子が並びます

図08 こちらは<プロトコルごとに既定のアプリを選ぶ>を選択した状態。Windows 8.1内部で定義されているスキームが並びます

このように重要な関連付けですが、その設定情報はレジストリ内に格納されているため、簡単に見ることはできません。HKEY_CLASSES_ROOTキーを参照すれば済む話ですが、データ量が膨大すぎて確認するには不向きです。そこで試したいのが、Windows 7から使用可能になった「展開イメージのサービスと管理(DISM.exe)」。従来のパッケージマネージャーやイメージツールなどの機能を統合したコマンドラインツールです。

今回はDism.exeを使ってアプリケーションの関連付けをXML形式ファイルとして出力するチューニングをお届けしましょう。

1. 管理者権限でコマンドプロンプトを起動します。
2. 「Dism.exe /Online /Export-DefaultAppAssociations:%USERPROFILE%\Desktop\FA.xml」を実行します。
3. コマンドプロンプトを終了させます。

これでチューニングが完了しました(図09~11)。

図09 [Win]+[X]キーを押してクイックアクセスメニューを開き、<コマンドプロンプト(管理者)>をクリックします

図10 コマンドプロンプトに「Dism.exe /Online /Export-DefaultAppAssociations:%USERPROFILE%\Desktop\FA.xml」と入力して[Enter]キーを押します

図11 これでファイルの出力が完了しました。<×>ボタンをクリックしてコマンドプロンプトを終了させます

では、結果を確認してみましょう。デスクトップに生成された「FA.xml」ファイルをダブルクリックすると、Internet Explorer 11が起動し、XML形式ファイルの内容が確認できます。「Association ApplicationName」の要素内で関連付け済みアプリケーションと、アプリケーション情報を内部管理するProgID、そして、拡張子が属性名として並んでいます(図12)。

図12 出力したXML形式ファイルをダブルクリックすると内容を確認できます

今回は関連付け情報をXML形式でエクスポートするオプション「/Export-DefaultAppAssociations」を使用していますが、単純に結果を出力する場合は「/Get-DefaultAppAssociations」が使用可能です。また、XML形式ファイルをインポートするオプション「/Import-DefaultAppAssociations」も用意されているので、関連付け情報の管理だけでなく、バックアップ/復元といった場面にも活用できます(図13~14)。

図13 オプション「/Get-DefaultAppAssociations」を使うと、コマンドプロンプトに関連付け情報が出力されます

図14 オプション「/Import-DefaultAppAssociations」を使うと、エクスポートしたXML形式ファイルの情報をインポートできます

それでは、また次号でお目にかかりましょう。

阿久津良和(Cactus