vista / W7でc:\ usersをd:\ usersに移動する最良の方法は何ですか[非公開]


64

Windows 7 RC1をインストールしたばかりで、c:\ usersをd:\ usersに移動したい。

これを行う最良の方法は何ですか?


Windows 7では、回復コンソールでC:としてマウントされた予約済みパーティションが作成されるため、次のコマンドを使用する必要がありました。

robocopy /mir /xj D:\Users E:\Users
mklink D:\Users D:\Users /j

mklinkコマンドの両方のDは正しいです。システムが再起動すると、回復コンソールでDだったドライブがCドライブになります。


1
良いキャッチ!私は、Windows 7への移行時、私はその予約済みパーティションの詳細を覚えておく必要があります
ジミーR. Houts

1
:(Vistaの場合)、この関連の質問を参照してください、と回答してくださいserverfault.com/questions/4624/...
Benjol

コメントを残せないので、これを回答に書いています。例の/ mirオプション(「ミラー」の略)に注意する必要があります。robocopy / mir / xj D:\ Users E:\ Usersは、DにないE:\ Usersのすべてを削除します:\ Users。確かに、/ mirオプションが本当に必要かどうか疑問に思っています。古いインストールから空ではない/ Usersフォルダーにあるファイルの多くを削除してしまいました。

質問が話題外であるにもかかわらず、アンサーや賛成票で大いに支持されていることは、愉快ではありません。
captcha 14年

それは、プレブスがこのサイトを使用して非常に現実的な問題についてこのような実際の質問をするからです。 。
デビッド14

回答:


65

Windowsのインストール後、C:\ Usersフォルダー全体を別のドライブに簡単に移動できます。

