스크립트를 사용하여 바로 가기 (.lnk) 대상을 변경하는 방법

많은 사용자에게 다른 시스템이나 도메인의 스토리지 서버에서 다양한 네트워크 공유를 가리키는 바로 가기가 있습니다. 회사에서 서버를 마이그레이션하고 컴퓨터 이름, 공유 이름 또는 폴더 경로를 변경 한 경우 올바른 서버를 가리 키도록 바로 가기 대상을 수동으로 업데이트해야합니다. 폴더 구조는 동일하게 유지 될 수 있지만 일반적으로 서버 이름이 변경됩니다.

로컬 컴퓨터에서 파일 또는 폴더를 가리키는 바로 가기의 경우 대상이 이동되거나 이름이 변경 될 때 Windows는 바로 가기를 자동으로 업데이트합니다 ( "분산 링크 추적"서비스 사용). 그러나 바로 가기가 네트워크 위치를 가리키는 경우 수동 또는 프로그램 / 스크립트를 사용하여 수행해야합니다.

수백 개의 바로 가기가있는 경우 경로를 수동으로 업데이트하는 것은 피곤한 작업입니다. 바로 가기 대상을 대량으로 업데이트하는 방법에 대한 정보를 찾고 있다면이 기사에 해결책이 있습니다.

바로 가기 (.lnk) 대상 변경

다음은 지정된 폴더에서 .lnk 파일의 바로 가기 대상을 자동으로 업데이트하는 PowerShell 스크립트입니다. 이 스크립트는 이전 서버 이름 또는 경로가 포함 된 바로 가기를 자동으로 업데이트하여 새 이름 또는 경로로 바꿉니다.

 $ oldPrefix = "\\ MEDIA"$ newPrefix = "\\ MEDIA-PC"$ searchPath = "E : \ Shortcuts"$ shell = new-object -com wscript.shell write-host "바로 가기 대상 업데이트"-foregroundcolor 빨간색- backgroundcolor 검은 색 dir $ searchPath -filter * .lnk -recurse | foreach {$ lnk = $ shell.createShortcut ($ _. fullname) $ oldPath = $ lnk.targetPath $ lnkRegex = "^"+ [regex] :: escape ($ oldPrefix) if ($ oldPath -match $ lnkRegex) {$ newPath = $ oldPath-대체 $ lnkRegex, $ newPrefix 쓰기 호스트 "발견 :"+ $ _. fullname -foregroundcolor 노랑 -backgroundcolor 검은 색 쓰기 호스트 "바꾸기 :"+ $ oldPath 쓰기 호스트 "포함 :"+ $ newPath $ lnk.targetPath = $ newPath $ lnk.Save ()}} 
  1. 위의 코드를 메모장에 복사하고 파일을 lnk_change.ps1 로 저장하십시오.
  2. 위의 1, 2 행에 이전 경로와 새 경로를 입력했는지 확인하십시오.
  3. 3 행에서 경로를 업데이트 할 바로 가기를 저장하는 폴더를 지정하십시오.
  4. 실행 대화 상자에서 다음 명령을 실행하십시오.
     powershell -noexit -ExecutionPolicy ByPass-파일 D : \ Scripts \ lnk_change.ps1 

그게 다야. 바로 가기 대상이 이제 \\MEDIA 에서 \\MEDIA-PC 로 업데이트되었습니다.

  • \\MEDIA\Shared\\MEDIA-PC\SharedFolder 와 같은 리소스의 전체 경로를 각각 "old"및 "new"경로로 사용할 수도 있습니다.
  • 서버 이름은 동일하지만 폴더 경로가 변경된 경우 \\MEDIA\Shared to \\MEDIA\SharedFolder 와 같이 줄 번호 1과 2에 각각 전체 경로를 입력해야합니다.

희망이 도움이됩니다!

관련 기사