ฉันจะหยุดทางลัด 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.