Как массово изменить цель ярлыка (.lnk) с помощью скрипта - Winhelponline

How Change Shortcut

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



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



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



Массовое изменение целевых ярлыков (.lnk)

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

$ oldPrefix = '\ MEDIA' $ newPrefix = '\ MEDIA-PC' $ searchPath = 'E:  Shortcuts' $ shell = new-object -com wscript.shell write-host 'Обновление цели ярлыка' -foregroundcolor красный - backgroundcolor черный dir $ searchPath -фильтр * .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 'Найдено:' + $ _. fullname -foregroundcolor yellow -backgroundcolor черный write-host 'Заменить:' + $ 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 Shared и \ МЕДИА-ПК SharedFolder как «старый» и «новый» пути соответственно.
  • Если имя сервера такое же, но путь к папке изменился, вы должны ввести полные пути в строки с номерами 1 и 2 соответственно - например, \ MEDIA Shared к \ МЕДИА SharedFolder

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


Одна небольшая просьба: если вам понравился этот пост, поделитесь им?

Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:
  • Приколи это!
  • Поделитесь этим в своем любимом блоге + Facebook, Reddit
  • Напишите об этом в Твиттере!
Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)