Wie verschiebe ich das Ziel, auf das eine Windows-Verknüpfung verweist, und lasse dabei die vorhandene Verknüpfung funktionieren?

Wie verschiebe ich das Ziel, auf das eine Windows-Verknüpfung verweist, und lasse dabei die vorhandene Verknüpfung funktionieren?

Ich möchte folgendes tun:

  1. Erstellen Sie eine Verknüpfung zu einem Ordner (z. B.mLink.lnk-->C:\tmp)
    • Dies wird den Benutzern per E-Mail zugesandt
  2. Verschieben und/oder benennen Sie den Ordner um (C:\tmp-->C:\tmp2)
  3. Einrichten eines Zwischenschritts, damit die vorherige Verknüpfung funktioniert
    • Im Grunde genommen öffnet sich dann die per E-Mail gesendete Verknüpfung mLink.lnkC:\tmp2

Es scheint, Siesollenmklink verwenden und einen symbolischen Link auf den vorherigen Ordnerspeicherort einrichten können (C:\tmp), um dann auf den neuen Standort zu verweisen. Im Wesentlichen gilt folgendes Setup:

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

Leider kann ich auf der Netzwerkfreigabe, zu der ich diese Verknüpfungen haben möchte, keine symbolischen Links erstellen. The device does not support symbolic linksBeim Ausführen von mklink wird eine Fehlermeldung angezeigt.

Gibt es eine andere Möglichkeit, dies zu tun? Oder hindert mich die Einschränkung symbolischer Links grundsätzlich daran, dies zu tun?

Antwort1

Ok... Erstens: eine Windows .lnk-Datei ist im Prinzip nur ein einfacher String mit einem Ordnernamen. Im Grunde senden Sie ihnen also einfach einen String, der automatisch in die Adressleiste ihres Explorers kopiert und geöffnet wird (die tatsächliche Funktionsweise ist etwas komplexer, aber für einen Link wie C:\tmp passiert Folgendes)

Zweitens - Windows verfolgt diese Dateien normalerweise nicht, da es sich nicht um symbolische Links handelt. Wenn Sie auf Ihrem PC einen symbolischen Link erstellen, bei dem C:\tmp auf den Ordner C:\tmp2 verweist, ändert dies den Inhalt der LNK-Datei nicht. Sie senden also genau dieselbe Datei per E-Mail wie zuvor. Die Benutzer klicken auf ihrem eigenen System auf den Link und natürlich lautet der LNK immer noch "C:\tmp" und auf ihrem System hat sich nichts geändert.

Dies kann funktionieren, wenn der LNK auf eine Netzwerkfreigabe verweist (verbinden Sie z. B. einen freien Netzwerkbuchstaben P:\ mit einer Samba-Freigabe \server1\tmp) und eine Verknüpfung zu diesem verbundenen Laufwerk herstellt – der LNK verweist also auf P:\. Wenn Sie dann einen anderen temporären Ordner auf dem Server verwenden möchten, ändern Sie einfach den freigegebenen Ordner auf dem Server und alle Personen verwenden automatisch den neuen Ordner...

Antwort2

Es wäre einfacher, den Symlink so zu erstellen, c:\tmpdass er zunächst auf auf dem Server verweist c:\tmp1. Die Änderung auf tmp2 erfolgt dann durch Löschen c:\tmpund Neuerstellen als Link auf c:\tmp2.

Sie haben auf diese Weise nur einen Link, der sich für die Benutzer nie ändert, den Sie jedoch auf dem Server jederzeit ändern können.

Wenn dies nicht funktioniert, unterstützt Ihr Netzwerkfreigabeclient die Symlink-Erweiterung nicht.

verwandte Informationen