Unable to assign group permissions with ICACLS on Windows Server 2012
Use double quotes instead of single quotes:
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
I missed that you were using Powershell, not
cmd. Powershell has some high weirdness when mixing external commands and quoting. Here's a couple examples using Powershell.
PS v2: To pass the quotes onto
icacls you must escape them with a caret. Note parenthesis around the "F" need escaped as well.
PS C:\>icacls `"C:/foo`" /grant:r `"Users`":`(F`)
PS v3: Version 3 offers a new escape sequence
--% (dash, dash, percent) which escapes the remainder of the line. This makes even complex external parameters simple.
PS C:\>icacls --% "C:/foo" /grant:r "Users":F