Как изменить ярлык (.lnk) целиком, используя скрипт

У многих пользователей есть ярлыки, указывающие на различные сетевые ресурсы других систем или сервера хранения вашего домена. Если ваша компания мигрирует сервер и изменила имя компьютера, имя общего ресурса или путь к папке, вам необходимо вручную обновить целевые ярлыки, чтобы они указывали на нужный сервер. Хотя структура папок может оставаться неизменной, имя сервера обычно изменяется.

Для ярлыков, указывающих на файл или папку на локальном компьютере, Windows автоматически обновляет ярлыки (используя службу «Отслеживание распределенных ссылок»), когда цель перемещается или переименовывается. Но в случае ярлыков, указывающих на сетевые местоположения, они должны быть сделаны вручную или с помощью программы / сценария.

Обновление путей вручную является утомительной задачей, особенно если у вас есть сотни ярлыков. Если вы ищете информацию о том, как массово обновлять ярлыки целей, эта статья имеет решение.

Изменить цели ярлыка (.lnk) навалом

Вот скрипт PowerShell, который автоматически обновляет цель ярлыка для файлов .lnk в указанной папке. Этот скрипт автоматически обновляет ярлыки, содержащие старое имя сервера или путь, заменяя их новым именем или путем.

$oldPrefix = "\\MEDIA"
$newPrefix = "\\MEDIA-PC"
$searchPath = "E:\Shortcuts"
$shell = new-object -com wscript.shell
write-host "Updating shortcut target" -foregroundcolor red -backgroundcolor black
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 "Found: " + $_.fullname -foregroundcolor yellow -backgroundcolor black
write-host " Replace: " + $oldPath
write-host " With: " + $newPath
$lnk.targetPath = $newPath
$lnk.Save()
}
}
  1. Скопируйте приведенный выше код в Блокнот и сохраните файл как lnk_change.ps1
  2. Убедитесь, что вы вводите старые и новые пути в строках 1 2 выше.
  3. В строке № 3 укажите папку, в которой хранятся ярлыки, для которых вы хотите обновить путь.
  4. В диалоговом окне «Выполнить» выполните следующую команду:
    powershell -noexit -ExecutionPolicy ByPass -File D:\Scripts\lnk_change.ps1

    изменить ярлык .lnk цель навалом

Это оно. Цели ярлыка теперь обновляются с \\MEDIA в \\MEDIA-PC,

  • Вы также можете использовать полный путь к ресурсу, например, \\MEDIA\Shared а также \\MEDIA-PC\SharedFolder как «старый» и «новый» пути соответственно.
  • В случае, если имя сервера такое же, но путь к папке изменился, вы должны ввести полные пути в номерах строк 1 2 соответственно — например, \\MEDIA\Shared в \\MEDIA\SharedFolder

Надеюсь, это поможет!

Ссылка на основную публикацию
Adblock
detector