Windows 7에서 mklink를 실행할 때 액세스 거부 오류가 발생했습니다. [중복]


34

이 질문에는 이미 답변이 있습니다.

내 홈 디렉토리는 사용자 phi로 c : \ Users \ phi이고 c : \ Users \ abc에 디렉토리를 만들었습니다. c : \ Users \ phi \ hello에서 c : \ Users \ abc \ hello로 심볼릭 링크해야합니다.

다음 명령을 실행합니다

mklink c : \ 사용자 \ abc \ hello c : \ 사용자 \ phi \ hello

그러나 액세스 거부 오류가 발생합니다. User phi는 Administrator이므로 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관리자 사용자로 설정 하고 run-as-admin으로 상승하지 않아도 될 수 있습니까? 이 질문 : stackoverflow.com/questions/29956470/… 는 관리자가 권한을 상승시킬 필요가 없으므로 UAC를 비활성화해야 함을 나타냅니다.
CMCDragonkai

@ CMCDragonkai : 고도가 필요하다고 생각하지는 않지만 특별히 테스트하지는 않았습니다. 이전에는 일반 명령 창에서 관리자 계정을 사용하여 링크를 만들었으며 항상 UAC를 그대로 둡니다.
Lawrence Dol

25

사이트 에서 답변을 찾았습니다 . 즉, 관리자 권한으로 cmd.exe를 실행해야합니다.


4
: 참고로,이 또한 원인이 될 수 있습니다 superuser.com/questions/264181/...
WOUTER

9
폴더를 연결할 때 / H 매개 변수를 사용하려고하면 액세스가 거부됩니다. 폴더에는 / D 만 사용해야합니다. 이것이 Wouter의 링크에 포함되어 있습니다. Wouter에게 +1, 고마워 친구! :)
어디서나 발생할 수있는 모든 흐름

21

매핑 된 드라이브에서 접합을 만들려고 할 때 동일한 오류가 나타납니다 . MSDN Hard Links and Junctions 의이 페이지에서 예제를 발견 할 때까지이 문제를 해결하고있었습니다 .

짧은 대답 : 로컬 볼륨에서만 mklink를 사용할 수 있습니다.


이 링크는별로 유용하지 않습니다. (pun 의도하지 않은)
rpattabi

이 답변은 질문과 관련이없는 것 같습니다.
kreemoweet

2
@kreemoweet 대답은 "Windows 7에서 mklink에 액세스 할 때 액세스 거부 오류"가 표시되면 로컬 볼륨에서 명령을 사용하지 않기 때문일 수 있습니다.
Reg Edit

예, mklink로컬 볼륨 이상으로 사용할 수 있습니다 . mklink /d link_name \\server\share잘 작동합니다.
캐릭터

당신은 그 (것)을 할 수 없습니다 매핑 된 드라이브 . 로컬 디스크-> 원격? 예. 파티 그것의 넷웨어 2.x에서와 같은
rburte

15

Windows 7 이상에서는 링크 및 정션을 작성하려면 특별한 보안 권한이 필요합니다. 관리자는 사용하여 사용자에게이 권한을 부여 할 수 있습니다 secpol.msc설정합니다 Local Policies\User Rights Assignment\Create symbolic links.

해당 시점에 사용자가 로그온 한 경우 링크를 만들려면 로그 오프했다가 다시 로그온해야합니다.

일부 앱에서는 링크가 보안 취약점을 노출시킬 수 있다는 점에 유의하십시오. 이러한 취약점이 무엇인지 조사하지 않았습니다.


이것은이 문제에 대한 유일하게 적합한 답변입니다. 관리자로 작업을 중지하십시오! 이것은 모든 Windows가 많이 사용되는 보안 위험에 대한 인식 부족을 보여주는 매우 XP-ish 태도입니다.
Thomas Urban

9

Linux를 자주 사용하는 경우 매개 변수가 Windows에서 교체된다는 것을 기억하십시오.

잘못된 순서를 사용하면 "액세스 거부"도 표시됩니다. 원본이 이미 존재하는 심볼릭 링크를 만들려고하기 때문입니다.

윈도우 : mklink /D link original

리눅스 : ln -s original link


4

실수 mklink /D로 파일을 실행했기 때문에이 문제가 발생했습니다 . 링크가 탐색기에 표시되지 않았지만 Windows 탐색기에 표시되었습니다. 명령 프롬프트를 사용하여 원래 잘못된 디렉토리 링크를 삭제 한 다음 /D옵션 없이 다시 작성했습니다 .

그런데 관리자로 cmd.exe를 실행하고 있는데 "액세스가 거부되었습니다"라는 오류가 발생했습니다.


1

mklink관리자 권한으로 실행하는 것 외에도 연결하려는 대상 폴더에 대한 충분한 권한이 있는지 확인해야합니다.


1

당신이 실행하는 경우 :

mklink / j C : \ path_to_link C : \ 목적지

작동해야합니다. 필자의 경우 powershell과 cmd는 동일한 출력을 생성했습니다. powershell의 경우 다음 명령 만 실행하면됩니다

cmd / c mklink ...


3
예, 그러나 주의하십시오 . junction은 하드 디렉토리 링크보다 훨씬 치명적입니다. 명령 행 또는 탐색기에서 링크를 삭제하면 링크가 단순히 제거되지만 탐색기에서 정션을 삭제하면 디렉토리의 모든 항목이 제거되고 정션-OOPS가 삭제됩니다. mklink /D src tgt대신 사용하십시오 .
Lawrence Dol

0

이상하게 들릴지 모르지만 만들려는 파일 또는 폴더가 없는지 확인하십시오. 때로는 cmd 프롬프트에서 간과하기 쉽습니다.


0

디렉토리의 경우 다음을 수행해야합니다.

mklink /D c:\Users\abc\hello c:\Users\phi\hello
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.