在Windows 10上,授予用户创建,编辑和删除文件夹C:\ VMs中的文件的权限,但是防止删除文件夹本身

问题描述:

我需要用户能够访问和修改文件夹C:\中的内容虚拟机。我使用https://ss64.com/nt/icacls.html作为指导。在页面的底部有一个命令列表来完成我所需要的,但第一个命令不起作用。在Windows 10上,授予用户创建,编辑和删除文件夹C: VMs中的文件的权限,但是防止删除文件夹本身

在PowerShell中,我打字

icacls.exe "C:\VMware" /inheritance:r /grant:r testuser:(OI) (CI) (F) 

,并正在错误

The term 'OI' is not recognized as the name of a cmdlet... 

我使用不同的间距和报价,喜欢尝试各种迭代,但还没有任何运气。

问题是,brackets have a special meaning in Powershell。如果要将它们按原样传递给外部程序,则必须引用它们。您链接到的文章假设您使用的是旧式命令外壳,在此情况下,该命令外壳并未赋予括号特殊的含义。使这项工作

一种方法是使用反引号作为转义字符:

icacls test /grant Everyone:`(OI`)`(CI`)`(RX`) 

既然你运行的是Windows 10,你可以使用stop-parsing symbol代替:

icacls test --% /grant Everyone:(OI)(CI)(RX) 

停止 - 解析符号需要Powershell 3或更高版本,所以它不能在Windows 7机器上直接使用,但在Windows 10上,您会好起来的。