Tidak dapat menetapkan izin grup dengan ICACLS di Windows Server 2012


9

Saya tidak bisa mendapatkan icacl untuk menerima grup saya untuk menambahkan izin. Saya menggunakan shell daya yang ditinggikan dengan perintah berikut:

icacls 'C:/foo' /grant:r 'Group Foo':f

Saya mendapatkan kesalahan berikut:

Invalid parameter "Group Foo"

Saya telah mencoba menggunakan SUID juga, tetapi itu gagal juga. Saya juga sudah mencoba 'Domain \ Group Foo'

Saya memiliki banyak file yang saya coba izinkan untuk digunakan grup. Apa cara yang tepat untuk menambahkan izin massal di Windows Server 2012?

- EDIT -

E:\> icacls "E:/Contact Numbers.xlsx" /grant:r "Users":f
Invalid parameter "Users"

Jawaban:


10

Gunakan tanda kutip ganda sebagai ganti tanda kutip tunggal:

C:\>mkdir foo

C:\>icacls 'C:/foo' /grant:r 'Users':f
'Users': No mapping between account names and security IDs was done.
Successfully processed 0 files; Failed processing 1 files

C:\>icacls "C:/foo" /grant:r "Users":f
processed file: C:/foo
Successfully processed 1 files; Failed processing 0 files

Saya rindu bahwa Anda menggunakan Powershell, bukan cmd. Powershell memiliki keanehan yang tinggi ketika mencampur perintah eksternal dan mengutip. Berikut beberapa contoh menggunakan Powershell.

PS v2: Untuk meneruskan tanda kutip, icaclsAnda harus melarikan diri dengan tanda sisipan. Perhatikan tanda kurung di sekitar "F" yang perlu diloloskan juga.

PS C:\>icacls `"C:/foo`" /grant:r `"Users`":`(F`)

PS v3: Versi 3 menawarkan urutan pelarian baru --%(tanda hubung, tanda hubung, persen) yang lolos dari sisa baris. Ini membuat parameter eksternal lebih kompleks.

PS C:\>icacls --% "C:/foo" /grant:r "Users":F

Lihat hasil edit saya di atas. Ini juga tidak berhasil. Perhatikan bahwa saya mendapatkan kesalahan "Parameter tidak valid" dan bukan "Tidak memetakan di antara nama akun"
— user319862

Saya hanya mencoba lagi menggunakan command prompt alih-alih power shell dan itu berhasil. Tidak tahu apa masalahnya, tapi terima kasih atas sintaks yang benar.
— user319862

Maaf, benar-benar melewatkan bahwa Anda menggunakan PS. Diperbarui untuk menyertakan contoh PS 2/3.
— jscott

Untuk orang yang mengeluh itu tidak berfungsi, Anda harus menggunakan perintah di Command Prompt. Perintah tidak bekerja di PowerShell.
— Mike G

1

Itu tidak akan membiarkan saya mengomentari utas jscott tetapi untuk membuat perintah Anda berjalan dengan baik di Powershell, Anda harus menambahkan tanda kutip di seluruh parameter, dengan demikian:

    C:\> icacls .\foo /grant:r "Users:F"

Ini akan berfungsi untuk nama grup yang memiliki spasi di dalamnya, serta perintah termasuk izin bawaan.

    C:\> icacls .\foo /grant:r "Remote Desktop Users:(OI)(CI)(F)"

Jika ragu, selalu terapkan tanda kutip di sekitar parameter lengkap. Semoga ini membantu! :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.