QA@IT

TeraTermマクロのSSH認証画面を非表示にしたい

11329 PV

■前提・実現したいこと
Windows Serverで
TeraTermマクロを利用してSSHによる機器の制御を行っています。
処理の全体制御はWindowsバッチ(.bat)により行い、
そのバッチをジョブ制御ソフトで制御します。

処理はバックグラウンドで実行する想定のため、
すべての画面は非表示としたいです。

■発生している問題・エラーメッセージ
.batよりttpmacro.exeを起動し、
connectコマンドによりSSH接続を実行しているのですが、
このときのSSH認証画面がどうしても非表示にできません。
(エラーなどは特に起きていません。)

■該当のソースコード
【test.bat】

"C:\XXXX\ttpmacro.exe" /V "C:\XXX\test.ttl" arg

【test.ttl】

connect '/V HOSTNAME /ssh /2 /auth=publickey /user=USERNAME /passwd=PASSWORD /keyfile=KEYFILE'

■試したこと
①/Iオプションによる最小化
TeraTermの/Vオプションに加え
/Iオプションの併用によりSSH認証画面も最小化することはできますが、
フォーカスがTeraTermに移ってしまい
ユーザ操作を阻害してしまうため採用できません。

②VBSのrunメソッドによる画面非表示
VBSのrunメソッドで画面非表示を試みましたが、
SSH認証画面は別プロセス扱いなのか
非表示となりませんでした。
(マクロダイアログボタンだけが非表示になる。)

【test.vbs】

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("C:\XXXX\ttpmacro.exe" & " " & "C:\XXXX\test.ttl" & " " & arg, 0 , TRUE)
WScript.Echo Return
Set WshShell = Nothing

■補足情報(言語/FW/ツール等のバージョンなど)
OS : Windows Server 2012 R2
TeraTerm : 4.78

回答

コマンドラインでされるのなら、 Microsoft PowerShellチームが提供している Windows用OpenSSHを使用されるのがよいかと思います。
https://github.com/PowerShell/Win32-OpenSSH/releases
※リンク先に Win64版もあります。

編集 履歴 (0)
  • ご回答ありがとうございます。

    今回はシステム設計の都合上、
    どうしてもWindows Server標準機能+TeraTermで完結させる必要があります。

    OpenSSHについては今後の参考とさせていただきます。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。