การเข้าถึงถูกปฏิเสธข้อผิดพลาดเมื่อฉัน mklink บน Windows 7 [ซ้ำกัน]


34

คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:

ไดเรกทอรีบ้านของฉันคือ c: \ Users \ phi ในฐานะผู้ใช้ phi และฉันทำไดเรกทอรีที่ c: \ Users \ abc ฉันต้องการลิงก์สัญลักษณ์จาก c: \ Users \ phi \ hello ไปยัง c: \ Users \ abc \ hello

ฉันเรียกใช้คำสั่งต่อไปนี้

mklink c: \ Users \ abc \ hello c: \ Users \ phi \ hello

แต่ฉันได้รับการเข้าถึงถูกปฏิเสธข้อผิดพลาด User phi เป็นผู้ดูแลระบบดังนั้นฉันจึงไม่มีปัญหาในการเขียนไฟล์ใน c: \ Users \ abc

ทำไมนี้ วิธีการ mklink

คำตอบ:


27

จุดสำคัญ:

  1. คุณต้องเรียกใช้ในฐานะผู้ดูแลระบบถ้าเปิด UAC (หรืออย่างน้อยนโยบายความปลอดภัยเพื่ออนุญาตการสร้างลิงก์)
  2. /Dสวิทช์จะต้องมีการใช้ในกรณีที่การเชื่อมโยงในไดเรกทอรี
  3. พารามิเตอร์แรกคือการเชื่อมโยงพารามิเตอร์ที่สองคือโฟลเดอร์เดิม
  4. ลิงก์ไม่ควรมีอยู่แล้ว

การใช้งาน:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\

@LawrenceDol มันถูกต้องหรือไม่ที่จะบอกว่าสำหรับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบคุณต้องได้รับอนุญาตพิเศษ ( SeCreateSymbolicLinkPrivilege) ในขณะที่สำหรับผู้ใช้ที่เป็นผู้ดูแลระบบคุณต้องยกระดับด้วย run-as-admin แต่ถ้าเป็นไปได้ที่จะตั้งค่าSeCreateSymbolicLinkPrivilegeบนผู้ใช้ที่เป็นผู้ดูแลระบบและหลีกเลี่ยงการยกระดับด้วยการเรียกใช้ในฐานะผู้ดูแลระบบ? คำถามนี้: stackoverflow.com/questions/29956470/…บ่งชี้ว่าเพื่อให้ผู้ดูแลระบบไม่จำเป็นต้องยกระดับ UAC จะต้องปิดการใช้งาน
CMCDragonkai

@CMCDragonkai: ฉันไม่คิดว่าการยกระดับนั้นเป็นสิ่งจำเป็น แต่ฉันไม่ได้ทำการทดสอบโดยเฉพาะ ฉันดูเหมือนว่าฉันได้สร้างลิงก์โดยใช้บัญชีผู้ดูแลระบบในหน้าต่างคำสั่งปกติมาก่อนและฉันจะเปิด UAC ไว้เสมอ
Lawrence Dol

25

ฉันพบคำตอบจากเว็บไซต์นี้ ในระยะสั้นฉันควรจะเรียกใช้ cmd.exe ในฐานะผู้ดูแลระบบ


4
สำหรับการอ้างอิงนี่อาจเป็นสาเหตุ: superuser.com/questions/264181/…
Wouter

9
หากคุณพยายามใช้พารามิเตอร์ / H เมื่อคุณเชื่อมโยงโฟลเดอร์คุณจะได้รับการเข้าถึงถูกปฏิเสธ คุณต้องใช้ / D เพียงอย่างเดียวสำหรับโฟลเดอร์ นี่คือสิ่งที่มีอยู่ในลิงค์ของ Wouter +1 ถึง Wouter ขอบคุณเพื่อน! :)
ก่อให้เกิด UnderflowsEverywhere

21

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

คำตอบสั้น ๆ : คุณสามารถใช้ mklink กับไดรฟ์ข้อมูลภายในเท่านั้น


ลิงค์นี้ไม่มีประโยชน์มาก (เล่นโดยไม่ได้ตั้งใจ)
rpattabi

คำตอบนี้ดูเหมือนจะไม่เกี่ยวข้องกับคำถาม
kreemoweet

