10
11

More than 1 year has passed since last update.

ユーザプロファイルを別ドライブにつくる

Last updated at Posted at 2020-01-20

実現したいこと、ゴール

ドライブが複数ついているWindows環境において、ユーザプロファイル(C:/Users/xxx)をOSインストール先とは別のドライブにつくること。

前提

  • OS: Windows 10

背景

Cドライブに小容量のSSD、Dドライブに大容量のHDDをマウントしています。
せっかく二種類のディスクがついているので下記のように使い分けたい。

  • システムやアプリケーション ⇒ Cドライブ(SSD)
  • ドキュメントや写真データ、ゲームのセーブファイルなど ⇒ Dドライブ(HDD)

ユーザプロファイルは「マイドキュメント」や「マイピクチャ」を含むためHDDに作成したい。しかし、なにも考えずにOSをインストールするとOSインストール先と同じCドライブ(SSD)にプロファイルが作成されてしまいます。

小手先で試した方法(失敗)

移行先のDドライブ(HDD)に、D:/Users/xxx/DesktopD:/Users/xxx/Documentsといったようにそれぞれ対応するフォルダを作成したうえで、既存のCドライブ(SSD)のユーザプロファイルの「デスクトップ」や「ドキュメント」のプロパティから参照先を移行先フォルダに向けてあげました。参照先を切り替えたのち、各フォルダの中身ももちろん移動します。

通常は上記のやり方で問題なく、デスクトップに置いたファイルやブラウザでダウンロードしたファイルはちゃんとDドライブ(HDD)に格納されます。

しかし、環境変数(USERPROFILE)やレジストリに刻まれているユーザプロファイルパスは上記操作では変更されず、Cドライブ(SSD)のまま変わりません。ソフトウェアによっては環境変数やレジストリを参照する場合があり、実際のフォルダ構成と不整合があると正しく動作しません。(例をあげるとWindows向けOpenSSH)
環境変数は簡単に変更できますが、レジストリ修正はリスク1があります。

例にあげたOpenSSHの場合はC:/Users/xxx/.sshにジャンクションをしかけて対応する手もありますが、ちょっとダサい……。

小手先で対応するのはあまりウマくないので、腹をくくってMicrosoftさま推奨の方法で対応しましょう。

ちゃんとした方法(成功)

OSのリセット(再インストール)が必要です
当然ですが、OSインストール先ドライブのデータはすべて消えるので必要なデータは退避させておきましょう。

事前準備(応答ファイルの作成)

お好みのテキストエディタで、Dドライブ(HDD)直下にXMLファイルを作成します。

D:/relocate.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
  <settings pass="oobeSystem">
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <FolderLocations>
        <ProfilesDirectory>D:\Users</ProfilesDirectory>
      </FolderLocations>
    </component>
  </settings>
</unattend>

環境ごとに変更する箇所は、

  • 32bit版Windowsの場合は<component>タグのprocessorArchitecturex86にする
  • <ProfilesDirectory>の中身(ここで指定したパスにユーザプロファイルがつくられます)

の二点です。

OSのリセット

本題ではないのでサラッと。。。

「設定」->「更新とセキュリティ」->「回復」->「このPCを初期状態に戻す」の「開始」をクリックします。
そのあとのオプションは適当に選んでOSのリセットをかけてください。

リセットが済んでセットアップが開始し、下記のような言語選択画面が出るまで待ちます。
am1.png

Audit Modeの起動

言語選択画面でCtrl+Shift+F3を押すとAudit ModeでOSが起動します。
SysprepのGUIがあがってきますが、今回は使わないので閉じていいです。

Sysprepの実行

コマンドプロンプトを立ち上げて、下記コマンドでSysprepを実行します。
unattendオプションに指定するファイルパスは先の手順で作成した応答ファイルのパスを指定します。

%windir%\system32\sysprep\sysprep.exe /generalize /oobe /reboot /unattend:d:\relocate.xml

コマンドを実行するとOSが再起動して、再びセットアップ画面が表示されるので、指示に従って進めてください。

結果

セットアップが完了してOSが起動したらさっそくユーザプロファイルのパスを確認します。
2020-01-21.png
無事に指定したパスにつくられました!

環境変数(USERPROFILE)をECHOしても、レジストリエディタでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListを確認しても、指定したパスがユーザプロファイル作成先に指定されていることがわかります。

まとめ

とはいえ、OSのクリーンインストールはそのあとの作業も含めてめんどくさいものです。かっこわるいけど小手先で試した方法(失敗)で紹介した方法でしばらく凌いで、PC不調時など別の理由でOSクリーンインストールするきっかけができたときに実施するのがいいかもしれません。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11