Windows のユーザーディレクトリは既定で C:\Users にあり、デスクトップ、ドキュメント、ダウンロード、ピクチャや、アプリが AppData に保存するキャッシュや設定も、すべてここに入ります。使い続けるうちに、システムドライブはあっという間にいっぱいになります。回避策はいくつかあります。たとえば、ドキュメントやダウンロードのプロパティで保存場所を変えられますが、移動できるのはそのフォルダーだけで、AppData はそのまま残ります。システムをインストールした後にレジストリを変更したり、mklink /J でディレクトリジャンクションを作る方法もあります。ただ、既存のユーザープロファイルには古いパスがあちこちに残り、アクセス許可も合わないことがあるため、後のアプリのインストールや更新で問題が起きかねません。そこで、Windows を入れた直後、まだユーザーアカウントを作成していない段階で、ユーザーディレクトリの場所を指定しておくのがすっきりした方法です。最初のプロファイルから新しい場所に作成されます。そのために使えるのが、応答ファイルの ProfilesDirectory という設定です。ここでは、新規インストールした Windows 11 での手順を紹介します。仕組みProfilesDirectory は Microsoft-Windows-Shell-Setup コンポーネントの FolderLocations に属し、oobeSystem という構成パスで有効になります。OOBE は、インストール後に地域の選択、ネットワーク接続、アカウント作成を行う初期セットアップです。ユーザーディレクトリはこの段階の後に作成されます。OOBE に進む前に、この設定を書いた応答ファイルを Windows に渡します。そこで使うのが監査モードです。インストール後、OOBE の前に組み込みの Administrator アカウントでサインインし、応答ファイルを指定して Sysprep を実行できます。完了後は OOBE に戻ります。手順監査モードに入るWindows を通常どおりインストールし、地域を選択する画面が表示されるまで進めます。ここではまだ先に進まず、Ctrl + Shift + F3 を押します。再起動後、組み込みの Administrator アカウントでデスクトップにサインインし、Sysprep のウィンドウが開きます。このウィンドウはいったん閉じてください。後でコマンドラインから実行します。監査モードに入る前に、できればネットワークケーブルを抜くか、Wi-Fi を切っておきます。オンラインになるとストアアプリが自動更新されることがあり、このようなユーザー単位の更新は Sysprep の失敗原因になります。オフラインにしておけば、この問題を避けられます。データドライブを準備する対象のドライブは NTFS 形式で、別の Windows がインストールされていないものにします。新品のドライブなら、先に「ディスクの管理」で初期化、パーティション作成、フォーマットを済ませます。Important監査モードのドライブ文字は、インストーラーで見たものと異なる場合があります。応答ファイルを書く前に、エクスプローラーで対象ドライブの現在の文字を確認してください。応答ファイルを作成するメモ帳でファイルを作成し、対象ドライブのルートに保存します。ここでは relocate.xml という名前にし、「ファイルの種類」は「すべてのファイル」、「文字コード」は UTF-8 を選びます。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>processorArchitecture はシステムに合わせます。一般的な 64 ビット PC では amd64、ARM デバイスでは arm64 を指定します。ProfilesDirectory には目的の場所を指定します。D:\Users は一例です。パスは空にできません。Sysprep を実行するコマンドプロンプトを管理者として開きます。Windows Media Player のネットワーク共有サービスも Sysprep の失敗原因になるため、先に停止し、その後で応答ファイルを指定して Sysprep を実行します。CMDコピーnet stop wmpnetworksvc %windir%\system32\sysprep\sysprep.exe /oobe /reboot /unattend:d:\relocate.xml/oobe は完了後に OOBE へ戻り、/reboot は再起動する指定です。/unattend では先ほどの応答ファイルを指定します。しばらくすると再起動し、地域選択画面に戻ります。今度は通常どおりセットアップを進め、ユーザーを作成します。結果を確認するシステムにサインインしたら、コマンドプロンプトを開きます。CMDコピーecho %USERPROFILE%出力が D:\Users\用户名 のような形になっていれば成功です。末尾の中国語はユーザー名の例示なので、実際には自分のユーザー名が入ります。この場所を記録するレジストリ項目も確認できます。CMDコピーreg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectorySysprep が失敗したときSysprep が失敗しても、ウィンドウのメッセージだけでは原因が分からないことが多いので、ログを確認します。保存先は %windir%\System32\Sysprep\Panther です。setupact.log には処理全体が、setuperr.log にはエラーだけが記録されます。error や fail を検索すると、どの段階で失敗したか分かります。よくある原因は、前述のストアアプリの更新と、ネットワーク共有サービスの停止忘れです。アプリが原因なら、「あるユーザーにインストールされたパッケージが、全ユーザー向けにはプロビジョニングされていない」といったメッセージとアプリ名がログに出ます。PowerShell でそのアプリをアンインストールしてから、Sysprep を再実行します。次のコマンドでは、中国語のアプリ名の部分を実際の名前に置き換えてください。POWERSHELLコピーGet-AppxPackage *应用名* | Remove-AppxPackageSysprep は同時に一つしか実行できません。重複して起動した場合や、前回の実行が異常終了した場合も、すぐにエラーになることがあります。再起動してからやり直します。制限事項この方法を使えるのは、ユーザーディレクトリが作成される前だけです。すでに使い始めたシステムでは、Windows を再インストールしてからやり直す必要があります。一方、後日 Windows を入れ直す際にシステムドライブをフォーマットしても、データドライブのユーザーファイルは残るので、必要なファイルをそのまま取り出せます。
Windows のユーザーディレクトリは既定で C:\Users にあり、デスクトップ、ドキュメント、ダウンロード、ピクチャや、アプリが AppData に保存するキャッシュや設定も、すべてここに入ります。使い続けるうちに、システムドライブはあっという間にいっぱいになります。
回避策はいくつかあります。たとえば、ドキュメントやダウンロードのプロパティで保存場所を変えられますが、移動できるのはそのフォルダーだけで、AppData はそのまま残ります。システムをインストールした後にレジストリを変更したり、mklink /J でディレクトリジャンクションを作る方法もあります。ただ、既存のユーザープロファイルには古いパスがあちこちに残り、アクセス許可も合わないことがあるため、後のアプリのインストールや更新で問題が起きかねません。
そこで、Windows を入れた直後、まだユーザーアカウントを作成していない段階で、ユーザーディレクトリの場所を指定しておくのがすっきりした方法です。最初のプロファイルから新しい場所に作成されます。そのために使えるのが、応答ファイルの ProfilesDirectory という設定です。ここでは、新規インストールした Windows 11 での手順を紹介します。
仕組み
ProfilesDirectory は Microsoft-Windows-Shell-Setup コンポーネントの FolderLocations に属し、oobeSystem という構成パスで有効になります。OOBE は、インストール後に地域の選択、ネットワーク接続、アカウント作成を行う初期セットアップです。ユーザーディレクトリはこの段階の後に作成されます。
OOBE に進む前に、この設定を書いた応答ファイルを Windows に渡します。そこで使うのが監査モードです。インストール後、OOBE の前に組み込みの Administrator アカウントでサインインし、応答ファイルを指定して Sysprep を実行できます。完了後は OOBE に戻ります。
手順
監査モードに入る
Windows を通常どおりインストールし、地域を選択する画面が表示されるまで進めます。ここではまだ先に進まず、Ctrl + Shift + F3 を押します。再起動後、組み込みの Administrator アカウントでデスクトップにサインインし、Sysprep のウィンドウが開きます。このウィンドウはいったん閉じてください。後でコマンドラインから実行します。
監査モードに入る前に、できればネットワークケーブルを抜くか、Wi-Fi を切っておきます。オンラインになるとストアアプリが自動更新されることがあり、このようなユーザー単位の更新は Sysprep の失敗原因になります。オフラインにしておけば、この問題を避けられます。
データドライブを準備する
対象のドライブは NTFS 形式で、別の Windows がインストールされていないものにします。新品のドライブなら、先に「ディスクの管理」で初期化、パーティション作成、フォーマットを済ませます。
監査モードのドライブ文字は、インストーラーで見たものと異なる場合があります。応答ファイルを書く前に、エクスプローラーで対象ドライブの現在の文字を確認してください。
応答ファイルを作成する
メモ帳でファイルを作成し、対象ドライブのルートに保存します。ここでは relocate.xml という名前にし、「ファイルの種類」は「すべてのファイル」、「文字コード」は UTF-8 を選びます。
processorArchitecture はシステムに合わせます。一般的な 64 ビット PC では amd64、ARM デバイスでは arm64 を指定します。ProfilesDirectory には目的の場所を指定します。D:\Users は一例です。パスは空にできません。
Sysprep を実行する
コマンドプロンプトを管理者として開きます。Windows Media Player のネットワーク共有サービスも Sysprep の失敗原因になるため、先に停止し、その後で応答ファイルを指定して Sysprep を実行します。
/oobe は完了後に OOBE へ戻り、/reboot は再起動する指定です。/unattend では先ほどの応答ファイルを指定します。しばらくすると再起動し、地域選択画面に戻ります。今度は通常どおりセットアップを進め、ユーザーを作成します。
結果を確認する
システムにサインインしたら、コマンドプロンプトを開きます。
出力が D:\Users\用户名 のような形になっていれば成功です。末尾の中国語はユーザー名の例示なので、実際には自分のユーザー名が入ります。この場所を記録するレジストリ項目も確認できます。
Sysprep が失敗したとき
Sysprep が失敗しても、ウィンドウのメッセージだけでは原因が分からないことが多いので、ログを確認します。保存先は %windir%\System32\Sysprep\Panther です。setupact.log には処理全体が、setuperr.log にはエラーだけが記録されます。error や fail を検索すると、どの段階で失敗したか分かります。
よくある原因は、前述のストアアプリの更新と、ネットワーク共有サービスの停止忘れです。アプリが原因なら、「あるユーザーにインストールされたパッケージが、全ユーザー向けにはプロビジョニングされていない」といったメッセージとアプリ名がログに出ます。PowerShell でそのアプリをアンインストールしてから、Sysprep を再実行します。次のコマンドでは、中国語のアプリ名の部分を実際の名前に置き換えてください。
Sysprep は同時に一つしか実行できません。重複して起動した場合や、前回の実行が異常終了した場合も、すぐにエラーになることがあります。再起動してからやり直します。
制限事項
この方法を使えるのは、ユーザーディレクトリが作成される前だけです。すでに使い始めたシステムでは、Windows を再インストールしてからやり直す必要があります。一方、後日 Windows を入れ直す際にシステムドライブをフォーマットしても、データドライブのユーザーファイルは残るので、必要なファイルをそのまま取り出せます。