2
@ kreemoweet คำตอบนั้นมีความเกี่ยวข้องเพราะหากคุณได้รับ "การเข้าถึงถูกปฏิเสธข้อผิดพลาดเมื่อฉัน mklink บน Windows 7" เหตุผลอาจเป็นเพราะคุณไม่ได้ใช้คำสั่งบนไดรฟ์ข้อมูลท้องถิ่น
Reg แก้ไข

ใช่คุณสามารถใช้mklinkเกินปริมาณท้องถิ่น mklink /d link_name \\server\shareทำงานได้ดี
UnclickableCharacter

คุณไม่สามารถทำให้พวกเขาบนไดรฟ์ที่แมป ดิสก์ในเครื่อง -> ระยะไกล ได้. ปาร์ตี้อย่าง It's Netware 2.x
rburte

15

ใน Windows 7 (และใหม่กว่า) คุณต้องมีสิทธิ์ความปลอดภัยพิเศษเพื่อสร้างลิงก์และทางแยก ในฐานะที่เป็นผู้ดูแลระบบคุณสามารถอนุญาตให้ผู้ใช้โดยใช้ชุดsecpol.mscLocal Policies\User Rights Assignment\Create symbolic links

หากผู้ใช้เข้าสู่ระบบในเวลาพวกเขาจะต้องออกจากระบบและกลับมาเพื่อให้สามารถสร้างลิงค์

สังเกตความระมัดระวังว่าลิงก์อาจทำให้เกิดจุดอ่อนด้านความปลอดภัยในแอพบางตัว - ฉันยังไม่ได้ทำการวิจัยว่าจุดอ่อนเหล่านั้นอาจเป็นอะไร


นี่เป็นเพียงคำตอบที่เหมาะสมสำหรับปัญหานี้สำหรับคำตอบใด ๆ ที่ไม่ได้ลงไปที่ nitty gritty หยุดทำงานในฐานะผู้ดูแลระบบ! นี่เป็นทัศนคติที่แสดงให้เห็นถึงการขาดความตระหนักถึงความเสี่ยงด้านความปลอดภัยที่มีการใช้ Windows เป็นจำนวนมาก
Thomas Urban

9

หากคุณใช้งาน Linux บ่อยครั้งโปรดจำไว้ว่าพารามิเตอร์นั้นสลับกับ Windows

หากคุณใช้คำสั่งที่ไม่ถูกต้องคุณจะได้รับ "การเข้าถึงถูกปฏิเสธ" เช่นกัน เพราะคุณกำลังพยายามสร้างลิงก์สัญลักษณ์ที่มีอยู่แล้วเดิม

ของ windows: mklink /D link original

ลินุกซ์: ln -s original link


4

ฉันได้รับสิ่งนี้เพราะฉันเผลอmklink /Dเจอไฟล์ ลิงค์ไม่แสดงใน explorer แต่ทำใน Windows Explorer การใช้พรอมต์คำสั่งฉันลบลิงค์ไดเรกทอรีที่ไม่ถูกต้องดั้งเดิมแล้วสร้างขึ้นใหม่โดยไม่มี/Dตัวเลือก

โดยวิธีการที่ฉันได้รับข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ" แม้ว่าฉันจะใช้ cmd.exe เป็นผู้ดูแลระบบ


1

นอกเหนือจากการทำงานmklinkในฐานะผู้ดูแลระบบคุณควรตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์เพียงพอไปยังโฟลเดอร์ปลายทางที่คุณกำลังลิงก์ไป


1

หากคุณทำงาน:

mklink / j C: \ path_to_link C: \ ปลายทาง

มันควรจะทำงาน ในกรณีของฉัน powershell และ cmd ให้ผลลัพธ์เดียวกัน สำหรับ PowerShell คุณจะต้องเริ่มต้นคำสั่งด้วย

cmd / c mklink ...


3
ใช่ แต่ระวัง : การแยกเป็นอันตรายยิ่งกว่าลิงก์ฮาร์ดไดรฟ์ การลบลิงก์ออกจากบรรทัดคำสั่งหรือ explorer เพียงแค่ลบการเชื่อมโยง แต่การลบทางแยกออกจาก explorer จะลบทุกอย่างในไดเรกทอรีแล้วลบ junction - OOPS ใช้mklink /D src tgtแทน
Lawrence Dol

0

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.