yamy とか PuTTY とか、
インストーラーがついていなくて自分で解凍して適当なディレクトリに配置する
ようなソフトウェアを、Program Files の中に手動で置いていたけど、
それだと不都合があることがわかってきたのでまとめておく。
これらのプログラムは、設定変更されたときに実行ファイルと同じ場所に
設定ファイルを書き出すらしい。
どうも Program Files の中のファイルは権限的に書き込みできないようなので、
反映しない。エラーも出ない。
自分で置いたディレクトリなのに…。
環境
- 環境: Windows 7
- ユーザーアカウント制御の設定: 既定 – プログラムがコンピューターに変更を加えようとする場合のみ通知する (上から2番目)
- yamyなど、インストーラーを持たない、かつ、実行ファイルと同じディレクトリのファイルに書き込みをしようとする場合
調査
yamy の設定ファイル を例に説明する。
yamy には設定を選べるUIがあって、これを編集するUIもある。
ただ、現状、これに追加しようとしても反映しない。
おそらく c:\Program Files\yamy\yamy.ini
に書き込まれるはず。
これの権限を調べると、一般ユーザーには「読み取りと実行」しかついていない。
このせいかなぁ。
ためしに c:\ProgramPortable\
以下に入れてみる。
このディレクトリは、単に c:\
以下に何も考えずにディレクトリを作っただけ。
入れ方は、ダウンロードフォルダ内で zip を展開して、
できたディレクトリを「移動」した。
あ。うまくいった。
Authenticated Users に変更がついているからかな。
おそらく、c:\
の権限より、 c:\Program Files
の権限の方が
厳しいものになっているからだと思う。
Windows 7新時代:第8回 Windows XP → 7移行のアプリケーション・トラブル解決法 (1/2) – @IT
これのケース3に書かれていることだと思う。
場所は関係なくて、結局アクセス権限の問題なんだろうけど、
まあこれでうまくいったし、
Program Filesの中に入れてそれぞれ権限考えるのはちょっと面倒なので、
手動で入れるものは c:\ProgramPortable
に入れるようにしよう。
もちろんこのPC使うのが自分だけだから、あまり考えずにそうしているわけだけど。
そもそも Program Files 以下に設定置くようなプログラムは、
マルチユーザーでは使えないのか。
だったら、もういっそ個人ディレクトリの下に置いたほうが正解なのなかぁ。
とりあえず、以下の方針で行こう。
- インストーラーがついているソフトはそれに従う。 Program Files など
インストーラーがついてないものは、c:\ProgramPortable
に入れる- インストーラーがついてないものは、
c:\Users\ユーザー名\ProgramPortable
に入れる