警告:これを行うと、システムの復元を実行する必要がある場合に問題が発生する可能性があります

  1. インストールメディアを起動し、コマンドプロンプトを表示します(インストールダイアログでShift + F10を押します
  2. Robocopyを使用して、C:\ UsersをD:\ Usersにコピーしますrobocopy c:\Users d:\Users /mir /xj /copyall
    /mirディレクトリをミラーリングするようにrobocopyに指示します
    。これにより、すべてのファイルがコピーされます。/xjこれは非常に重要です。これは、ロボコピーに接続点をたどらないように指示します。これを忘れると、多くのトラブルが発生します。
    c。/copyallACLと所有者情報を含むすべての属性をコピーします
  3. ファイルが正常にコピーされたことを確認します
  4. c:\ Usersを削除します
  5. d:\ Usersを指すジャンクションを作成します。 mklink c:\Users d:\Users /j

それでおしまい。Vistaが問題なくRTMに移行してから、このプロセスを使用しています。

同様にそれを説明する記事があります。ntfsのアクセス許可の問題を回避するために、記事で行っているようにxcopyではなくrobocopyを使用してください。

更新:難しい方法を見つけたので、この方法で「プログラムデータ」または「プログラムファイル」の移動を計画している場合、期待どおりにすべてが機能することを失望することにも言及したいと思います。 、ただし、Windowsアップデートはインストールされなくなります。これがWin 7で修正されたかどうかはわかりません。

更新2:@Benjolには、プロファイルフォルダーを移動する方法の詳細を記載したブログ投稿があり、この方法では除外されたジャンクションが再作成されます。従来のアプリで問題が発生した場合は、こちらを見て、彼の方法で問題が解決するかどうかを確認してください。


1+オフライン移動+ジャンクションポイントの最も簡単なソリューション-ただし、無人セットアップスクリプトでもインストール中にこれを行うことができることを
付け加え

これは本当に良いハックです...そして、このアクションを実行するために必要なすべてのステップを誰かが投稿してくれてうれしいです。
mrTomahawk 2009年

8
-1:このアプローチでは、robocopyによってコピーされないすべてのジャンクションが再作成されないことに注意してください(nb robocopyは、/ xjがなくてもジャンクションをコピーできません。新しいフォルダーを作成します)。これにより、ウィンドウの動作が停止することはありませんが、「マイドキュメント」などのフォルダーを
検索

1
フォルダー設定を変更して、システムファイルと隠しファイルを表示します。Usersフォルダには、マイドキュメントからドキュメントなどを指すジャンクションがぎっしり詰まっています。これは、レガシーアプリとの下位互換性のためです。インストールした内容に応じて、違いに気付く場合と気付かない場合があります。
ベンジョー09年

3
これを行う方法を詳細に説明してくれた+1 @Jimmie。私は、ウィンドウが頭になり、ユーザーデータとアプリケーションのインストールをどこにでも置くことだけにうんざりしています。WTFは変更をとても難しくしましたか?? プライマリパーティションがSSDドライブであり、パフォーマンスのためにその上にWindowsがインストールされている場合はどうなりますか?確かに、そのパーティションを神様のすい臓として使用しているウィンドウがすべてのものを欲しくないのは確かです!
greatwolf

11

最も簡単かつ推奨される方法は、次の手順でこれを行うことができますなどのドキュメント、音楽、ビデオ、などのユーザーディレクトリ内の個々の特別なフォルダを、移動することです:

  1. 右クリック>プロパティ
  2. 場所タブ
  3. 目的の場所を入力し、「移動」をクリックします

これの欠点は、メインの「ユーザー」フォルダーがそのまま残ることです。

ハードな方法は、多くの複雑かつ危険です。

ソリューションの検索で、システムドライブからユーザープロファイルディレクトリの場所を移動するために見つけた2つの簡単な方法は、

  1. 無人インストールファイルを使用して、セットアップ中にユーザープロファイルフォルダーを設定します。
  2. エクスプローラー(レジストリキーHKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell FoldersおよびHKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Userを使用して実行できるユーザープロファイル内の個々のフォルダーを移動しますシェルフォルダー)。

しかし、これは私には十分ではありませんでした。実際のユーザープロファイルフォルダを、レジストリ設定を含む別のパーティション/ボリュームに移動したかったのです。レジストリキーと値を大量に置き換えることに慣れていれば、実際にはそれほど難しくないことを発見しました。

ユーザープロファイルの場所を移動した方法を次に示します。パブリックおよびデフォルトを含むすべてのプロファイルを移動したかったことに注意してください。したがって、これらの手順の一部は、必要ない場合はスキップできます。

  1. システムの完全なバックアップがあることを確認してください!
  2. 元のデフォルトプロファイルディレクトリを新しい場所にコピーします(例:C:\ Users \ DefaultからD:\ Users \ Defaultへ)。
  3. 元のパブリックプロファイルディレクトリを新しい場所にコピーします(たとえば、C:\ Users \ PublicからD:\ Users \ Publicに)。
  4. HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileListに移動します。
  5. Defaultキーの値を新しいユーザープロファイルの場所(D:\ Users \ Defaultなど)に変更します。
  6. 公開キーの値を新しいユーザープロファイルの場所(D:\ Users \ Publicなど)に変更します。
  7. ProfilesDirectoryの値を新しいユーザープロファイルの場所(D:\ Usersなど)に変更します。
  8. この時点で、再起動して、以前にログインしたことがないためプロファイルが作成されていない別のユーザーとして再度ログインする必要があります。私の場合、管理者ユーザーは以前にログインしたことがないため、管理者がログインして使用できるように有効にしました。[コンピューターの管理]を読み込んで管理者ログインを有効にし、[ユーザーアカウント]に移動して管理者のプロパティを編集し、[ログインを無効にする]をオフにします。
  9. 新しいユーザーアカウントで初めてログインすると、Windowsがプロファイルを作成しているときに、「デスクトップの作成」などが表示されます。新しいプロファイルは新しい場所に作成する必要があることに注意してください。
  10. ログイン後、できるだけ多くのアプリケーションを閉じてください。これにより、ほとんどのファイルがロックされなくなり、コピーできなくなります。
  11. 元のユーザープロファイルフォルダ全体を元の場所から新しい場所にコピーします(例:C:\ Users *からD:\ Users)。(コピー開始後の次の手順を参照してください)。
  12. このコピー中に注意すべきことがいくつかあります。ロックされ、コピーされない何千もの.TMPファイルがありました。これらのファイルをスキップしました。Alt-Sを押したままにして、スキップされたすべてのファイルを表示し、スキップされる.TMPファイルのみが存在することを確認しました。はい、これには少し時間がかかりましたが、少なくともすべてのファイルがコピーされたと確信していました。このプロセスは、おそらくコマンドプロンプトまたはPowerShellを使用して簡単にできます。
  13. あなたの場合、コピーできないファイルがある場合は、sysinternalsが提供するprocexp.exeを実行できます。次に、ハンドルの検索を行い、ファイル名の一部を検索します。procexpは、ファイルをロックしているプログラムを通知します。ただし、できるだけ多くのプログラムを閉じている限り、これは起こりません。
  14. レジストリで検索と置換を実行するプログラムを見つけてダウンロードします。完全に機能する単一のプログラムが見つからなかったため、提案しません。最終的に、いくつかの異なるフリーウェアアプリケーションをダウンロードし、それらをすべて使用することになりました。
  15. レジストリの検索と置換プログラムを使用して、元のユーザープロファイルフォルダーを検索し、それを新しいユーザープロファイルフォルダーに置き換えます(たとえば、「C:\ Users」を検索し、「D:\ Users」に置き換えます。使用したアプリケーションは値を変更するだけでキー名は変更しませんでしたが、変更が必要なキーはすべてMuiCacheに関連していました。これらを実際に更新する必要があるかどうかはわかりません。
  16. ログアウト。同じユーザーで再度ログインします。交換するものがなくなるまでステップ14を繰り返します。この手順の理由は、ログアウト時に、一部のプログラムが古いユーザープロファイルパスを使用してレジストリを更新するように見えるためです。
  17. regedit.exeを実行し、元のユーザープロファイルパスを検索して、存在しないことを確認します。この手順の理由は、(手順13に記載されているように)使用したレジストリ検索と置換プログラムを信頼していなかったためです。検索と置換がそれらを逃したので、私は手動で約12のキーと値を更新する必要がありました。
  18. レジストリおよびハードコードされたプロファイルパスを使用しないプログラムを簡単に見つけることができるように、元のプロファイルフォルダーの名前を変更します(たとえば、C:\ UsersをC:\〜Usersに変更します)。
  19. ログアウト。通常のユーザーとして再度ログインします。「ハードコードされた」ユーザープロファイルの場所を使用するプログラムを除き、すべてが正常に機能するはずです。
  20. 「ハードコードされた」プロファイルの場所を使用し、元のユーザープロファイルパスを探しているプログラムを見つけるために使用できる2つの簡単な方法があります。上記のprocexp.exeトリックを使用して、元のプロファイルの場所でハンドルを検索できます。また、プロファイルの場所を監視して、新しいフォルダまたはファイルが作成されたかどうかを確認することもできます。たとえば、私の場合、FolderShareはディレクトリC:\ Users \ MyUsername \ AppData \ Local \ FolderShareにいくつかのフォルダーとファイルを作成しました。そこで、別のパスを指すようにFolderShareの設定を更新し、C:\ Usersディレクトリを削除しました(C:\〜Usersはまだバックアップとして存在していることに注意してください)。
  21. すべてのデータが移動されたと確信しているため(右??????)、元のユーザープロファイルの場所(C:\〜Usersなど)のバックアップを削除できます。

ソース:Vistaのユーザープロファイルフォルダーの場所の変更

マイクロソフトが特別なフォルダーの場所を非常に簡単に変更し、ユーザーフォルダー構造全体の場所を変更するのが非常に難しいという事実を見て、簡単なアプローチを取ることを強くお勧めします


5
うわぁ!私のより悪い敵にそのプロセスを勧めないだろう:-)しかし... +1は、それがどのように乱雑に見えるかに関係なく動作するため。私は...このような「ハック」他のものはラインを打破する可能性があるのだろうか

私はこの記事を見ましたが、ユーザーディレクトリ全体を移動し、レジストリをいじるのを避けたいと思いました。
スコット

1
ユーザーではなくすべての「特別」ディレクトリを移動する際の問題は、AppDataを特別なフォルダーとして移動できず、キャッシュ、保存、大量のデータをそこに保持するプログラムが増えていることです。
アクエリオン

2
@Aquarion:ただし、Local、LocalLow、Roamingの各ディレクトリ、[場所]タブを使用して移動できます:)
Milind R 14

