Windows ショートカットが指すターゲットを移動し、既存のショートカットが機能するようにするにはどうすればよいですか?

Windows ショートカットが指すターゲットを移動し、既存のショートカットが機能するようにするにはどうすればよいですか?

次のことをやりたいです:

  1. フォルダへのショートカットを作成する(例えばmLink.lnk-->C:\tmp
    • これはユーザーにメールで送信されます
  2. フォルダを移動または名前変更する(C:\tmp-->C:\tmp2
  3. 前のショートカットを機能させるための中間ステップを設定する
    • 基本的に、mLink.lnkのメールショートカットが開きますC:\tmp2

あなたはすべきmklinkを使用して、以前のフォルダの場所にシンボリックリンクを設定できるようになります(C:\tmp) を新しい場所を指すように変更します。基本的には次の設定になります。

mLink.lnk --> c:tmp --> c:\tmp2

残念ながら、これらのショートカットを作成したいネットワーク共有にシンボリック リンクを作成できません。mklinkThe device does not support symbolic linksを実行するとエラーが発生します。

これを行う別の方法はありますか? または、シンボリック リンクに対する制限により、基本的にこれを行うことができないのでしょうか?

答え1

まず、Windows の .lnk ファイルは、原則としてフォルダ名が入った単純な文字列です。つまり、基本的には、何らかの文字列を相手に送信するだけで、それが相手のエクスプローラのアドレス バーに自動的にコピーされて開かれます (実際の動作はもう少し複雑ですが、C:\tmp のようなリンクの場合は、このようになります)

2 番目 - これらのファイルはシンボリックリンクではないため、Windows は通常これらのファイルを追跡しません。PC 上で C:\tmp が C:\tmp2 フォルダーを指すシンボリックリンクを作成した場合、LNK ファイルの内容は変更されません。つまり、以前とまったく同じファイルをメールで送信することになります。ユーザーは自分のシステムでリンクをクリックしますが、もちろん LNK は「C:\tmp」のままで、システム上では何も変更されていません。

LNK がネットワーク共有を指している場合 (たとえば、空きネットワーク文字 P:\ を samba 共有 \server1\tmp に接続)、この接続されたドライブにリンクすると機能します。つまり、LNK は P:\ を指します。その後、サーバー上の別の Tempfolder を使用する場合は、サーバー上の共有フォルダーを変更するだけで、すべてのユーザーが新しいフォルダーを自動的に使用できるようになります...

答え2

最初にサーバー上でc:\tmpを指すシンボリックリンクを作成する方が簡単です。 tmp2 への変更は、 を削除して へのリンクとして再作成することで実行されます。c:\tmp1c:\tmpc:\tmp2

この方法では、ユーザーにとって決して変更されないリンクが 1 つだけありますが、サーバー上ではいつでも変更できます。

これが機能しない場合は、ネットワーク共有クライアントがシンボリックリンクの拡張をサポートしていません。

関連情報