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"
pengguna319862
sumber

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
jscott
sumber
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! :)

Josh Vance
sumber