windows ユーザプロファイル格納先を変更する(Windows server 2008 R2)

More than 3 years have passed since last update.


はじめに

ユーザプロファイルがデフォルトだとc:\Usersに保存されてしまうので、ディスクを圧迫したりします。

色々と手法はあるようですが、安全で簡単なものを選びました。


変更方法

①新しいプロファイルの格納先ディレクトリを作成します。

 例: D:\Users

②レジストリエディタを起動します。

regedit

③以下のキーを探します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

・事前バックアップ

 「ProfileList」を選択して「エクスポート」します。

・この配下にある「ProfilesDirectory」を変更します。

 ※デフォルトでは「%SystemDrive%\Users」が設定されています。

 

 例: D:\Users

④「ProfileList」配下のフォルダを展開して各フォルダの「ProfileImagePath」の値を見ます。

 ここでどのユーザがどこにプロファイルを格納しているかが解ります。

 ドライブを変更したいユーザのレジストリを削除します。

以上です。


設定変更後の動き

・再起動/ログオフ等は不要です。即時反映されます。

・設定を実施したサーバに初ログインのユーザ/④でレジストリ削除したユーザ が設定した格納先ディレクトリ配下にプロファイル作成するようになります。


注意点

・ユーザ毎のレジストリ削除時にユーザがログインしている場合は、一度ログオフをすると「ソース:User Profile Service ID:1500」のエラーが出てログインできなくなります。

⇒対処:該当ユーザのレジストリを復旧すると再度ログインできるようになります。

※ユーザ単位でのレジストリエクスポートをお勧めします。

https://support.microsoft.com/ja-jp/kb/947215

・変更後にユーザがログインする度に「ソース:User Profile Service イベントID:1530」の警告がでるようになるようです。使用していて問題はないので、気にしなくて良さげです。


他留意点

旧プロファイルがCドライブに残るので、移行や削除が必要となります。

新プロファイルはユーザがログインして初めてできますので、事前移行は難しいかと思われます。

各自に実施して貰う形がいいかと思われます。


旧プロファイルの削除方法

管理者で削除は可能となりますが、どうしても消えない場合があります。

以下のコマンドで何とか消せました。

何回かやってGUI上でフォルダを消してみてください。

移動ユーザプロファイルを使っている場合も、この削除方法は有効だと思います。

rem 強制的に権限をローカル管理者のものにする

takeown /F c:\Users\ユーザ名 /D Y /R /A

rem 特定のユーザの権限を再付与する
icacls c:\Users\ユーザ名 /setowner 権限付与したいユーザ名 /T /C

rem 存在しないファイルがありますとかエラー出るファイルの削除
del /F /S /Q \\?\c:Users\ユーザ名

rem 隠しファイルの削除
del /F /S /Q /A H c:\Users\ユーザ名

rem 読み取り専用ファイルの削除
del /F /S /Q /A R c:\Users\ユーザ名