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