4年間の技術の進歩は、本当に際限がありません。ディレクトリ内のほぼすべての個別のフォルダー、およびそのサブディレクトリー内のすべての個別のフォルダーをリダイレクトできるが、どちらの親ディレクトリも簡単にリダイレクトできないことは、明らかにユーザーベースの最善の利益になる賢明な制限です。
アクエリオン14

5

これが正しいプロセスです

  1. インストールメディアを起動して、コマンドプロンプトを表示します(最初に[修復]をクリックする必要があると思います)
  2. Robocopyを使用してC:\ UsersをD:\ Usersにコピーします:robocopy c:\ Users d:\ Users / mir / xj / copyall
    a。/ mirは、ディレクトリをミラーリングするようにrobocopyに指示します
    。これにより、すべてのファイルがコピーされます。/ xjは非常に重要です。これにより、robocopyは接続点をたどらないようになります。これを忘れると、多くのトラブルが発生します。
    c。/ copyallは、ACLおよび所有者情報を含むすべての属性をコピーします
  3. ファイルが正常にコピーされたことを確認します
  4. c:\ Usersを削除します
  5. d:\ Usersを指すジャンクションを作成します:mklink c:\ Users d:\ Users / j

私はジミーの指導を行い、ほとんど働いていました。しかし、IEに奇妙な問題があり、ファイルをダウンロードできませんでした。ダウンロードの問題を解決する解決策を見つけましたが、スーパーユーザーに文書化されています


