こんにちは、阿久津です。ファイルの関連付けは、Windows OSを使いこなすうえで重要な役割を担ってきました。ファイルをダブルクリックするだけで、アプリケーションが起動し、ファイルが開くという一連の流れを実行できます。このロジックはMS-DOS時代のファイラーから、Windows 8.1の現在まで実装されてきました。
Windows 8.1の場合、関連付け情報はコントロールパネルの「既定のプログラム」を起動するか、「PC設定」の「検索とアプリ」→「既定」と選択することで参照および設定が可能になります(図01~02)。
前者の場合は、<既定のプログラムの設定>をクリックすることでアプリケーションベースの設定が、<ファイルの種類またはプロトコルのプログラムへの関連付け>をクリックすればファイルの種類(拡張子)およびプロトコルベースで関連付けるアプリケーションの設定が可能。後者は<+>ボタンをクリックすることで、任意のWindowsストアアプリ/デスクトップアプリを選択できます(図03~05)。
一見するとモダンUI環境は使い勝手が悪いように見えますが、ページをスクロールさせると下部に、<ファイルの種類ごとに既定のアプリを選ぶ><プロトコルごとに既定のアプリを選ぶ>の2項目が存在することにお気付きでしょうか。それぞれの項目をクリックすると、設定が可能になります(図06)。
さらに後者は「URL:audiocall-messenger」など、Windows 8.1の内部で定義されたスキームによる関連付け設定が可能。例えば「Skype」のようなインターネット電話アプリケーションを複数インストールしている場合、他のアプリケーションを選択することで、連絡を受けるアプリケーションを変更できるという仕組みです(図07~08)。
このように重要な関連付けですが、その設定情報はレジストリ内に格納されているため、簡単に見ることはできません。HKEY_CLASSES_ROOTキーを参照すれば済む話ですが、データ量が膨大すぎて確認するには不向きです。そこで試したいのが、Windows 7から使用可能になった「展開イメージのサービスと管理(DISM.exe)」。従来のパッケージマネージャーやイメージツールなどの機能を統合したコマンドラインツールです。
今回はDism.exeを使ってアプリケーションの関連付けをXML形式ファイルとして出力するチューニングをお届けしましょう。
1. 管理者権限でコマンドプロンプトを起動します。
2. 「Dism.exe /Online /Export-DefaultAppAssociations:%USERPROFILE%\Desktop\FA.xml」を実行します。
3. コマンドプロンプトを終了させます。
これでチューニングが完了しました(図09~11)。
図10 コマンドプロンプトに「Dism.exe /Online /Export-DefaultAppAssociations:%USERPROFILE%\Desktop\FA.xml」と入力して[Enter]キーを押します |
では、結果を確認してみましょう。デスクトップに生成された「FA.xml」ファイルをダブルクリックすると、Internet Explorer 11が起動し、XML形式ファイルの内容が確認できます。「Association ApplicationName」の要素内で関連付け済みアプリケーションと、アプリケーション情報を内部管理するProgID、そして、拡張子が属性名として並んでいます(図12)。
今回は関連付け情報をXML形式でエクスポートするオプション「/Export-DefaultAppAssociations」を使用していますが、単純に結果を出力する場合は「/Get-DefaultAppAssociations」が使用可能です。また、XML形式ファイルをインポートするオプション「/Import-DefaultAppAssociations」も用意されているので、関連付け情報の管理だけでなく、バックアップ/復元といった場面にも活用できます(図13~14)。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)