【EVE-NG】ノードをクリックするとTeraTermが起動するようにしたい
はじめに
EVE-NGでノードにtelnet接続するととき、ノードを左クリックするとデフォルト状態では「Internet Shortcut Shell Extension DLLを開きますか?」とダイアログが開きますが、開くを左クリックしても何も起こらないです。
ノードを左クリックしてTeraTermを起動させたいと思い設定方法を調べてみました。
※↓これが出る
使用環境
OS:Windows 11 Home Version 22H2
ブラウザ:Chrome
EVE-NG:eve-ce-prod-5.0.1-24-esxi-ws-full.iso
前提
Windowsではスキーム名をもとにアプリを開く機能があります。
「http://xxx.com」というURLがある場合、httpがスキーム名になります。
コマンドプロンプトに"start http://google.com"と入力するとブラウザでgoogleのページが開きますし、
名前を付けて実行で"http://google.com"と入力するとブラウザでgoogleのページが開きます。
原因
・既定のアプリにtelnetが登録されていないから。
・レジストリがデフォルトのままだから
既定のアプリにTELNETがあれば、指定のアプリで開くはず
既定のアプリを見ると、拡張子指定で開くアプリを指定している部分とスキーム名で指定している部分がある。
※ 画像の設定から下記がわかる
.xhtmlファイルはEdgeで開く
https:はChromeで開く
TELまでで検索するとTEL:はあるものの、TELNETがない
恐らくtelnet実行可能なアプリをインストールしていないため、既定のアプリにTELNETがエントリされていない。
例)
・Windowsの機能の有効化無効化のTELNETは有効化していない
・TeraTermはzip版を使っていた(インストールしていない)
レジストリの確認
レジストリエディタを開き、”コンピューター\HKEY_CLASSES_ROOT”を見ていくと、拡張子やスキーム名があり、各々の実行時にアプリを開くためのコマンドが定義されていることが分かる。
TELNETを見ると、下記のように定義されているので、これをTeraTermに変更する。
"C:\Windows\System32\rundll32.exe" "C:\Windows\System32\url.dll",TelnetProtocolHandler %l
やったこと
Windows + r で ファイル名を指定して実行
"regedit"と入力してenterキー押下
レジストリエディタで「コンピューター\HKEY_CLASSES_ROOT\telnet\shell\open\command」を開く
「(規定)」をダブルクリックし下記のように値のデータを変更
【変更前】
"C:\Windows\System32\rundll32.exe" "C:\Windows\System32\url.dll",TelnetProtocolHandler %l
【変更後】
"C:\work\teraterm-5.0\ttermpro.exe" /T=1 /nossh %1
※TeraTermのパスはzipを解凍した場所などになります。
ノード(下記でいうとRT)を左クリックするとTeraTermを開くか聞かれるので、開くを押下するとTeraTermが実行される。
おわりに
ネットワークエンジニアといえど、Windowsにも詳しくなる必要があります。