web-dev-qa-db-ja.com

ジャンクションを使用してWin7の下の別のドライブにフォルダーを移動する

古いHDにデータファイルやユーザーディレクトリなどを保持しながら、ウィンドウやプログラムを保持するためにノートブックにmsataSSDドライブをインストールする予定です。

データファイルが物理的にd:\ whateverにある場合でも、データファイルをc:\ whateverとして参照し続けることができれば簡単です。

私が正しく理解している場合、最良の方法は、次のようなジャンクションを作成することです。

mklink /j d:\whatever c:\whatever

次に、Windowsエクスプローラーなどを使用して、古いディレクトリとそのすべてのサブディレクトリをd:\ whateverに移動しますか?または、真円度の問題が発生しますか?

それが重要な場合は、Windows7x64Pro。

2
foosion

大きなデータファイルをC上のSSDから別のハードドライブに移動するのとまったく同じことをします。

最初にフォルダを移動する必要があります。

次に、次のコマンドを使用して、元の場所から宛先の場所へのシンボリックリンク(または必要に応じてジャンクション、この場合は同じ機能を提供します)を作成します。

mklink /D OriginalLocation DestinationLocation

/Dは、ボリュームにまたがることができるシンボリックディレクトリリンクを作成します。 (編集:ジャンクションはボリュームにまたがることもあります)

Windowsエクスプローラーを使用すると、元の場所のフォルダーに小さなショートカットアイコンが表示されます。親ディレクトリでdir /aを使用すると、<SYMLINKD>の代わりに<DIR>が表示されます。

3
Chris Thompson

私が使用する手順は次のとおりです。 UsersProgramDataを別のドライブに移動しました。

1)システムディスクを起動し、コマンドプロンプトにアクセスし、古いC:\ドライブを見つけて、宛先ドライブ文字をメモします

robocopy /copyall /e /xj Users <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\Users
robocopy /copyall /e /xj ProgramData <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
Rename Users Old_Users
Rename ProgramData Old_ProgramData
cd Old_Users
attrib desktop.ini -S -H
Rename desktop.ini desktop.ini.old

これにより、usersフォルダーのコピーが「Old_Users」として保持されます。これをバックアップとして別の場所に移動しました。 .iniファイルを変更しないと、後で2つのフォルダーを区別できない可能性があります。

スペースを空ける場合は、オプションでrmdir /s /q Usersおよびrmdir /s /q ProgramData

2)次に

mklink /J Users <USUAL_LETTER_OF_DESTINATION_DRIVE>:\Users
mklink /J ProgramData <USUAL_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
rmdir "Documents and Settings"
mklink /J "Documents and Settings" "<USUAL_LETTER_OF_DESTINATION_DRIVE>:\Documents and settings"

これで、Windowsを再起動すると、すべて問題がないはずです。

間違えると、ユーザープロファイルが壊れてしまう可能性があります。その場合は、セーフモード(または別のユーザー)に移動し、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListregeditを開きます。古いユーザープロファイルは、おそらく.bak拡張子が付いたリストにあり、代わりに新しいダミープロファイルがあります。ダミープロファイルを削除し、「bak」なしで.bakキーの名前を変更します。

その後、いくつかのセキュリティエラーが発生する可能性があります。私はまた、次のことをしなければなりませんでした:

icacls "%programdata%\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu" /SetIntegritylevel (OI)(CI)Medium

ファイルの所有権も何らかの理由で変更されたため、すべてを機能させるには、「所有権の取得」または「プロパティ/セキュリティ/詳細/所有者/編集/サブコンテナの所有者の置換」を使用する必要がありました。

0
Sanjay Manohar