Jawaban:
Pada Vista, cacls
sudah usang. Inilah beberapa garis bantuan pertama:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Anda harus menggunakannya icacls
sebagai gantinya. Ini adalah bagaimana Anda memberi John kendali penuh atas D:\test
folder dan semua subfoldernya:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Menurut lakukan dokumentasi MS:
F
= Kontrol PenuhCI
= Container Inherit - Bendera ini menunjukkan bahwa kontainer bawahan akan mewarisi ACE ini.OI
= Object Inherit - Bendera ini menunjukkan bahwa file bawahan akan mewarisi ACE./T
= Berlaku secara rekursif ke file dan sub-folder yang ada. ( OI
dan CI
hanya berlaku untuk file dan sub-folder baru). Kredit: komentar oleh @AlexSpence.Untuk dokumentasi yang lengkap, Anda dapat menjalankan " icacls
" tanpa argumen atau melihat dokumentasi Microsoft di sini dan di sini
C:\>icacls "D:\test" /grant "John:(OI)(CI)F" /T
Anda juga dapat menggunakan ICACLS.
Untuk memberikan grup Pengguna Kontrol Penuh ke folder:
>icacls "C:\MyFolder" /grant Users:F
Untuk memberikan izin Ubah kepada pengguna IIS untuk C:\MyFolder
(jika Anda memerlukan IIS Anda memiliki kemampuan untuk R / W file ke folder tertentu):
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
Jika Anda melakukan ICACLS /? Anda akan dapat melihat semua opsi yang tersedia.
cacls
sudah hilang, itu bahkan lebih banyak alasan untuk menggunakan icacls .
/grant Users:(OI)(CI)F
digunakan
Users
dengan sesuatu yang lain atau TIDAK? Menuruticacls "C:\MyFolder" /grant Users:F
Buka Prompt Perintah, kemudian jalankan perintah ini:
icacls "c:\somelocation\of\path" /q /c /t /grant Users:F
F
memberikan Akses Penuh.
/q /c /t
berlaku izin untuk subfolder.
Catatan: Terkadang "Jalankan sebagai Administrator" akan membantu.
Gunakan cacls
perintah. Lihat informasi di sini .
File CACLS / e / p {USERNAME}: {PERMISSION}
Dimana,
/ p: Tetapkan izin baru
/ e: Edit izin dan simpan izin lama seperti itu yaitu mengedit ACL bukannya menggantinya.
{USERNAME}: Nama pengguna
{PERMISSION}: Izin bisa:
R - Baca
W - Tulis
C - Ubah (tulis)
F - Kontrol penuh
Misalnya berikan kendali Rocky Full (F) dengan perintah berikut (ketik pada prompt perintah Windows):
C:> File CACLS / e / p rocky: f
Baca bantuan lengkap dengan mengetik perintah berikut:
C:> cacls /?
cacls
relevan; masih tersedia di Windows 10
; Microsoft akan menolak cmd.exe
mendukung Powershell juga.
cmd.exe
tidak usang dan tidak mungkin, jadi itu bukan poin yang mendukung icacls
sama sekali, justru sebaliknya.
cacls.exe
. Saya juga tidak menyebutkan bahwa cmd.exe
itu sudah usang. Saya pikir orang setidaknya harus menyadari ketersediaannya dalam versi yang lebih tinggi bahkan hanya untuk kompatibilitas mundur atau alasan lain.
Izin Rusak: Mendapatkan kembali akses ke folder dan sub-objeknya
Meskipun sebagian besar jawaban yang diposting dalam menjawab pertanyaan memiliki beberapa kelebihan, IMHO tidak satupun dari mereka memberikan solusi yang lengkap. Berikut ini (mungkin) solusi sempurna untuk Windows 7 jika Anda dikunci dari folder dengan pengaturan izin yang rusak:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
Untuk Windows 10 , pengguna / SID harus ditentukan setelah /remove:d
opsi:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
.
Catatan :
Perintah diterapkan ke direktori yang ditentukan.
Menentukan pengguna "Semua Orang" menetapkan izin seluas mungkin, karena mencakup setiap pengguna yang memungkinkan.
Opsi "/ hapus: d" menghapus pengaturan DENY eksplisit yang mungkin ada, seperti yang menimpa pengaturan TUNGGU eksplisit: pendahuluan yang diperlukan untuk membuat pengaturan ALLOW yang baru. Ini hanya tindakan pencegahan, karena seringkali tidak ada pengaturan DENY yang ada, tetapi lebih baik aman daripada menyesal.
Opsi "/ berikan" membuat pengaturan ALLOW baru, izin eksplisit yang menggantikan (": r") semua dan semua pengaturan ALLOW eksplisit yang mungkin ada.
Parameter "F" (yaitu izin yang dibuat) menjadikan ini sebagai hibah kontrol FULL.
The "/ T" parameter menambahkan rekursi, menerapkan perubahan ini ke semua saat ini sub-objek dalam direktori tertentu (yaitu file dan subfolder), serta folder itu sendiri.
Parameter "(OI)" dan "(CI)" juga menambahkan rekursi, menerapkan perubahan ini pada sub-objek yang dibuat selanjutnya.
.
ADDENDUM (2019/02/10) -
Baris perintah Windows 10 di atas disarankan kepada saya hari ini, jadi ini dia. Saya belum punya Windows 10 untuk mengujinya, tetapi silakan coba jika Anda punya (dan kemudian tolong posting komentar di bawah).
Perubahan hanya menyangkut penghapusan pengaturan DENY sebagai langkah pertama. Mungkin tidak ada pengaturan MENYANGKAL yang hadir, sehingga opsi mungkin tidak membuat perbedaan. Pemahaman saya adalah, pada Windows 7, bahwa Anda tidak perlu menentukan pengguna setelah / menghapus: d tapi saya mungkin salah tentang itu!
.
ADDENDUM (2019/11/21) -
Pengguna astark merekomendasikan untuk mengganti Semua Orang dengan istilah * S-1-1-0 agar perintah menjadi independen bahasa. Saya hanya menginstal Windows dalam Bahasa Inggris, jadi saya tidak dapat menguji proposal ini, tetapi tampaknya masuk akal.
Invalid parameter "/remove:d"
Aku berjuang dengan ini untuk sementara waktu dan hanya menggabungkan jawaban di thread ini bekerja untuk saya (pada Windows 10):
1. Buka cmd atau PowerShell dan pergi ke folder dengan file
2. takeown / R / F .
3. icacls * / T / grant dan: F
Semoga berhasil!
Kalau-kalau ada orang lain yang tersandung di halaman ini, jika Anda ingin merangkai berbagai izin bersama dalam satu perintah, saya menggunakan ini:
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
Perhatikan string csv untuk berbagai izin.
Dengan skrip Excel vba untuk menyediakan dan membuat akun. Saya perlu memberikan izin hak penuh ke folder dan subfolder yang dibuat oleh alat menggunakan akun 'x' administrator kami untuk pengguna baru kami.
cacls terlihat seperti ini: cacls \ FileServer \ Users \ Username / e / g Domain \ Username: C
Saya perlu memigrasi kode ini ke Windows 7 dan seterusnya. Solusi saya ternyata:
icacls \ FileServer \ Users \ Username / grant: r Domain \ Username: (OI) (CI) F / t
/ grant: r - Memberikan hak akses pengguna yang ditentukan. Izin menggantikan izin eksplisit yang sebelumnya diberikan. Tanpa: r, izin ditambahkan ke izin eksplisit yang sebelumnya diberikan
(OI) (CI) - Folder, subfolder, dan file ini.
F - Akses Penuh
/ t - Traverse semua subfolder untuk mencocokkan file / direktori.
Apa ini memberi saya adalah folder di server ini bahwa pengguna hanya bisa melihat folder itu dan membuat subfolder, sehingga mereka bisa membaca dan menulis file. Serta membuat folder baru.
XCACLS.VBS adalah skrip yang sangat kuat yang akan mengubah / mengedit info ACL. c: \ windows \ system32 \ cscript.exe xcacls.vbs membantu mengembalikan semua sakelar dan opsi.
Anda bisa mendapatkan distribusi resmi dari Halaman Dukungan Microsoft
XCACLS.VBS
dapat ditemukan?
Pembuatan folder massal dan izin izin berfungsi dengan menggunakan skrip powershell di bawah ini.
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
}
Catatan: Anda harus membuat nama pengguna domain yang sama dalam file csv jika tidak, Anda akan mendapatkan masalah izin
attrib +r +a +s +h <folder name> <file name> to hide
attrib -r -a -s -h <folder name> <file name> to unhide
titik bagus Călin Darie
Saya punya banyak skrip untuk menggunakan cacl. Saya memindahkannya ke icacls, namun saya tidak dapat menemukan skrip untuk mengubah volume root mount contoh: d: \ datafolder. Saya akhirnya membuat skrip di bawah ini, yang me-mount volume sebagai drive sementara kemudian berlaku detik. kemudian lepaskan itu. Ini adalah satu-satunya cara saya menemukan bahwa Anda dapat memperbarui keamanan root mount.
1 membuat folder me-mount GUID ke file temp, lalu membaca GUID untuk me-mount volume sebagai drive temp X: berlaku dtk dan catat perubahan lalu lepaskan volume hanya dari drive X: sehingga folder yang terpasang tidak diubah atau terganggu. kemudian detik diterapkan.
berikut ini contoh skrip saya:
**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**
Saya Administrator dan beberapa skrip menempatkan izin "Tolak" pada nama saya di semua file dan subfolder dalam direktori. Menjalankan icacls "D:\test" /grant John:(OI)(CI)F /T
perintah tidak berhasil, karena sepertinya tidak menghapus hak "Tolak" dari nama saya dari daftar ini.
Satu-satunya hal yang berhasil bagi saya adalah mengatur ulang semua izin dengan icacls "D:\test" /reset /T
perintah.
di windows 10 bekerja tanpa "c:>" dan ">"
Sebagai contoh:
F = Full Control
/e : Edit permission and kept old permission
/p : Set new permission
cacls "path file atau folder" / e / p UserName: F
(juga ini memperbaiki kesalahan 2502 dan 2503)
cacls "C: \ Windows \ Temp" / e / p UserName: F
Inilah yang bekerja untuk saya:
Buka secara manual folder yang aksesnya ditolak.
Pilih file Executable / application di folder itu.
Klik kanan padanya dan pergi ke Properties->Compatibility
Sekarang lihat Privilege Leveldan periksaRun As Administrator
Klik pada Change Settings for all users.
Masalahnya terpecahkan sekarang.