在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上,您会好起来的。