So ändern Sie das Shortcut-Ziel (.lnk) in Bulk mithilfe eines Skripts
Viele Benutzer haben Verknüpfungen, die auf verschiedene Netzwerkfreigaben von anderen Systemen oder dem Speicherserver Ihrer Domäne verweisen. Wenn Ihr Unternehmen den Server migriert und den Computernamen, den Freigabenamen oder den Ordnerpfad geändert hat, müssen Sie die Verknüpfungsziele manuell aktualisieren, um auf den richtigen Server zu verweisen. Obwohl die Ordnerstruktur gleich bleiben kann, ändert sich normalerweise der Servername.
Bei Verknüpfungen, die auf eine Datei oder einen Ordner auf dem lokalen Computer verweisen, aktualisiert Windows die Verknüpfungen automatisch (mithilfe des Dienstes "Distributed Link Tracking"), wenn das Ziel verschoben oder umbenannt wird. Bei Verknüpfungen, die auf Netzwerkspeicherorte verweisen, müssen diese jedoch manuell oder mithilfe eines Programms / Skripts ausgeführt werden.
Das manuelle Aktualisieren der Pfade ist eine anstrengende Aufgabe, insbesondere wenn Sie Hunderte von Verknüpfungen haben. Wenn Sie nach Informationen zum Massenaktualisieren von Verknüpfungszielen suchen, finden Sie in diesem Artikel eine Lösung.
Ändern Sie die Verknüpfungsziele (.lnk) in Massen
Hier ist ein PowerShell-Skript, das das Verknüpfungsziel für .lnk-Dateien in einem angegebenen Ordner automatisch aktualisiert. Dieses Skript aktualisiert automatisch Verknüpfungen, die den alten Servernamen oder -pfad enthalten, und ersetzt sie durch den neuen Namen oder Pfad.
$ oldPrefix = "\\ MEDIA" $ newPrefix = "\\ MEDIA-PC" $ searchPath = "E: \ Shortcuts" $ shell = neues Objekt -com wscript.shell Schreib-Host "Verknüpfungsziel aktualisieren" - Vordergrundfarbe rot - Hintergrundfarbe schwarz dir $ searchPath -filter * .lnk -recurse | foreach {$ lnk = $ shell.createShortcut ($ _. fullname) $ oldPath = $ lnk.targetPath $ lnkRegex = "^" + [regex] :: Escape ($ oldPrefix) if ($ oldPath -match $ lnkRegex) {$ newPath = $ oldPath -replace $ lnkRegex, $ newPrefix write-host "Gefunden:" + $ _. fullname -foregroundcolor gelb -backgroundcolor black write-host "Ersetzen:" + $ oldPath write-host "With:" + $ newPath $ lnk.targetPath = $ newPath $ lnk.Save ()}}
- Kopieren Sie den obigen Code in Notepad und speichern Sie die Datei als
lnk_change.ps1
- Stellen Sie sicher, dass Sie die alten und neuen Pfade in den Zeilen 1 und 2 oben eingeben.
- Geben Sie in Zeile 3 den Ordner an, in dem die Verknüpfungen gespeichert sind, für die Sie den Pfad aktualisieren möchten.
- Führen Sie im Dialogfeld Ausführen den folgenden Befehl aus:
Powershell -noexit -ExecutionPolicy ByPass -File D: \ Scripts \ lnk_change.ps1
Das ist es. Die Verknüpfungsziele werden jetzt von \\MEDIA
auf \\MEDIA-PC
aktualisiert.
- Sie können auch den vollständigen Pfad zur Ressource verwenden, z. B.
\\MEDIA\Shared
und\\MEDIA-PC\SharedFolder
als "alten" bzw. "neuen" Pfad. - Wenn der Servername identisch ist, sich der Ordnerpfad jedoch geändert hat, müssen Sie die vollständigen Pfade in den Zeilennummern 1 und 2
\\MEDIA\SharedFolder
z. B.\\MEDIA\Shared
to\\MEDIA\SharedFolder
Ich hoffe, das hilft!