2011年12月14日水曜日

Documents and Settings フォルダを別ドライブに移動する

Documents and Settings の実体は別ドライブに移動して、システムドライブ直下にはジャンクションを設定する。
システムドライブがSSDなんで出来るだけ書き込みは減らしたいからね、ちょいと面倒くさい&何かトラブった時にヤバそうだけどまぁいいやって。


環境はXP Pro SP3
  1. ここからJunction.exeをダウンロードして、パスの通っているフォルダに解凍する。
    (C:\Windows\System32)
  2. セーフモードで起動し、Administratorでログオン、Documents and SettingsフォルダをXCOPYする。
    xcopy "C:\Documents and Settings" 移動先のパス /e/c/h/k/o
    コピーが終わったら再起動。
  3. 起動したらレジストリを編集して、システムの参照先をさっきコピーしたフォルダに指定する。
    「ファイル名を指定して実行」に「regedit」と入力して実行。
    変更前にレジストリをエクスポートしておいた方が良さげ。全体と、以下のキー。特に「ProfileList」は後で使うのでエクスポート必須。
    以下のキーの 「ProfilesDirectory」 をさっきコピーしたフォルダ(D:\Documents and Settings)に変更。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList
    その下の英数字のキー内「ProfileImagePath」の値も同様に変更。(D:\Documents and Settings\ユーザ名)
    基本的には「%SystemDrive%\Documents and Settings\(ユーザー名)」となっている値の、「%SystemDrive%」の部分を、移動先ドライブに書き換えればいいと思う。
    全部のユーザを書き換えたら再起動。
  4. 移動先のディレクトリに「ユーザ名.マシン名」とか、「ユーザ名.NT AUTHORY」とかがついちゃった場合は、最初のxcopyでNTUSER.DAT、ntuser.dat.LOG、ntuser.ini辺りが権限の関係かコピーできなくて、別ユーザが作られてしまうっぽいので、もう一度コピーし直す。
    xcopy "c:\Documents and Settings\ユーザ名" 移動先Documents and Settings\ユーザ名 /e/c/h/k/o
    上書き警告は"All"にした。コピーが完了したらシステムドライブのDocuments and Settings のフォルダ名を変更する。末尾にorgでも付けておく。
  5. ジャンクションを作成。
    junction "C:\Documents and Settings" 移動先のパス
    レジストリを再編集。先ほど書き換えたキーを全て元に戻す。エクスポートしておいたレジストリ「ProfileList」を実行すればいいだけ。エクスポートしてない場合はドライブ名を「%SystemDrive%」に書き換える。
    再起動して終了。
今思ったけどフォルダのコピーはWindowsPEとかKnoppixとか使えばNT AUTHORYだの付かずにコピーできるのかもしれない。

0 件のコメント:

コメントを投稿