Erişim reddedildi, Windows 7'de mklink yaptığım zaman [yinelenen]


34

Bu sorunun zaten burada bir cevabı var:

Ana dizim c: \ Users \ phi kullanıcısı olarak phi, ve c: \ Users \ abc konumunda bir dizin yaptım. C: \ Users \ phi \ hello ile c: \ Users \ abc \ hello arasındaki sembolik bağlantıya ihtiyacım var.

Aşağıdaki komutu çalıştırıyorum

mklink c: \ Users \ abc \ merhaba c: \ Users \ phi \ merhaba

Ancak Erişim reddedildi hatası alıyorum. Kullanıcı phi Yönetici, bu nedenle c: \ Users \ abc içine dosya yazarken sorun yaşamadım.

Bu neden? Bağlantı nasıl?

Yanıtlar:


27

Önemli noktalar:

  1. UAC açıksa, yönetici olarak çalıştırmanız gerekir. (veya en azından bağlantıların oluşturulmasına izin vermek için güvenlik politikası).
  2. /DBağlantı dizinin ise anahtar kullanılmalıdır gerekiyor.
  3. İlk parametre bir bağlantıdır, ikinci parametre orijinal klasördür.
  4. Bağlantı zaten olmamalı.

Kullanımı:

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

@LawrenceDol Yönetici olmayan kullanıcılar için, özel izne ( SeCreateSymbolicLinkPrivilege) ihtiyacınız olduğunu, yönetici kullanıcıları için ise yönetici olarak çalıştırma ile yükseltmeniz gerektiğini söylemek doğru mu? Ancak SeCreateSymbolicLinkPrivilegebir yönetici kullanıcısına da ayarlamak ve yönetici olarak çalıştır ile yükseltmek zorunda kalmaktan kaçınmak mümkün mü? Bu soru: stackoverflow.com/questions/29956470/… , yönetici kullanıcılarının yükselmesi gerekmemesi için UAC'nin devre dışı bırakılması gerektiğini belirtir.
CMCDragonkai

@ CMCDragonkai: Yükselmenin gerekli olduğunu düşünmüyorum, ancak bunu özel olarak test etmedim. Bana daha önce normal bir komut penceresinde bir yönetici hesabı kullanarak bağlantılar oluşturduğumu ve UAC'yi her zaman açık bıraktığımı düşünüyorum.
Lawrence Dol,


21

Eşlenen sürücülerde kavşaklar oluşturmaya çalışırken aynı hatanın ortaya çıkacağını unutmayın . Bu sayfadaki örnekleri MSDN Hard Links and Junctions hakkındaki örneklere rastlayana kadar saçlarımı çekiyordum .

Kısa cevap: mklink'i sadece yerel ciltlerde kullanabilirsiniz.


bu bağlantı çok kullanışlı değil. (istenmeyen
cezalar

Bu cevap, soru ile ilgili görünmüyor.
kreemoweet

2
@kreemoweet cevabı, çünkü "Erişim engellendi, Windows 7'de bağlantı kurarken hata oluştu" mesajı alırsanız, bunun nedeni, komutu yerel bir birimde kullanmamanız olabilir.
Reg Edit

Evet, mklinkyerel ciltlerin ötesinde kullanabilirsiniz . mklink /d link_name \\server\sharesadece iyi çalışıyor.
UnclickableCharacter

Onları yapamaz üzerinde bir eşleştirilmiş sürücüye . Yerel disk -> Uzak? Evet. Netware 2.x gibi parti
rburte

15

Windows 7'de (ve sonraki sürümlerde) bağlantılar ve kavşaklar oluşturmak için özel bir güvenlik ayrıcalığına ihtiyacınız vardır. Yönetici olarak, bu izni secpol.mscayarlamak için kullanan kullanıcılara verebilirsiniz Local Policies\User Rights Assignment\Create symbolic links.

Kullanıcı o zaman oturum açarsa, bağlantı oluşturabilmek için oturumu kapatıp tekrar açmaları gerekir.

Bağlantıların bazı uygulamalarda güvenlik zayıflıklarını ortaya çıkarabileceğine dikkat edin - bu zayıflıkların ne olabileceğini araştırmadım.


Bu, bu sorunun tek uygun cevabı, herhangi bir cevabı nitty kumlu aşağı inmiyor değildir. Yönetici olarak çalışmayı bırak! Bu, herhangi bir Windows'un çok fazla öne sürdüğü güvenlik riskleri konusunda farkındalığın bulunmadığını gösteren çok hassas bir tutumdur.
Thomas Urban

9

Sık sık Linux kullanıyorsanız, parametrelerin Windows'ta değiştirildiğini unutmayın.

Yanlış sipariş kullanırsanız, "Erişim Reddedildi" de alırsınız. Çünkü orijinalin zaten var olduğu sembolik bir bağlantı oluşturmaya çalışıyorsunuz.

pencereler: mklink /D link original

Linux: ln -s original link


4

Bunu alıyordum çünkü yanlışlıkla mklink /Dbir dosyaya çarptım . Bağlantı gezginde gösterilmiyordu, fakat Windows Gezgini'nde de görüldü. Komut İstemi'ni kullanarak, orijinal geçersiz dizin bağlantısını sildim ve /Dseçenek olmadan yeniden oluşturdum .

Bu arada, bir yönetici olarak cmd.exe çalıştırıyor olmama rağmen "Erişim engellendi" hatası alıyordum.


1

mklinkYönetici olarak çalışmanın yanı sıra, bağlandığınız hedef klasöre yeteri kadar yetkiniz olduğundan emin olmalısınız.


1

Eğer koşarsan:

mklink / j C: \ path_to_link C: \ hedef

İşe yaramalı. Benim durumumda powershell ve cmd aynı çıktıyı verdi. Powershell için sadece komutu başlatmak için

cmd / c mklink ...


3
Evet, ama dikkat : kavşaklar sabit dizin bağlantılarından çok daha ölümcül. Bir bağlantıyı komut satırından veya gezginden silmek, bağlantıyı kaldırır, ancak bir bağlantıyı gezginden silmek, dizindeki her şeyi kaldırır ve ardından bağlantıyı siler - OOPS. Yerine mklink /D src tgtkullanın.
Lawrence Dol

0

Bu garip gelebilir, ancak oluşturmaya çalıştığınız dosya veya klasörün zaten var olmadığını kontrol edin. Bazen cmd komutunda göz ardı etmek kolaydır.


0

Dizinler için yapmanız gerekenler:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.