it-swarm.com.de

Wie verhindere ich, dass eine Windows-Verknüpfung ihren Pfad aktualisiert?

Während der Entwicklung meines Produkts sind auf meinem Testgerät mehrere Versionen der Anwendung gleichzeitig installiert. Um jedoch die absoluten Pfade zu erhalten, die meine Anwendung für die Arbeit verwendet, muss ich die Ordner wechseln oder umbenennen, damit die zu testende Version den richtigen Pfad hat, z. B. C:\Program Files\My Company\My App\My App.exe. Ich habe eine Verknüpfung erstellt, die auf diesen Pfad abzielt. Wenn diese Verknüpfung jedoch geöffnet wird, wenn derzeit keine der Versionen über diesen Pfad verfügt, wird die Verknüpfung automatisch aktualisiert, da angenommen wird, dass die Datei dauerhaft verschoben wurde. Dies verursachte stille Fehler, bis ich entdeckte, was geschah. Ich wusste bis jetzt nicht, dass dies eine Funktion von Windows-Verknüpfungen ist.

Meine Frage ist also einfach. Gibt es eine Möglichkeit, diese Funktion zu deaktivieren? Global ist gut, aber eine per-Shortcut-Lösung wäre besser.

Die Verwendung einer Batch-Datei anstelle einer Verknüpfung ist eine Lösung, aber ich frage mich, ob es eine Möglichkeit gibt, diese Funktion zu nutzen, während noch eine Verknüpfung verwendet wird.

Ich verwende Windows 10 Home und Windows 7 Home.

24
Kyle Delaney

Sie können PowerShell verwenden! Dieses kleine Skript pocht die LNK-Datei, um den gleichen Effekt wie mit dem klassischen Dienstprogramm shortcut zu erzielen.

$linkfile = Resolve-Path $args[0]
$bytes = [IO.File]::ReadAllBytes($linkfile)
$bytes[0x16] = $bytes[0x16] -bor 0x36
[IO.File]::WriteAllBytes($linkfile, $bytes)

Um es zu verwenden, speichern Sie diesen Text als .ps1 -Datei, z. notrack.ps1. Wenn Sie dies noch nicht getan haben, befolgen Sie die Anweisungen im Abschnitt zum Aktivieren von Skripten in dem PowerShell-Tag-Wiki . Dann können Sie es über eine PowerShell-Eingabeaufforderung ausführen:

.\notrack.ps1 C:\path\to\my\shortcut.lnk

Verknüpfungen, die auf diese Weise optimiert wurden, ändern sich nicht, wenn sich ihr Ziel bewegt. Wenn eine Verknüpfung wie diese unterbrochen wird, passiert beim Versuch, sie zu öffnen, überhaupt nichts.

Ich habe die in meinem Skript verwendete binäre Mathematik aus diesem 48-seitigen Microsoft PDF im LNK-Format zusammengetragen.

13
Ben N

Beenden und deaktivieren Sie den Distributed Link Tracking Client (TrkWks) -Dienst.

Distributed Link Tracking verfolgt Links in Szenarien, in denen die Verknüpfung zu einer Datei auf einem NTFS-Volume hergestellt wird, z. B. Shell-Verknüpfungen. Wenn diese Datei umbenannt, auf ein anderes Volume auf demselben Computer verschoben, auf einen anderen Computer verschoben oder in einem ähnlichen Szenario verschoben wird, verwendet Windows die verteilte Linkverfolgung, um die Datei zu finden.

Quelle: Distributed Link Tracking - Microsoft-Support

24
Steven

Verwenden Sie den Befehl shortcut.exe Option -s:

shortcut: [-? -h -f -c -r -s] [[-t] target [[-n] name]] [-d working directory]
        [-a Arguments] [-i Iconfile] [-x Icon index] [-u {all|[natdix]}]
        [-l logfile]

  -? -h        This help
  -f           Force overwrite of an existing short cut
  -c           Change existing shortcut
  -s           Make shortcut non tracking (Stupid)
  -r           Resolve broken shortcut
  -t target    Specifies the target of the shortcut
  -n name      Specifies the file name of the shortcut file
  -d directory Specifies the directory name to start the application in
  -a arguments Specifies the arguments passed when the shortcut is used
  -i iconfile  Specifiles the file the icon is in
  -x index     Specifies the index into the icon file
  -u [spec]    Dumps the contents of a shortcut. 'all' is the same as 'natdix'
               but the letters of 'natdix' can be specified to display specific
               fields in the shortcut (repeats allowed, and order followed)
  -l logfile   record error messages in specified file
8
Sunzi

Sie können das folgende Gruppenrichtlinienobjekt aktivieren:

Benutzerkonfiguration\Administrative Vorlagen\Startmenü und Taskleiste\Verwenden Sie beim Auflösen von Shell-Verknüpfungen nicht die suchbasierte Methode.

entsprechender Registrierungsschlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoResolveSearch

Benutzerkonfiguration\Administrative Vorlagen\Startmenü und Taskleiste\Verwenden Sie beim Auflösen von Shell-Verknüpfungen nicht die Tracking-basierte Methode.

entsprechender Registrierungsschlüssel:

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoResolveTrack

Benutzerkonfiguration\Administrative Vorlagen\Windows-Komponenten\Datei-Explorer\Shell-Verknüpfungen beim Roaming nicht verfolgen

entsprechender Registrierungsschlüssel: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\LinkResolveIgnoreLinkInfo

4
Swisstone