无法在Windows Server 2012上使用ICACLS分配组权限

我无法让icacls接受我的组来添加权限。 我使用以下命令使用高架电源shell:

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