Windows10 コマンドラインから規定のアプリを変更する方法
概要
Windows10 では [設定] > [アプリ] > [既定のアプリ]から規定のブラウザを変更することが可能ですが、通常コマンドラインからこれらを変更することはできないようです。
海外サイトなどを調べてみると、どうやらUIから規定のアプリを設定する際に、レジストリのUser Choiceにハッシュキーが生成され、このキーでしか変更をすることができないというのがWindowsの仕様のよう。
そんな中、海外でコマンドラインから変更するツールを発見しましたので使ってみたいと思います。
注意:本ツールはレジストリの書き換えが発生するため、実施については自己責任でよろしくお願いいたします。
検証環境
- Windows10
- SetUserFTA v1.7.1
使用するツール
以下のChristoph Kolbicz氏が公開されているSetupUserFTAというツールを使用します。
Christoph Kolbicz のサイトによると、ハッシュキー生成アルゴリズムをリバースエンジニアリングすることでツールからの規定アプリ変更を可能にされたとのことです。
the hash is secret. Microsoft will not share it with you and obviously doesnt even share it with Citrix – this made me angry and angry me doesnt like a broken system. because i am into reverse engineering and security, i decided to look for the hash algorithm – and yes, i succeeded.
http://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/
サイトの下の方にDownLoadの見出しがあり、その中のリンクをクリックすると直接ダウンロードすることができます。
SetUserFTA: UserChoice Hash defeated – Set File Type Associations per User or Group on Windows 8/10/11 and 2012/2016/2019/2022
使い方
ダウンロードしたファイルはZIPになっていますので展開します。中身はこのようになっています。

使い方は大変簡単です。インストールなどは特に必要なく、展開したフォルダ内のSetUserFTA.exeの引数として関連付けたいファイルを渡すだけです。以下のような書き方になります。
SetUserFTA.exe <拡張子> <プログラム識別子>
検証
試しに既定のブラウザを変更してみたいと思います。

Cドライブ直下に展開したツールを配置した例になります。
cd C:\SetUserFTA
SetUserFTA http ChromeHTML
SetUserFTA https ChromeHTML
SetUserFTA .htm ChromeHTML
SetUserFTA .html ChromeHTML
既定のブラウザがChromeになりました。

Chrome以外にも使えます。
FireFox
SetUserFTA http FirefoxHTML
SetUserFTA https FirefoxHTML
SetUserFTA .htm FirefoxHTML
SetUserFTA .html FirefoxHTML
Microsoft Edge
SetUserFTA http MSEdgeHTM
SetUserFTA https MSEdgeHTM
SetUserFTA microsoft-edge MSEdgeHTM
SetUserFTA .htm MSEdgeHTM
SetUserFTA .html MSEdgeHTM
まとめ
使ってみた感想として、簡単に使えるわりにとんでもなく強力なツールだなという印象。
ブラウザを指定してプログラムを実行したいときには便利かもしれません。
参考にさせていただいたサイト
https://www.winhelponline.com/blog/set-default-browser-file-associations-command-line-windows-10/