Câu trả lời:
Kể từ Vista, cacls
không được dùng nữa. Đây là vài dòng trợ giúp đầu tiên:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Bạn nên sử dụng icacls
thay thế. Đây là cách bạn cấp cho John toàn quyền kiểm soát D:\test
thư mục và tất cả các thư mục con của nó:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Theo tài liệu MS:
F
= Kiểm soát hoàn toànCI
= Kế thừa vùng chứa - Cờ này biểu thị rằng các thùng chứa cấp dưới sẽ kế thừa ACE này.OI
= Đối tượng kế thừa - Cờ này biểu thị rằng các tệp cấp dưới sẽ kế thừa ACE./T
= Áp dụng đệ quy cho các tệp và thư mục con hiện có. ( OI
và CI
chỉ áp dụng cho các tệp mới và thư mục con). Tín dụng: nhận xét của @AlexSpence.Để có tài liệu đầy đủ, bạn có thể chạy " icacls
" không có đối số hoặc xem tài liệu Microsoft tại đây và đây
C:\>icacls "D:\test" /grant "John:(OI)(CI)F" /T
Bạn cũng có thể sử dụng ICACLS.
Để cấp cho nhóm Người dùng toàn quyền kiểm soát vào một thư mục:
>icacls "C:\MyFolder" /grant Users:F
Để cấp quyền Sửa đổi cho người dùng IIS cho C:\MyFolder
(nếu bạn cần IIS của bạn có khả năng R / W tệp vào thư mục cụ thể):
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
Nếu bạn làm ICACLS /? bạn sẽ có thể thấy tất cả các tùy chọn có sẵn.
cacls
đã biến mất, đó là lý do nhiều hơn để sử dụng icacls .
/grant Users:(OI)(CI)F
được sử dụng
Users
bằng thứ khác hay KHÔNG? Theoicacls "C:\MyFolder" /grant Users:F
Mở một Dấu nhắc lệnh, sau đó thực hiện lệnh này:
icacls "c:\somelocation\of\path" /q /c /t /grant Users:F
F
cung cấp quyền truy cập đầy đủ.
/q /c /t
áp dụng các quyền cho các thư mục con.
Lưu ý: Đôi khi "Chạy với tư cách Quản trị viên" sẽ giúp ích.
Sử dụng cacls
lệnh. Xem thông tin ở đây .
Tệp CACLS / e / p {USERNAME}: {PERMISSION}
Ở đâu,
/ p: Đặt quyền mới
/ e: Chỉnh sửa quyền và giữ quyền cũ vì đó là chỉnh sửa ACL thay vì thay thế.
{USERNAME}: Tên người dùng
{PERMISSION}: Quyền có thể là:
R - Đọc
W - Viết
C - Thay đổi (viết)
F - Kiểm soát hoàn toàn
Ví dụ: cấp quyền kiểm soát Rocky Full (F) bằng lệnh sau (gõ tại dấu nhắc lệnh của Windows):
C:> tệp CACLS / e / p rocky: f
Đọc trợ giúp hoàn chỉnh bằng cách gõ lệnh sau:
C:> cacls /?
cacls
là có liên quan; nó vẫn có sẵn trong Windows 10
; Microsoft cũng sẽ không cmd.exe
ủng hộ Powershell.
cmd.exe
không bị phản đối và không có khả năng, vì vậy đó không phải là một điểm có lợi cho icacls
tất cả, hoàn toàn ngược lại.
Quyền hỏng: Lấy lại quyền truy cập vào một thư mục và các đối tượng phụ của nó
Mặc dù hầu hết các câu trả lời được đăng trong câu trả lời cho câu hỏi đều có một số giá trị, IMHO không ai trong số họ đưa ra một giải pháp hoàn chỉnh. Sau đây (có thể) là một giải pháp hoàn hảo cho Windows 7 nếu bạn bị khóa thư mục do cài đặt quyền bị hỏng:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
Đối với Windows 10 , người dùng / SID phải được chỉ định sau /remove:d
tùy chọn:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
.
Ghi chú :
Lệnh được áp dụng cho thư mục được chỉ định.
Chỉ định người dùng "Mọi người" đặt quyền rộng nhất có thể, vì nó bao gồm mọi người dùng có thể.
Tùy chọn "/ remove: d" xóa mọi cài đặt DENY rõ ràng có thể tồn tại, vì các cài đặt ALLOW rõ ràng này: một bước sơ bộ cần thiết để tạo cài đặt ALLOW mới. Đây chỉ là một biện pháp phòng ngừa, vì thường không có cài đặt DENY, nhưng an toàn tốt hơn là xin lỗi.
Tùy chọn "/ Grant" tạo ra cài đặt ALLOW mới, quyền rõ ràng thay thế (": r") bất kỳ và tất cả các cài đặt ALLOW rõ ràng có thể tồn tại.
Tham số "F" (nghĩa là quyền được tạo) làm cho điều này được cấp quyền kiểm soát FULL.
Tham số "/ T" thêm đệ quy, áp dụng các thay đổi này cho tất cả các đối tượng con hiện tại trong thư mục được chỉ định (ví dụ: tệp và thư mục con), cũng như chính thư mục.
Các tham số "(OI)" và "(CI)" cũng thêm đệ quy, áp dụng các thay đổi này cho các đối tượng phụ được tạo sau đó.
.
ĐỊA CHỈ (2019/02/10) -
Dòng lệnh Windows 10 ở trên đã được đề xuất cho tôi hôm nay, vì vậy đây là. Tôi chưa có Windows 10 để kiểm tra, nhưng vui lòng dùng thử nếu bạn có (và sau đó bạn vui lòng gửi bình luận bên dưới).
Thay đổi chỉ liên quan đến việc xóa cài đặt DENY làm bước đầu tiên. Có thể không có bất kỳ cài đặt DENY nào, vì vậy tùy chọn đó có thể không có sự khác biệt. Hiểu biết của tôi là, trên Windows 7, bạn không cần chỉ định người dùng sau / xóa: d nhưng tôi có thể sai về điều đó!
.
ĐỊA CHỈ (2019/11/21) -
Người dùng astark khuyên nên thay thế Mọi người bằng thuật ngữ * S-1-1-0 để lệnh độc lập với ngôn ngữ. Tôi chỉ có một bản cài đặt tiếng Anh của Windows, vì vậy tôi không thể kiểm tra đề xuất này, nhưng có vẻ hợp lý.
Invalid parameter "/remove:d"
Tôi vật lộn với điều này trong một thời gian và chỉ kết hợp các câu trả lời trong chủ đề này làm việc cho tôi (trên Windows 10):
1. Mở cmd hoặc PowerShell và đi đến thư mục với các file
2. takeown / R / F .
3. icacls * / T / cấp dan: F
Chúc may mắn!
Chỉ trong trường hợp có bất kỳ ai khác vấp ngã trên trang này, nếu bạn muốn xâu chuỗi các quyền khác nhau trong một lệnh, tôi đã sử dụng điều này:
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
Lưu ý chuỗi csv cho các quyền khác nhau.
Với tập lệnh vba Excel để cung cấp và tạo tài khoản. Tôi cần cấp quyền đầy đủ cho thư mục và các thư mục con được tạo bởi công cụ bằng tài khoản 'x' của quản trị viên cho người dùng mới của chúng tôi.
cacls trông giống như thế này: cacls \ FileServer \ Users \ Username / e / g Domain \ Username: C
Tôi cần phải di chuyển mã này sang Windows 7 và hơn thế nữa. Giải pháp của tôi hóa ra là:
icacls \ FileServer \ Users \ Username / Grant: r Tên miền \ Tên người dùng: (OI) (CI) F / t
/ Grant: r - Cấp quyền truy cập người dùng được chỉ định. Quyền thay thế quyền được cấp rõ ràng trước đây. Không có: r, quyền được thêm vào bất kỳ quyền rõ ràng nào được cấp trước đó
(OI) (CI) - Thư mục này, thư mục con và tệp.
F - Truy cập đầy đủ
/ t - Di chuyển tất cả các thư mục con để khớp với tệp / thư mục.
Thứ này mang lại cho tôi là một thư mục trên máy chủ này mà người dùng chỉ có thể nhìn thấy thư mục đó và tạo các thư mục con, rằng họ có thể đọc và ghi tệp. Cũng như tạo các thư mục mới.
XCACLS.VBS là một tập lệnh rất mạnh sẽ thay đổi / chỉnh sửa thông tin ACL. c: \ windows \ system32 \ cscript.exe xcacls.vbs giúp trả về tất cả các công tắc và tùy chọn.
Bạn có thể nhận phân phối chính thức từ Trang hỗ trợ của Microsoft
XCACLS.VBS
có thể được tìm thấy?
Tạo thư mục hàng loạt và cấp quyền cho tôi hoạt động bằng cách sử dụng tập lệnh powershell bên dưới.
Import-Csv "D:\Scripts\foldernames.csv" | foreach-object {
$username = $_.foldername
# foldername is the header of csv file
$domain = “example.com”
$folder= "D:\Users"
$domainusername = $domain+“\”+$username
New-Item $folder\$username –Type Directory
Get-Acl $folder\$username
$acl = Get-Acl $folder\$username
$acl.SetAccessRuleProtection($True, $False)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\Domain Admins","Read", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($domainusername,"Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $folder\$username $acl
}
Lưu ý: Bạn phải tạo cùng tên người dùng trong tệp csv nếu không bạn sẽ gặp sự cố về quyền
attrib +r +a +s +h <folder name> <file name> to hide
attrib -r -a -s -h <folder name> <file name> to unhide
điểm tuyệt vời Călin Darie
Tôi đã có rất nhiều tập lệnh để sử dụng cacls Tôi chuyển chúng sang icacls bao giờ tôi không thể tìm thấy tập lệnh để thay đổi ví dụ về khối lượng gốc: d: \ datafolder. Cuối cùng tôi đã viết kịch bản bên dưới, gắn kết âm lượng như một ổ đĩa tạm thời sau đó áp dụng giây. sau đó ngắt kết nối nó Đó là cách duy nhất tôi thấy rằng bạn có thể cập nhật bảo mật root.
1 lấy thư mục gắn GUID vào tệp tạm thời sau đó đọc GUID để gắn âm lượng dưới dạng ổ tạm thời X: áp dụng giây và ghi lại các thay đổi sau đó ngắt kết nối Âm lượng từ ổ X: để thư mục được gắn không bị thay đổi hoặc bị gián đoạn khác sau đó giây áp dụng.
đây là mẫu kịch bản của tôi:
**mountvol "d:\%1" /L >tempDrive.temp && FOR /f "tokens=*" %%I IN (tempDrive.temp) DO mountvol X: %%I
D:\tools\security\icacls.exe %~2 /grant domain\group:(OI)(CI)F /T /C >>%~1LUNsec-%TDWEEK%-%TMONTH%-%TDAY%-%TYEAR%-%THOUR%-%TMINUTE%-%TAM%.txt
if exist x:\*.* mountvol X: /d**
Tôi là Quản trị viên và một số tập lệnh đã cho phép "Từ chối" tên của tôi trên tất cả các tệp và thư mục con trong một thư mục. Thực thi icacls "D:\test" /grant John:(OI)(CI)F /T
lệnh không hoạt động, vì dường như nó không xóa "Từ chối" ngay từ tên của tôi khỏi danh sách này.
Điều duy nhất làm việc cho tôi là đặt lại tất cả các quyền với icacls "D:\test" /reset /T
lệnh.
trong windows 10 hoạt động mà không có "c:>" và ">"
Ví dụ:
F = Full Control
/e : Edit permission and kept old permission
/p : Set new permission
cacls "đường dẫn tệp hoặc thư mục" / e / p Tên người dùng: F
(cũng sửa lỗi này 2502 và 2503)
cacls "C: \ Windows \ Temp" / e / p Tên người dùng: F
Đây là những gì làm việc cho tôi:
Mở thủ công thư mục truy cập bị từ chối.
Chọn tập tin thực thi / ứng dụng trong thư mục đó.
Nhấp chuột phải vào nó và đi đến Properties->Compatibility
Bây giờ hãy xem Privilege Levelvà kiểm tra nó choRun As Administrator
Bấm vào Change Settings for all users.
Vấn đề được giải quyết ngay bây giờ.