ฉันจะหยุดทางลัด 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
ไม่ควรอัปเดต symlink ของ @JAB แต่มีข้อเสียบางอย่าง (ต้องการ privs ของผู้ดูแลระบบไม่สามารถส่งผ่านอาร์กิวเมนต์ ฯลฯ ) แม้ว่าพวกเขาจะทำงานได้ดีหากพวกเขาไม่มีปัญหา
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 จากนั้นคุณสามารถเรียกใช้จากพรอมต์ PowerShell:

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

ทางลัดที่ปรับแต่งด้วยวิธีนี้จะไม่เปลี่ยนแปลงเมื่อเป้าหมายของพวกเขาเคลื่อนที่ หากทางลัดเช่นนี้ชำรุดจะไม่มีอะไรเกิดขึ้นเมื่อคุณพยายามเปิด

ฉันรวบรวมคณิตศาสตร์ไบนารีที่ใช้ในสคริปต์ของฉันจาก48 หน้านี้ไมโครซอฟท์ PDF บนรูปแบบ


25

หยุดและปิดใช้งานบริการ: ไคลเอ็นต์การติดตามลิงก์แบบกระจาย (TrkWks)

การติดตามการเชื่อมโยงแบบกระจายติดตามการเชื่อมโยงในสถานการณ์ที่มีการเชื่อมโยงไปยังไฟล์บนวอลุ่ม NTFS เช่นทางลัดเชลล์ หากไฟล์นั้นถูกเปลี่ยนชื่อย้ายไปยังไดรฟ์ข้อมูลอื่นบนคอมพิวเตอร์เครื่องเดียวกันย้ายไปยังคอมพิวเตอร์เครื่องอื่นหรือย้ายไปอยู่ในสถานการณ์ที่คล้ายคลึงกันอื่น ๆ Windows จะใช้การติดตามการเชื่อมโยงแบบกระจายเพื่อค้นหาไฟล์

ที่มา: การติดตามลิงค์แบบกระจาย - การสนับสนุนของ Microsoft


เป็นความคิดที่ดี แต่น่าสังเกตว่ามันใช้งานไม่ได้ ทางลัดยังคงพบไฟล์แม้ว่าเส้นทางจะยาวกว่าหนึ่งไดเรกทอรี
Kyle Delaney

คุณแน่ใจหรือว่าบริการหยุดทำงาน หลังจากหยุดบริการ DLTC ฉันย้ายหรือเปลี่ยนชื่อไฟล์ปฏิบัติการ เมื่อฉันรันทางลัดฉันได้รับข้อผิดพลาด "ปัญหาเกี่ยวกับทางลัด" ว่าเป้าหมายหายไปและได้รับแจ้งให้ลบทางลัด
Steven

10
ฟังก์ชัน "ค้นหาเป้าหมายที่ถูกต้อง" ย้อนกลับไปในรุ่น Windows 9x และมีรุ่น Windows รุ่นก่อนวันที่ ไม่มี DLT ใน Windows 9x ไม่ได้หมายความว่า DLT จะไม่เกี่ยวข้อง Windows จะใช้ DLT หากช่วยค้นหาเป้าหมายทางลัด
MSalters

2
@Steven ใช่ฉันแน่ใจว่าบริการถูกปิด ใน Windows 10 ฉันไปที่บริการพบไคลเอนต์ติดตามการเชื่อมโยงแบบกระจายคลิกปุ่มหยุดรีสตาร์ทคอมพิวเตอร์ของฉันและตรวจสอบบริการอีกครั้ง มีปุ่มเริ่มต้นและบริการไม่ได้บอกว่าทำงานอยู่ ทางลัดยังคงอัปเดตตัวเอง
Kyle Delaney

8

ใช้shortcut.exeตัวเลือกคำสั่ง-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
น่าเสียดายที่ทางลัด.exeไม่พร้อมใช้งานอีกต่อไป
Daniel B

@DanielB ถูกต้องฉันลืมไปเลยว่าฉันได้ช่วยเหลือทางลัด.exeบน Windows บางรุ่น
Sunzi

2
@Daniel คุณรู้หรือไม่ว่า Windows รุ่นใดมีบ้าง มันอาจมีประโยชน์สำหรับบางคน
gronostaj


4

คุณสามารถเปิดใช้งานวัตถุนโยบายกลุ่มต่อไปนี้:

เมนูผู้ใช้ Configuration \ Administrative Templates \ Start และทาสก์บาร์ \ ห้ามใช้วิธีการค้นหาเมื่อทำการแก้ไขทางลัดเชลล์

รหัสรีจิสทรีที่เกี่ยวข้อง: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoResolveSearch

เมนูผู้ใช้ Configuration \ Administrative Templates \ Start และทาสก์บาร์ \ ห้ามใช้วิธีการติดตามเมื่อทำการแก้ไขทางลัดเชลล์

รหัสรีจิสทรีที่เกี่ยวข้อง:

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

ผู้ใช้ Configuration \ Administrative Templates \ Windows Templates \ File Explorer \ อย่าติดตามช็อตคัตเชลล์ระหว่างการโรมมิ่ง

รหัสรีจิสทรีที่เกี่ยวข้อง: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\LinkResolveIgnoreLinkInfo


ฉันจะเปิดใช้งาน GPO ได้อย่างไร ฉันจะค้นหาการกำหนดค่าผู้ใช้ได้จากที่ใด
Kyle Delaney

ใน windows 10 คุณสามารถคลิกขวาที่ปุ่มเริ่ม -> Run and write: gpedit.msc -> คลิก OK จากนั้นคุณจะสามารถค้นหาการกำหนดค่าผู้ใช้ ฯลฯ ... หรือคุณสามารถสร้างรีจิสตรีคีย์ที่ฉันระบุ ( ประเภท: 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.