« Bフレッツのトラブル | トップページ | メンテナンススクリプトの実行時刻 »

2007年3月16日 (金)

XPのユーザープロファイルフォルダを別のドライブへ移動

Windows XPでユーザープロファイルフォルダを別パーティションに移動してみた

以前自宅のMacのホームディレクトリを起動ディスク以外のディスクに移動したのだけど(起動ディスクの容量が少ないので)、今度は職場で使っているWindows XPのユーザープロファイルフォルダを起動パーティションから追い出してみた。目的は、起動パーティションにはなるべくデータを置きたくないから&起動パーティションへの書き込みをなるべく減らす為。もちろん環境変数のTEMPなんかはDドライブに作ったテンポラリディレクトリに書き換えてあるし、スプールフォルダも変更した(やり方は忘れたけどどこかに設定があったような気がする)。

 

なお、Windows的に正しい操作はレジストリの内容を書き換える方法で、そのやり方はこちらの方の説明を読んでいただきたい。またはそこから書き写したこちらのメモ。ここで書く方法は無理矢理リパースポイントの使い道を探そうという発想の下に書かれているのでWindows的には正しくないものかも知れない。XPや2000では突然リパースポイントが解除されてしまう事もあるのでそうなっても慌てずにリパースポイントを再設定できる人にしかここのやり方は勧められない (^^;)

今回はC:\Documetns and Settings下にある自分を含めて3ユーザー分のユーザープロファイルをDドライブに作った適当なフォルダの下へ移動した。作業は以下の手順で行った。

1. コンピュータを再起動する
 再起動しないでログオフしただけだと、それまでにログインしたユーザーのレジストリ(ntuser.datだったかな?)が開かれたままになっていて3.の手順でコピーできない
2. 移動しないユーザー(Administrator)でログイン
 他のユーザーが無ければあらかじめ作っておくこと
3. ユーザープロファイルフォルダをExplorerでコピー
 例えば、C:\Documents and Settings\TaroをD:\Documents\Taroへ
4. もとのユーザープロファイルフォルダを空にし、コピー先のフォルダへのリパースポイントを作成する。私はNTFSUtilsを使用

これで移動した各ユーザーでログインし直せば、以前と全く同じ様に使える。もとのプロファイルフォルダには移動先のフォルダへのリパースポイントを設定してあるので、全てのファイルにはC:\Documents and Settings\Taro\My Documents\...等というパスでアクセスできる(そうでないと移動したユーザープロファイルにシステムがアクセスできないし)。

なお、これはNTFS5の機能であるリパースポイントを使っているので、FAT32では使えない。

そもそもこんなことを思いついたのは、VistaのProgram FilesやDocuments and Settings等のフォルダがもっと短い名前の別フォルダへのシンボリックリンクになっているという記事を読んだから。Windowsなんて所詮パスでしかファイルを管理していないから、XPでもリパースポイントを使ってやれば同じことができると思ったのである。ちなみにMac OS Xでホームを移動した時は、別ユーザでログインしてホームディレクトリをコピー、/Userに移動先へのシンボリックリンクを作成してNetInfoマネージャで一部の設定を書き変え、という手順だったような。参考にした情報はホームを移動した時の日記に書いてあったはず (^^;)

ただしちょっと問題があって、別のドライブへのリパースポイントを設定したフォルダ内のファイルやフォルダをExplorerで削除する時に、削除できないことがある。これはExplorerがリパースポイントを考慮して作られていないためのようで、ゴミ箱に入れずにすぐに削除する設定にしておけばいいらしい。あるいは、移動先のフォルダを開いて削除するようにすればいい(つまり、C:\Documents and Settings下にはリパースポイントを設定した空のフォルダがあるだけなので、デスクトップ上のフォルダを削除する時には普通に操作するとNG。例の場合だとD:\Documents\Taro\デスクトップを開いて削除しなくてはならない)。あまりこういう事を意識して使うのも面倒なので、自分の環境だとMy DocumentsはMy DocumentsのプロパティでDドライブのフォルダを直接指定してある (^^;) たまにデスクトップやメニューの項目の作助がうまく行かなくてExplorerで移動先のフォルダを開くハメになる位。

2007/6/3 追加
Windows XPでは唐突にリパースポイントが解除されてしまう事があるようで、自分は今まで2回ほど経験した事がある。1回目は文書フォルダ内に張ってあったリパースポイントで、2回目はC:\Documents and Settings下の自分のユーザープロファイルフォルダのリパースポイント。突然メニューの項目が減っていたので(All Usersのものだけになっていた)気がついた。デスクトップフォルダはレジストリを書き換えてあったので変わらなかったけど。
ネット上を調べたら、C:\Program Filesを別ボリュームに置いている人が突然リパースポイントを解除されたということがあったようで、これはこれで驚くよなあ。
リパースポイントを解除してくれるのがWindows自身なのかあるいは何か別のソフトなのかは調べていないのだけど、自分の場合は1回目の時は覚えていないが、2回目はOperaをアンインストールしようとしてテンポラリディレクトリ内のOpera Install.msiが見つからないとアンインストールプログラムに文句を言われた後だったのが怪しい気がする。Opera Install.msiが見つからなかったのは、何ヶ月か前にテンポラリディレクトリのゴミ掃除をしたせいだと思うけど、数日前にOpera 9.21をインストールしたばかりなんだが。

|

« Bフレッツのトラブル | トップページ | メンテナンススクリプトの実行時刻 »

Windows」カテゴリの記事

コメント

こんにちは。
デスクトップで削除するとトラブルが生じるとのことですが、
レジストリエディタで
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
の「DeskTop」を
「D:\Documents\Taro\デスクトップ」という値に変えてみる、
という方法はいかがでしょうか?

レジストリをいじるのは危険を伴うので、
一度テスト用のアカウントを作って試してみることをお勧めします。

投稿: Fablic | 2007年3月17日 (土) 01時26分

Fablicさんこんにちは。

コメントありがとうございます。ユーザープロファイルフォルダのパスを変えるのはレジストリを変えるのが本筋だとは思うのですが、今回はリパースポイントの使い道は無いか?というのが自分なりのテーマだったので、あえてレジストリには触らない事にしていました。

自宅のマシンでもシンボリックリンクを作成する事は滅多に無いので、無理してWindowsでリパースポイントを使う事は無いのではありますが・・・ (^^;)

投稿: yish | 2007年3月17日 (土) 16時56分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: XPのユーザープロファイルフォルダを別のドライブへ移動:

« Bフレッツのトラブル | トップページ | メンテナンススクリプトの実行時刻 »