Windows 바로 가기가 경로를 업데이트하지 못하게하려면 어떻게합니까?


24

제품을 개발하는 동안 테스트 장치에 여러 버전의 응용 프로그램이 동시에 설치되어 있습니다. 그러나 내 응용 프로그램이 작동하는 데 절대 경로를 얻으려면 테스트하려는 버전에 올바른 경로가되도록 폴더를 전환하거나 이름을 바꿔야합니다 C:\Program Files\My Company\My App\My App.exe. 이 경로를 대상으로하는 바로 가기를 만들었지 만 현재 해당 경로가없는 버전이 없을 때이 바로 가기를 열면 바로 가기가 자동으로 업데이트되어 파일이 영구적으로 이동했다고 생각합니다. 무슨 일이 있었는지 알기 전까지는 자동 실패가 발생했습니다. 지금까지 이것이 Windows 바로 가기 기능이라는 것을 몰랐습니다.

그래서 제 질문은 간단합니다. 이 기능을 끄는 방법이 있습니까? 전 세계적으로는 좋지만 단축키 당 솔루션이 더 좋습니다.

바로 가기 대신 배치 파일을 사용하는 것이 하나의 해결책이지만 바로 가기를 사용 하면서이 작업을 수행 할 수있는 방법이 있는지 궁금합니다.

Windows 10 Home 및 Windows 7 Home을 사용하고 있습니다.


10
내가 과거에 한 일은 .bat간단한 명령 으로 배치 파일 ( )을 사용하는 것 start "" "C:\path\to\file.exe"입니다.
Bob

1
mklink대신 .lnk파일 대신 기호 링크 작성 ( 명령 사용) 을 시도 했습니까 ? 아니면 그것들도 업데이트됩니까?
JAB

1
@JAB 심볼릭 링크는 업데이트해서는 안되지만 특정 단점이 있습니다 (관리자 권한 필요, 인수 전달 불가 등). 문제가되지 않으면 잘 작동하지만.
Bob

3
나는 바로 가기를 읽기 전용으로 만드는 것이 효과가 있다고 생각했지만 (이전에는 사용되었다고 확신하지만) 테스트 한 결과 그렇지 않습니다. 바로 가기가 다시 작성되지 않기 때문입니다. 바로 가기가 실행될 때 대상을 찾습니다. 아무도 시도하지 않습니다.
Chris H

1
@PetSerAl 위에서 말했듯이 작동하지 않습니다.
Chris H

답변:


13

PowerShell을 사용할 수 있습니다! 이 작은 스크립트는 LNK 파일을 해킹하여 클래식 shortcut유틸리티 를 사용하는 것과 동일한 효과를냅니다 .

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

사용하려면 해당 텍스트를 .ps1파일 로 저장 하십시오 (예 :) notrack.ps1. 아직 사용하지 않은 경우 PowerShell 태그 wiki 의 스크립트 사용 가능 섹션에 있는 지시 사항을 따르십시오 . 그런 다음 PowerShell 프롬프트에서 실행할 수 있습니다.

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

이러한 방식으로 조정 된 바로 가기는 대상이 움직일 때 변경되지 않습니다. 이와 같은 지름길이 깨지면 열려고 할 때 아무 일도 일어나지 않습니다.

LNK 형식의이 48 페이지 Microsoft PDF에서 스크립트에 사용 된 이진 수학을 수집했습니다 .


25

서비스를 중지하고 비활성화하십시오 : 분산 링크 추적 클라이언트 (TrkWks).

분산 링크 추적은 셸 바로 가기와 같이 NTFS 볼륨의 파일에 링크되는 시나리오에서 링크를 추적합니다. 해당 파일의 이름을 바꾸거나 동일한 컴퓨터의 다른 볼륨으로 이동하거나 다른 컴퓨터로 이동하거나 다른 유사한 시나리오로 이동하면 Windows는 분산 링크 추적을 사용하여 파일을 찾습니다.

출처 : 분산 링크 추적-Microsoft 지원


좋은 생각이지만 놀랍게도 효과가 없었습니다. 경로가 하나의 디렉토리보다 길어도 단축키는 여전히 파일을 찾았습니다.
Kyle Delaney

서비스가 중지 되었습니까? DLTC 서비스를 중지 한 후 실행 파일을 이동하거나 이름을 변경했습니다. 바로 가기를 실행하면 대상이 누락되고 바로 가기를 삭제하라는 "단축 문제 발생"오류가 발생합니다.
Steven

10
"올바른 대상 찾기"기능은 Windows 9x 시리즈로 거슬러 올라가며 Windows NT 버전보다 이전 버전입니다. Windows 9x에는 DLT가 없습니다. DLT가 무의미하다는 것은 아닙니다. 바로 가기 대상을 찾는 데 도움이되는 경우 Windows DLT 사용합니다.
MSalters

2
@Steven 예, 서비스가 꺼져 있다고 확신합니다. Windows 10에서 서비스로 이동하여 Distributed Link Tracking Client를 찾은 다음 중지 버튼을 클릭하고 컴퓨터를 다시 시작한 다음 서비스를 다시 확인했습니다. 시작 버튼이 있으며 서비스가 실행 중이라고 말하지 않습니다. 바로 가기는 여전히 업데이트됩니다.
Kyle Delaney

8

shortcut.exeOption 명령을 사용하십시오 -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

4
안타깝게도 shortcut.exe는 더 이상 사용할 수 없습니다.
Daniel B

@DanielB 맞아, 나는 Windows의 일부 버전에서 shortcut.exe를 구출 한 것을 잊었다.
Sunzi

2
@Daniel 어떤 Windows 버전이 있는지 알고 있습니까? 일부 사람들에게 유용 할 수 있습니다.
gronostaj


4

다음 GPO를 활성화 할 수 있습니다.

사용자 구성 \ 관리 템플릿 \ 시작 메뉴 및 작업 표시 줄 \ 쉘 바로 가기를 확인할 때 검색 기반 방법을 사용하지 마십시오

해당 레지스트리 키 : HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoResolveSearch

사용자 구성 \ 관리 템플릿 \ 시작 메뉴 및 작업 표시 줄 \ 쉘 바로 가기를 확인할 때 추적 기반 방법을 사용하지 마십시오

해당 레지스트리 키 :

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

사용자 구성 \ 관리 템플릿 \ Windows 구성 요소 \ 파일 탐색기 \ 로밍 중에 셸 바로 가기를 추적하지 않음

해당 레지스트리 키 : HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\LinkResolveIgnoreLinkInfo


GPO를 활성화하려면 어떻게합니까? 사용자 구성은 어디에 있습니까?
Kyle Delaney

Windows 10에서는 시작 버튼-> 실행 및 쓰기 : gpedit.msc-> 확인을 클릭하면 사용자 구성 등을 찾을 수 있습니다 ... 또는 지정한 레지스트리 키를 만들 수 있습니다 ( 유형 : DWORD, 값 1)
Swisstone

오류가 발생했습니다. Windows에서 gpedit.msc를 찾을 수 없습니다.
Kyle Delaney

확인, 레지스트리에서 키를 수동으로 작성해야합니다. 그렇게하는 방법을 모르는 경우 가져올 수있는 .reg 파일을 만들었습니다. pastebin.com/KdPYFwff 는 확장자가 ".reg"(로 끝나지 않아야합니다. txt)를 두 번 클릭하고
Swisstone

감사. 이 작업을 수행하고 컴퓨터를 다시 시작한 후 regedit를 사용하여 레지스트리 키가 제자리에 있는지 확인했습니다. 바로 가기는 여전히 업데이트됩니다.
Kyle Delaney
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.