ブラウザ経由でファイルサーバーのディレクトリを開きたい [Explorer連動]

今回は、ブラウザで "file:///" のハイパーリンクをクリックすると エクスプローラが起動する方法を紹介するが、
Windowsレジストリを設定するので、細心の注意を払う必要がある。
レジストリは、プログラムが随時読み書きを行っている。
ちょっとした手違いが、「Windows再起動したら、OSが立ち上がらない!」という事もありえる
ので注意して欲しい。
重要なので2回言いました

紹介にあたり、この設定は
「Webブラウザからエクスプローラーを起動する」 Gomita氏執筆
https://zenn.dev/gomita/articles/3446c5764265c2
を参考(リスペクト)させて頂きました。ありがとうございます。

〇 やりたいこと

ブラウザで "file:///" のハイパーリンクをクリックすると エクスプローラを起動したい。
(エクスプローラ上でファイル一覧を確認したい)

〇 実装環境・条件について

[ファイルサーバー]

Rocky Linux 8.8
・ httpd-2.4.37-56
・ samba-4.17.5-3
WEBコンテンツ("file:///"のリンクを貼る)は、新規作成する

[クライアント]

Windwos10/11
ブラウザは、Firefox, chrome
ブラウザからファイルサーバー上のWEBコンテンツのハイパーリンクをクリックすると、
エクスプローラで対象のディレクトリが表示される

〇 実装手順

[ファイルサーバー]

動作確認の為のhtmlを作成

<html>
<p> ServerGroup ショートカットリンク
  <ol>
    <li>Teraterm</li>
      <ul>
        <li><a href="file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\Main">本体</a> プログラム</li>
        <li><a href="file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\TTL">マクロ</a> 業務に必要なマクロ集</li>
        <li><a href="file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\INI">初期設定ファイル</a> 新人の方は、まずこれをひな型に</li>
        <li><a href="file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\TTL">ヘルプ</a> 使い方、マクロ修正時の参考に</li>
      </ul>
    <li>WinSCP</li>
    <li>VirtualBox</li>
  </ol>
</html>

通常は、href= の所に、"file/////192.168.1.81/ServerkGrp/Software/teraterm/Main" と入れるだろう。
もしくは、メールで「ここに保存したよ!」とアナウンスする場合は、
\\192.168.1.81\ServerkGrp\Software\teraterm\Main

今回の仕掛けでは、
先頭に、 file-explorer:と書くと、後述するレジストリ設定のトリガとなる。
例) file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\Main"

[クライアント側]

ユーザー名は、testuser01

(1) 参考サイトより、"エクスプローラー起動用Windows Script (file-explorer.js)"を入手 orz
     著者は、C:\Users\testuser01\browser2expolorer\file-explorer.js に配置

(2) レジストリファイルの作成
      (1)で保存場所を変更したので、こちらも修正。ファイル名は任意(file-explorer_regist.reg)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\file-explorer]
@="URL:FileExplorer Protocol"
"URL Protocol"=""

[HKEY_CURRENT_USER\SOFTWARE\Classes\file-explorer\shell\open\command]
@="\"wscript.exe\" \"C:\\Users\\testuser01\\browser2expolorer\\file-explorer.js\" \"%1\""

このレジストリ設定が完了すると、
例えば、href="file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\Main" では、
"file-explorer:" に反応して、
"wscript.exe C:\Users\\testuser01\browser2expolorer\file-explorer.js file-explorer:\\192.168.1.81\ServerkGrp\Software\teraterm\Main" が実行され、
file-explorer.js が、"explorer.exe \\192.168.1.81\ServerkGrp\Software\teraterm\Main" を実行。
結果、エクスプローラが指定のフォルダを開くという動作となる。

(3)レジストリファイル(file-explorer_regist.reg)を実行して登録する

(番外編) (3)で登録したレジストリを削除したい場合は、下記をファイルに保存して実行する

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\SOFTWARE\Classes\file-explorer]

(4) ブラウザにて動作確認