Windows 10 とシンボリックリンクの問題

Windows 10 とシンボリックリンクの問題

私は Windows 7 と Windows 10 のデュアル ブート構成を使用しています。どちらも C: ディスクをシステムとして、D: をデータ ディスクとして構成されており、これにはユーザー ディレクトリが含まれています。また、写真やその他のものを含む別のディスク (これも物理ディスクです) も V: と呼びます。

Windows 7 では、D: ディスクから写真にアクセスするために、次のようなシンボリック リンク (ジャンクション) を作成しました (歴史的な理由による):

mklink /j d:\photos v:\photos

そして、d:\photos 内のすべてのフォルダに完全にアクセスできます。そこで、Windows 10 でも同じことを試してみましたが、思ったようには機能しません。d:\photos に入ることはできますが、他のサブディレクトリにはアクセスできず、d:\photos 内に何も書き込むこともできません。ただし、v:\photos には問題なくアクセスできます...

たとえば、Windows エクスプローラーで d:\photos\folder1 をクリックすると、「システムはファイルを別のドライブに移動できません」というメッセージが表示されます。そのフォルダーのセキュリティ タブを確認すると、「要求されたセキュリティ情報は利用できないか、表示できません」というメッセージが表示されます。

すでにいくつか試してみましたが、うまくいきませんでした。C: と D: が同じ SSD 上にあり、V: が別の HD であることが問題なのでしょうか? どうしたらよいか、何かアイデアはありますか?

ありがとう!

答え1

ジャンクションはローカルドライブ間でサポートされていますが、実際のディレクトリシンボリックリンクの方がうまくいくでしょう。Win7(特にVista以降のすべてのバージョン)はこれをサポートしていますが、XP以前のバージョンはサポートしていません。シンボリックリンクは実際の宛先名を保存します(したがって、もう一方のドライブがV:両方のOS上にある限り、動作するはずです)。推測ジャンクションはドライブ文字以外の識別子を使用する可能性があり、OSを切り替えると、その識別データの一部が他のOSでは理解されないことがあります。ただ名前を使用しないと、マップされたネットワーク ドライブへのジャンクションを作成できるようになりますが、作成できません。

ディレクトリの真のシンボリックリンクを作成する構文は、ではなく/Dフラグを使用することを除いて、ジャンクションの作成と同じです。デフォルトでは、管理者だけがシンボリックリンクを作成できることに注意してください (なぜこれがシンボリックリンクには適用され、ジャンクションには適用されないのかはわかりませんが、仕方ありません)。したがって、コマンド プロンプトを管理者として起動し (はい、 である必要があります。は CMD 組み込みであり、 などによって呼び出される独自の実行可能ファイルではありません)、 を試してください。mklink/JCMDmklinkPowershellmklink /d d:\photos v:\photos

mklinkフラグなしで使用して作成することもできます。ファイルシンボリックリンク、または/Hファイルを作成するフラグハードリンクファイルではなくディレクトリをリンクしようとしているので、ここでは関係ありませんが、将来的には役立つ情報になる可能性があります。ほとんどの人は、ジャンクション (完全なシンボリックリンクではありませんが、ネットワークドライブに作成できます) については知っていても、NTFS がハードリンク (Windows 2000 以降だと思います) とシンボリックリンク (Vista 以降) をサポートしていることに気づいていません。

答え2

私も同じ問題を抱えていましたが、これはアプリのインストール場所を別のドライブに変更したことが原因のようです。

私の場合、この問題を解決したのは、新しいアプリの保存場所を C に戻し、コマンド プロンプトで再起動し (再起動中に Shift キーを押したままにする)、問題のドライブ上の「System Volume Information\wpappsettings.dat」を削除することでした。

答え3

同じ問題があります: ディスク C:(新しい windows10) D:(古い) E:(古い)

D から C (「Program Files」サブフォルダーなど) へのディレクトリ ジャンクションは作成できますが、E から D へのディレクトリ ジャンクションは作成できません。ジャンクションは作成されますが、同じエラーでファイルの内容とサブフォルダーを表示できません。

理由はわかりませんが、Ubuntu をロードして「D:\System Volume Information」を削除することですべて解決しました (その後、Win10 によって再作成されました)。

PS. 結果は正常ですfsutil behavior query symlinkevaluation: ローカルから*が有効、リモートから*が無効

答え4

以前、権限システムが原因で同様の問題が発生しました。私の場合は、ターゲットとして unc-path があり、権限と共有は正しく構成されていました。unc-path ではリンクを作成してサブフォルダーに移動できましたが、シンボリック フォルダーではできませんでした。トップ フォルダーから権限を継承したことが原因でした。

シンボリック フォルダーの継承権限を無効にして、問題の原因となる可能性のある権限を削除してみてください。シンボリック フォルダーで完全な制御を得るには、明示的な権限を設定します。私の場合は、これで問題が解決し、リンクを作成してサブフォルダーに移動できるようになりました。

関連情報