Akses ditolak kesalahan, ketika saya mklink di Windows 7 [duplikat]

34

Pertanyaan ini sudah ada jawabannya di sini:

Direktori rumah saya adalah c: \ Users \ phi sebagai phi pengguna, dan saya membuat direktori di c: \ Users \ abc. Saya perlu tautan simbolis dari c: \ Users \ phi \ hello ke c: \ Users \ abc \ hello.

Saya menjalankan perintah berikut

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

Tapi saya mendapatkan akses ditolak kesalahan. User phi adalah Administrator, jadi saya tidak punya masalah menulis file di c: \ Users \ abc.

Kenapa ini? Bagaimana cara mklink?

prosseek
sumber

Jawaban:

28

Poin-poin penting:

  1. Anda harus menjalankan sebagai admin jika UAC aktif. (atau setidaknya kebijakan keamanan untuk memungkinkan pembuatan tautan).
  2. The /Dsaklar harus digunakan jika link tersebut untuk direktori.
  3. Parameter pertama adalah tautan, parameter kedua adalah folder asli.
  4. Tautan seharusnya belum ada.

Pemakaian:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
rpattabi
sumber
@LawrenceDol Apakah benar untuk mengatakan bahwa untuk pengguna non-admin, Anda memerlukan izin khusus ( SeCreateSymbolicLinkPrivilege), sedangkan untuk pengguna admin Anda perlu meningkatkan dengan run-as-admin. Tetapi apakah mungkin juga untuk mengatur SeCreateSymbolicLinkPrivilegepengguna admin dan menghindari keharusan untuk menggunakan run-as-admin? Pertanyaan ini: stackoverflow.com/questions/29956470/… menunjukkan bahwa untuk pengguna admin tidak perlu meninggikan, UAC harus dinonaktifkan.
CMCDragonkai
@ CMCDragonkai: Saya tidak berpikir ketinggian diperlukan, tapi saya belum secara khusus menguji itu. Sepertinya saya telah membuat tautan menggunakan akun admin di jendela perintah normal sebelumnya dan saya selalu membiarkan UAC menyala.
Lawrence Dol
25

Saya menemukan jawaban dari situs ini . Singkatnya, saya seharusnya menjalankan cmd.exe sebagai Administrator.

prosseek
sumber
4
Untuk referensi, ini juga bisa menjadi penyebab: superuser.com/questions/264181/…
Wouter
9
Jika Anda mencoba menggunakan parameter / H ketika Anda menautkan folder, Anda akan mendapatkan Access ditolak. Anda perlu menggunakan / D sendiri untuk folder. Inilah yang terkandung dalam tautan Wouter. +1 ke Wouter, terima kasih sobat! :)
CausingUnderflowsEverywhere
21

Perhatikan bahwa kesalahan yang sama akan disajikan ketika Anda mencoba membuat persimpangan pada drive yang dipetakan . Saya mencabut rambut saya sampai saya menemukan contoh di halaman ini di MSDN Hard Links and Junctions .

Jawaban singkat: Anda hanya dapat menggunakan mklink pada volume lokal.

rburte
sumber
tautan ini tidak terlalu berguna. (pun tidak disengaja)
rpattabi
Jawaban ini sepertinya tidak relevan dengan pertanyaan.
kreemoweet
2
@kreemoweet jawabannya relevan karena jika Anda mendapatkan "Akses ditolak kesalahan, ketika saya mklink di Windows 7", alasannya mungkin karena Anda tidak menggunakan perintah pada volume lokal.
Reg Edit
Ya, Anda dapat menggunakan di mklinkluar volume lokal. mklink /d link_name \\server\shareberfungsi dengan baik.
UnclickableCharacter
Anda tidak dapat membuat mereka pada sebuah drive yang dipetakan . Disk lokal -> Remote? Ya. Pesta seperti itu Netware 2.x
rburte
15

Di Windows 7 (dan lebih baru) Anda memerlukan hak istimewa keamanan khusus untuk membuat tautan dan persimpangan. Sebagai administrator Anda dapat memberikan izin ini kepada pengguna secpol.mscuntuk mengatur Local Policies\User Rights Assignment\Create symbolic links.

Jika pengguna masuk pada saat itu, mereka harus keluar dan kembali untuk dapat membuat tautan.

Perhatikan peringatan bahwa tautan dapat mengekspos kelemahan keamanan di beberapa aplikasi - Saya belum meneliti apa kelemahan itu.

Lawrence Dol
sumber
Ini adalah satu-satunya jawaban yang memenuhi syarat untuk masalah ini karena jawaban apa pun tidak sampai ke seluk beluk. Berhentilah bekerja sebagai Administrator! Ini adalah sikap XP-ish yang menunjukkan kurangnya kesadaran akan risiko keamanan setiap Windows yang banyak dipicu.
Thomas Urban
9

Jika Anda sering menggunakan Linux, ingatlah bahwa parameternya ditukar pada Windows.

Jika Anda menggunakan urutan yang salah, Anda akan mendapatkan "Akses Ditolak" juga. Karena Anda mencoba membuat tautan simbolis di mana yang asli sudah ada.

Windows: mklink /D link original

Linux: ln -s original link

Sascha
sumber
4

Saya mendapatkan ini karena saya tidak sengaja berlari mklink /Dmelawan file. Tautan tidak muncul di explorer tetapi di Windows Explorer. Menggunakan Command Prompt, saya menghapus tautan direktori tidak sah asli dan kemudian membuatnya kembali tanpa /Dopsi.

Omong-omong, saya mendapatkan kesalahan "Akses ditolak" meskipun saya menjalankan cmd.exe sebagai administrator.

Peter Joles
sumber
1

Selain menjalankan mklinksebagai Administrator Anda juga harus memastikan bahwa Anda memiliki cukup izin ke folder tujuan yang Anda tautkan.

Martin Wildam
sumber
1

Jika Anda menjalankan:

mklink / j C: \ path_to_link C: \ tujuan

itu harus bekerja. Dalam kasus saya, PowerShell dan CMD menghasilkan output yang sama. Untuk PowerShell, Anda hanya perlu memulai perintah

cmd / c mklink ...

Simons0n
sumber
3
Ya, tetapi berhati-hatilah : persimpangan jauh lebih mematikan daripada tautan direktori keras. Menghapus tautan dari baris perintah atau explorer cukup menghapus tautan, tetapi menghapus persimpangan dari explorer akan menghapus semua yang ada di direktori dan kemudian menghapus persimpangan - OOPS. Gunakan mklink /D src tgtsebagai gantinya.
Lawrence Dol
0

Ini mungkin terdengar aneh, tetapi periksa apakah file atau folder itu belum ada yang Anda coba buat. Terkadang mudah untuk diabaikan di cmd prompt.

David d C e Freitas
sumber
0

Untuk direktori yang harus Anda lakukan:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
Zequez
sumber