ありがとう。回答を編集できないか、変更を追加します。
スコット

/ copyallに+1を追加しました。これはかなり前に追加するつもりでしたが、それを回避することはありませんでした。
ジミーR. Houts

3

インストール中にC:\ Usersを無人スクリプトで「自動的に」移動するためのリソース。

MicrosoftにはKBがあり、特別なフォルダーの移動に関するいくつかの問題があります。

無人スクリプト自体に関しては、FolderLocationsと呼ばれる要素があり、ProfilesDirectoryの子を指定できます。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
processorArchitecture="x86">
<FolderLocations>
<ProfilesDirectory>d:\users</ProfilesDirectory>
</FolderLocations>
</component>
</settings>
</unattend>

Vistaの展開に関するMicrosoftの記事にはunattend.xmlの処理方法が含まれており、Ramesh Srinivasanによる拡張された特別なフォルダーの移動方法の記事で見つけた最高のソースは、これを行う方法と注意点(たとえば、setup.exeの引数としてこの無人スクリプトが実行された後でも、手動で修正する必要がある古い場所を指すc:\ documentsや設定のような接合点がまだ存在します(可能))。



Windowsの8:Windows 8の中に別のパーティションまたはディスクにユーザープロファイルを再配置する方法:eightforums.com/tutorials/...
XP1

Windows 7の:どのようにWindows 7のインストール時に別のパーティションまたはディスク上のユーザーアカウントを作成するsevenforums.com/tutorials/...
XP1

2

"C:\users""C:\Documents and Settings"Windows XP / 2000 / NT と同等のシステムフォルダです。このため、フォルダを移動することは不可能ではないにしても、非常に困難でした。親フォルダーの代わりにTweakUIまたは同様のハックを介してサブフォルダーを移動することにより、この問題を回避する方法がいくつかありました。これに関する多くの投稿があります。

http://www.tech-recipes.com/rx/1409/move-your-documents-and-settings-username-profile-off-of-the-c-drive/

http://support.microsoft.com/kb/236621

http://support.microsoft.com/default.aspx?scid=kb;en-us;314843

http://support.microsoft.com/default.aspx?scid=KB;EN-US;q310147&ID=KB;EN-US;q310147

しかし、Vista / Windows 7に関しては、このプロセスがより簡単になったように見えます。以下は、Vistaでそれを行う方法を説明する投稿です。Windows7とはその中心にあります。

http://www.ehow.com/how_2064387_relocate-user-files-windows-vista.html

http://www.technospot.net/blogs/how-to-move-users-folder-to-different-location-in-windows-vista/

http://www.howtogeek.com/howto/windows-vista/moving-your-personal-data-folders-in-windows-vista-the-easy-way/


返信で述べたように、C:\ Usersを別のドライブに移動することはできません。リンクが繰り返されると、その中の「特別なフォルダー」の一部を移動できますが、C:\ Usersの再配置はできません。

2

これは少し遅れています...

ディレクトリ全体ではなく個々のプロファイルを移動することにより、c:\ usersを別のディスクに移動する際の問題を回避できます。

新しいディレクトリにリンクしているc:\ usersにジャンクションを残すと、Jimie Houtsソリューションのようにすべてのパスが引き続き機能しますが、管理者、ネットワークサービス、パブリックなどは移動しないため、通常のシステム機能はすべてWindowsが更新され、通常どおり動作し続けます。

イアン


0

私は長い間同じことを研究しました。できません。「特別な」フォルダ(ドキュメント、マイミュージックなど)は移動できますが、Usersディレクトリを移動することはできません。


1
usersディレクトリを再配置できました。
スコット

0

これの大部分は他の人からコピーされ、現在のライターであるtu servidorによって修正および拡張されます。

すべてのユーザーファイルとユーザープログラムファイルをブートドライブ(私の場合はSSD)から最も簡単に移動するには、次の手順に従ってください。

