先日OpenSSH for Windowsをインストールしました。
しかし、使い方がよくわからなかったのでアンインストールしました。
その後コマンドプロンプトでコマンドを使おうとすると、なぜか認識されない。
あー、またPATHか。と思ってecho %PATH%すると…
P A T H の デ ー タ が 無 い
正確には全く無いわけではないが、ほとんどが消えている。
慌てて環境変数を編集するダイアログを開くと…
デデドン!(絶望)
なんと、システム環境変数のPATHがOpenSSHのディレクトリだけになっていました。
C:\Windows\System32さえありません。
(ユーザー環境変数のPATHは無事のようでした)
急いでPATHの復元の仕方をググると、幸いにも出てきました。
WindowsのPATHの設定を復元する - 大人になってからの再学習
この記事はWindows 7の話ですが、Vistaでも大丈夫なようです。Meとか2000とかXPとか8とか8.1とかは知りません。
簡単に言うと
システムの復元で適当な復元ポイントへ→PATHのデータをバックアップ→復元の取り消し→バックアップしたPATHを設定する
という流れです。
幸い、この方法で無事復元に成功しました。
再現実験をしてみたところ、PATHが短い時(C:\Windows\System32のみを設定)は、消えることはなく正常に設定されました。
ということは、PATHが長すぎる時に、不正なバッファオーバーラン対策により殺されるということだと推測できます。
インストーラのソースコードが公開されていたので調べたところ、nsisというものを使用しているようでした。
ということは、nsisを利用した他のソフトウェアのインストールでも同様の事態が発生する可能性があるということです。
このアイコンが見えたら、インストールの前にPATHのバックアップを取りましょう!
訴訟不可避!環境破壊ウイルスと化したインストーラ
Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ
ででどん!で思わず笑ってしまったw
不幸な目に逢っても再現テストをするとは素晴らしい。
不幸な目に逢っても再現テストをするとは素晴らしい。
Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ
まぁ、結果からいうと別にNSISだからっていう現象ではないんだけどね。
どのインストーラでも環境変数をいじるソフトには発生し得る問題ですよ。
Windowsのバージョンにも依るけども長すぎると削除されるのは既知の問題っぽいね
Windows7は2048文字以上(新しくセットされる予定の環境変数も含めて)で既存の環境変数が削除されるみたいですよ。
私も過去にNSISではないインストーラでインストールしたソフトで同じことやらかされましたからね…
どのインストーラでも環境変数をいじるソフトには発生し得る問題ですよ。
Windowsのバージョンにも依るけども長すぎると削除されるのは既知の問題っぽいね
Windows7は2048文字以上(新しくセットされる予定の環境変数も含めて)で既存の環境変数が削除されるみたいですよ。
私も過去にNSISではないインストーラでインストールしたソフトで同じことやらかされましたからね…
Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ
定期的に、setコマンドの出力をリダイレクトして作ったテキストファイルをバックアップすると良いですよ。