Truy cập bị từ chối lỗi, khi tôi mklink trên Windows 7 [trùng lặp]


34

Câu hỏi này đã có câu trả lời ở đây:

Thư mục nhà của tôi là c: \ Users \ phi với tư cách là người dùng phi và tôi đã tạo một thư mục tại c: \ Users \ abc. Tôi cần liên kết tượng trưng từ c: \ Users \ phi \ hello đến c: \ Users \ abc \ hello.

Tôi chạy lệnh sau

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

Nhưng tôi nhận được quyền truy cập bị từ chối lỗi. Người dùng phi là Quản trị viên, vì vậy tôi không gặp vấn đề gì khi viết tệp trong c: \ Users \ abc.

Tại sao lại thế này? Làm thế nào để mklink?

Câu trả lời:


28

Điểm quan trọng:

  1. Bạn cần chạy với tư cách quản trị viên nếu bật UAC. (hoặc ít nhất là chính sách bảo mật để cho phép tạo liên kết).
  2. Công /Dtắc cần được sử dụng nếu liên kết dành cho thư mục.
  3. Tham số đầu tiên là một liên kết, tham số thứ hai là thư mục gốc.
  4. Liên kết không nên tồn tại.

Sử dụng:

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

@LawrenceDol Có đúng không khi nói rằng đối với người dùng không phải là quản trị viên, bạn cần có sự cho phép đặc biệt ( SeCreateSymbolicLinkPrivilege), trong khi đối với người dùng quản trị viên, bạn cần nâng cao với run-as-admin. Nhưng sau đó, có thể cũng thiết lập SeCreateSymbolicLinkPrivilegengười dùng quản trị viên và tránh phải nâng cao với run-as-admin không? Câu hỏi này: stackoverflow.com/questions/29956470/ chỉ ra rằng để người dùng quản trị không cần nâng cao, UAC phải bị vô hiệu hóa.
CMCDragonkai

@CMCDragonkai: Tôi không nghĩ độ cao là cần thiết, nhưng tôi chưa kiểm tra cụ thể điều đó. Dường như với tôi rằng tôi đã tạo các liên kết bằng tài khoản quản trị viên trong cửa sổ lệnh bình thường trước đây và tôi luôn để UAC.
Lawrence Dol

25

Tôi tìm thấy một câu trả lời từ trang web này . Nói tóm lại, tôi nên chạy cmd.exe với tư cách Quản trị viên.


4
Để tham khảo, đây cũng có thể là một nguyên nhân: superuser.com/questions/264181/iêu
Wouter

9
Nếu bạn cố gắng sử dụng tham số / H khi bạn liên kết các thư mục, bạn sẽ nhận được quyền truy cập bị từ chối. Bạn cần sử dụng / D một mình cho các thư mục. Đây là những gì có trong liên kết của Wouter. +1 cho Wouter, cảm ơn bạn đời! :)
CausingUnderflowsEverywhere 20/9/2016

21

Lưu ý rằng lỗi tương tự sẽ được trình bày khi bạn cố gắng tạo các mối nối trên các ổ đĩa được ánh xạ . Tôi đã kéo tóc ra về điều này cho đến khi tôi bắt gặp các ví dụ trên trang này trên Liên kết và Liên kết cứng MSDN .

Câu trả lời ngắn: bạn chỉ có thể sử dụng mklink trên khối lượng cục bộ.


liên kết này không hữu ích lắm. (chơi chữ ngoài ý muốn)
rpattabi

Câu trả lời này dường như không liên quan đến câu hỏi.
kreemoweet

2
@kreemoweet câu trả lời có liên quan vì nếu bạn gặp lỗi "Truy cập bị từ chối, khi tôi mklink trên Windows 7", lý do có thể là bạn không sử dụng lệnh trên ổ đĩa cục bộ.
Reg Chỉnh sửa

Có, bạn có thể sử dụng mklinkvượt quá khối lượng địa phương. mklink /d link_name \\server\sharehoạt động tốt
UnclickableCharacter

Bạn không thể làm cho chúng trên một ổ đĩa được ánh xạ . Đĩa cục bộ -> Từ xa? Vâng Bữa tiệc như Netware 2.x
rburte

15

Trong Windows 7 (và phiên bản mới hơn), bạn cần có một đặc quyền bảo mật đặc biệt để tạo liên kết và mối nối. Là quản trị viên, bạn có thể cấp quyền này cho người dùng sử dụng secpol.mscđể đặt Local Policies\User Rights Assignment\Create symbolic links.

Nếu người dùng đăng nhập vào thời điểm đó, họ sẽ cần phải đăng xuất và quay lại để có thể tạo liên kết.

Lưu ý rằng các liên kết có thể làm lộ ra các điểm yếu bảo mật trong một số ứng dụng - Tôi chưa nghiên cứu về những điểm yếu đó có thể là gì.


Đây là câu trả lời đủ điều kiện duy nhất cho vấn đề này cho bất kỳ câu trả lời nào không thuộc về gritty nitty. Ngừng làm việc với tư cách Quản trị viên! Đây là một thái độ rất XP-ish thể hiện sự thiếu nhận thức về các rủi ro bảo mật mà bất kỳ Windows nào cũng được quy định rất nhiều.
Thomas Urban

9

Nếu bạn thường xuyên sử dụng Linux, hãy nhớ rằng các tham số được hoán đổi trên Windows.

Nếu bạn sử dụng sai thứ tự, bạn cũng sẽ nhận được "Truy cập bị từ chối". Bởi vì bạn đang cố gắng tạo một liên kết tượng trưng nơi bản gốc đã tồn tại.

Các cửa sổ: mklink /D link original

Linux: ln -s original link


4

Tôi đã nhận được điều này bởi vì tôi vô tình chạy mklink /Dvới một tập tin. Liên kết không hiển thị trong explorer nhưng nó đã có trong Windows Explorer. Sử dụng Dấu nhắc Lệnh Tôi đã xóa liên kết thư mục không hợp lệ ban đầu và sau đó tạo lại nó mà không có /Dtùy chọn.

Nhân tiện, tôi đã gặp phải lỗi "Truy cập bị từ chối" mặc dù tôi đang chạy cmd.exe với tư cách quản trị viên.


1

Ngoài việc chạy mklinkvới tư cách Quản trị viên, bạn cũng cần đảm bảo rằng bạn có đủ quyền đối với thư mục đích bạn đang liên kết.


1

Nếu bạn chạy:

mklink / j C: \ path_to_link C: \ đích

nó nên hoạt động Trong trường hợp của tôi, powershell và cmd tạo ra cùng một đầu ra. Đối với quyền hạn, bạn chỉ phải bắt đầu lệnh với

cmd / c mklink ...


3
Có, nhưng hãy cẩn thận : các mối nối nguy hiểm hơn nhiều so với các liên kết thư mục cứng. Xóa một liên kết khỏi dòng lệnh hoặc explorer chỉ cần xóa liên kết, nhưng xóa một đường nối khỏi explorer sẽ xóa mọi thứ trong thư mục và sau đó xóa đường giao nhau - OOPS. Sử dụng mklink /D src tgtthay thế.
Lawrence Dol

0

Điều này nghe có vẻ lạ, nhưng kiểm tra xem tệp hoặc thư mục không tồn tại mà bạn đang cố tạo. Đôi khi thật dễ dàng bỏ qua trong dấu nhắc cmd.


0

Đối với các thư mục bạn phải làm:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.