Não é possível atribuir permissões de grupo ao ICACLS no Windows Server 2012

8

Não consigo fazer com que icacls aceitem meu grupo para adicionar permissões. Estou usando um shell de energia elevado com o seguinte comando:

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

Eu recebo o seguinte erro:

Invalid parameter "Group Foo"

Eu tentei usar o SUID também, mas isso também falha. Eu também tentei 'Domain \ Group Foo'

Eu tenho um monte de arquivos que estou tentando permitir que um grupo use. Qual é a maneira correta de adicionar permissões em massa no Windows Server 2012?

- EDITAR

E:\> icacls "E:/Contact Numbers.xlsx" /grant:r "Users":f
Invalid parameter "Users"
    
por user319862 17.06.2013 / 14:37

1 resposta

9

Use aspas duplas em vez de aspas simples:

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

Senti falta de você estar usando o Powershell, não cmd . Powershell tem alguma estranheza quando mistura comandos externos e citações. Aqui estão alguns exemplos usando o Powershell.

PS v2: Para passar as aspas para icacls , você deve evitá-las com um acento circunflexo. Observe que os parênteses ao redor do "F" também precisam ser salvos.

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

PS v3: A versão 3 oferece uma nova seqüência de escape --% (traço, traço, porcentagem) que escapa do restante da linha. Isso faz com que até mesmo parâmetros externos complexos sejam simples.

PS C:\>icacls --% "C:/foo" /grant:r "Users":F
    
por 17.06.2013 / 14:43