最初に、次の場合に備えて復元ポイントを作成します。1. [スタート]ボタンをクリックし、[コンピューター]を右クリックして[プロパティ]をクリックし、システムを開きます。2.左ペインで、システム保護をクリックします。管理者のパスワードまたは確認を求められたら、パスワードを入力するか、確認を提供します。3. [システムの保護]タブをクリックし、[作成]をクリックします。4. [システムの保護]ダイアログボックスで説明を入力し、[作成]をクリックします。

次に:システムリカバリ/コマンドプロンプト:Win7インストールDVDで起動し、言語、通貨、キーボードを選択して、[次へ]をクリックします。[今すぐインストール]が表示された画面で[コンピューターの修復]を選択します。システム回復オプションで[修復と再起動]を選択するように求められたら、[いいえ]を選択します。次に、Windows 7がインストールされたOSの1つとして回復可能なものとしてリストされていることを確認し、選択されていることを確認してから[次へ]を押します。回復ツールのリストが表示されます。「コマンドプロンプト」を選択します。

Win7メディア(おそらくCまたはX)からロードされた仮想Windowsドライブを見つけ、実際のWindows / SSDドライブ(DまたはE)を見つけ、HDD(通常のハードドライブ)(DまたはE)を見つけます。

私のシステムでは、通常、Windowsを搭載したC = SSD、D = HDDデータドライブ

Win7 Updateメディアを使用して、リカバリモードのドライブは異なる方法でセットアップされたため、X:仮想/一時Windowsドライブ、E:実際のWindows / SSDドライブ、D:HDD、\ Usersを配置したいハードドライブです。

システムリカバリモードでは、ドライブを次のように設定するという報告があります:C:仮想/一時WindowsドライブD:実際のWindows / SSDドライブE:HDD、彼らは/ Usersをオンにしたい。

コマンドプロンプトで、Robocopy(xcopyではない!)を使用してc:\ Usersをd:\ Usersにコピーし、古いc:\ Usersを削除してから、c:\ UsersからD:\ Usersへのシンボリックリンクを作成します。これらのことを順番に行う必要があり、これを行う前にad:\ Users dirを持ってはならないことに注意してください。

注:システム回復コマンドプロンプトウィンドウでは、ドライブは回復モードを終了した後と同じではありません!そのため、ドライブが回復モードになっている方法に合わせて以下のコマンドを調整すると、後で正しい結果が得られます。

使用したファイル:robocopy / mir / xj E:\ Users D:\ Users

/ UsersをWindows / SSDからHDDに移動します。/ mirは、ディレクトリをミラーリングするようにrobocopyに指示します。これにより、すべてのファイルと権限がコピーされます。/ xjは非常に重要です。これにより、robocopyは接続点をたどらないようになります。これを忘れると、多くのトラブルが発生します。コピーに失敗したファイルがないことを確認します(FAILED列= 0)。

次に、シンボリックリンクを作成する前に、Windows / SSD(c :)ドライブから古いユーザーフォルダーを削除する必要があります。

新しいユーザーフォルダーを指すNTFSジャンクション/シンボリックリンクを作成します。

私は使用しました:mklink / JE:\ Users D:\ Users

/ Jスイッチを使用して、ハードシンボリックリンクであるジャンクションを作成します。(/ Dスイッチを使用する場合は、レジストリも編集する必要があります。ハードリンクではないためです。)/ Jを使用すると、WindowsがC:\ Usersディレクトリを検索すると、それが見つかります。ただし、SSDではなくHDDに配置されます。トリッキー!

作成したものの証拠を確認するには、コマンドプロンプトウィンドウで、実際のWindows / SSDに移動して「dir」コマンドを実行すると、「Users [D:\ Users]」と表示されます。

今すぐ再起動すると、HDDに/ Usersが表示されます。それ以上の設定やいじりは必要ありません。ユーザー固有のデータと同様に、新しいユーザープロファイルはすべてd:ドライブに保存されます。また、レジストリをいじったり、値を検索および置換したり、何らかの方法で新しいプロファイルをいじったりすることなく実現できます。完全に設定して忘れてください。


1
これはJimmie R. Houtsの回答の長いバージョンのように見えますが、新しいことや彼の回答の問題(シンボリックリンクをコピーしないこと)には対処していません。
ジェームズマクマホン

0

これは必ずしも必要なものではありませんが、Windows 7を使用している場合、ライブラリの場所を変更するのが非常に良い方法です。この方法では、ドキュメント、画像などを保存しますが、すべてのプロファイルをDドライブに保存するわけではありません。

昨夜、あなたに役立つツールを作成しました:Set Libraries

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.