PuTTYの設定をファイルに保存してはいけない

PuTTYユーザマニュアルでは、PuTTYの設定をファイルに保存するバッチファイルが紹介されています。

今のところ、PuTTYの設定の保存先としてレジストリの代わりにファイルを使うことはできません。しかし、バッチファイルを利用すれば、設定をファイルに保存できます。

しかし、このバッチファイルは使うべきではありません。

バッチファイルの手順

バッチファイルの手順は以下の通りです。この手順により、PuTTYの設定をファイルに保存する仕組みを実現しています。

  1. 設定をファイルからレジストリにインポートする。
  2. PuTTYを起動する。
  3. (PuTTYの終了後)設定をレジストリからファイルにエクスポートする。
  4. 設定をレジストリから削除する。

この手順は、PuTTYを1つだけ起動する場合にはうまく動作します。しかし、PuTTYを複数起動した場合に問題が起きます。

前提: PuTTYの設定の仕組み

PuTTYは複数起動した場合、全てのPuTTYレジストリ中の設定を共有します。PuTTYは必要に応じて、設定をレジストリから読み込んでいます。

問題1: 設定変更後に別のPuTTYを起動すると、変更内容が消える。

PuTTYの設定を変更すると、変更内容はレジストリに書き込まれます。その後、バッチファイルで別のPuTTYを起動すると、レジストリ中の変更内容がファイルの内容で上書かれて消えてしまいます。

問題2: PuTTYを終了すると、起動中の別のPuTTYが設定を読めなくなる。

PuTTYを終了すると、バッチファイルの後続処理によってレジストリの設定が削除されます。そのため、起動中の別のPuTTYは、設定を読み込むことが出来なくなります。

問題3: PuTTYの終了後、別のPuTTYで設定変更を行うと、設定ファイルが壊れる。

問題2で述べたとおり、PuTTYを終了するとレジストリから設定が削除されます。
その後、別のPuTTYで設定変更を行うと、レジストリ中に設定が新たに作成されます。設定変更後にPuTTYを終了すると、新たな設定がファイルに書き込まれます。そのため、ファイルに保存されていた既存の設定は、新たな設定で上書きされてしまいます。その結果、意図せずファイルを壊してしまいます。

結論: PuTTYの設定をファイルに保存してはいけない

PuTTYユーザマニュアルで紹介されているバッチファイルを使うと、上記のような問題が起きることがあります。特に、問題3では設定ファイルが壊してしまうことがあり、大問題です。
したがって、なるべくこのバッチファイルは使うのはやめた方がようでしょう。もし、どうしても使うのであれば、バッチファイルの挙動をよく理解して、注意して使ったほうがよいでしょう。