我需要用户能够访问和修改文件夹 C:\VMs 中的内容。我正在使用 https://ss64.com/nt/icacls.html作为指南。在页面底部有一个命令列表,可以完全满足我的需要,但第一个命令不起作用。
我在 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 .如果要将它们按原样传递给外部程序,则必须引用它们。您链接到的文章假设您使用的是旧版命令 shell,在这种情况下,括号没有特殊含义。
完成这项工作的一种方法是使用反引号作为转义字符:
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 上就可以了。
关于windows - 在 Windows 10 上,授予用户在文件夹 C :\VMs, 中创建、编辑和删除文件的权限,但禁止删除文件夹本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45512216/