Windows

無法在 Windows Server 2012 上使用 ICACLS 分配組權限

  • July 19, 2019

我無法讓 icacls 接受我的組以添加權限。我正在使用帶有以下命令的提升的電源外殼:

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

我收到以下錯誤:

Invalid parameter "Group Foo"

我也嘗試過使用 SUID,但也失敗了。我也試過’Domain\Group Foo'

我有一堆文件試圖讓一個組使用。在 Windows Server 2012 中添加海量權限的正確方法是什麼?

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

使用雙引號而不是單引號:

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

我錯過了您使用的是 Powershell,而不是cmd. Powershell 在混合外部命令和引用時有一些奇怪的地方。下面是幾個使用 Powershell 的範例。

PS v2:要將引號傳遞給icacls您必須用插入符號轉義它們。注意“F”周圍的括號也需要轉義。

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

PS v3:版本 3 提供了一個新的轉義序列--%(破折號、破折號、百分比),它轉義了行的其餘部分。這使得複雜的外部參數變得簡單。

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

引用自:https://serverfault.com/questions/516324