如何使用Windows命令行授予用户对目录的权限(读、写、修改)?
当前回答
XCACLS。VBS是一个非常强大的脚本,可以更改/编辑ACL信息。c: \ windows \ system32系统\ cscript.exe xcacls。VBS help返回所有开关和选项。
您可以从Microsoft Support Page获得官方发布
其他回答
我是管理员,一些脚本在一个目录中的所有文件和子文件夹上对我的名字设置了“拒绝”权限。执行icacls“D:\test”/grant John:(OI)(CI)F /T命令没有工作,因为它似乎没有从这个列表中删除我的名字中的“拒绝”权利。
对我来说唯一有效的是用icacls的"D:\test" /reset /T命令重置所有权限。
打开命令提示符,然后执行以下命令:
icacls“c:\ someelocation \of\path”/q /c /t /grant
F表示完全访问。
/q /c /t为子文件夹应用权限。
注意:有时“以管理员身份运行”会有所帮助。
损坏权限:重新获得对文件夹及其子对象的访问权
虽然这个问题的大部分答案都有一定的价值,但恕我直言,没有一个答案是完整的。下面(可能)是Windows 7的一个完美的解决方案,如果你被损坏的权限设置锁定的文件夹:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
对于Windows 10,用户/SID必须在/remove:d选项后指定:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
. 注:
The command is applied to the specified directory. Specifying the user "Everyone" sets the widest possible permission, as it includes every possible user. The option "/remove:d" deletes any explicit DENY settings that may exist, as those override explicit ALLOW settings: a necessary preliminary to creating a new ALLOW setting. This is only a precaution, as there is often no DENY setting present, but better safe than sorry. The option "/grant" creates a new ALLOW setting, an explicit permission that replaces (":r") any and all explicit ALLOW settings that may exist. The "F" parameter (i.e. the permission created) makes this a grant of FULL control. The "/T" parameter adds recursion, applying these changes to all current sub-objects in the specified directory (i.e. files and subfolders), as well as the folder itself. The "(OI)" and "(CI)" parameters also add recursion, applying these changes to sub-objects created subsequently. .
附录(2019/02/10)-
上面的Windows 10命令行是今天好心推荐给我的,所以就在这里。我还没有Windows 10来测试它,但是如果你有的话请尝试一下(然后请在下面发表评论)。
第一步更改只涉及删除DENY设置。可能没有任何DENY设置,所以该选项可能没有区别。我的理解是,在Windows 7上,你不需要在/remove:d后指定用户,但我可能错了!
.
附录(2019/11/21)-
用户astark建议将Everyone替换为术语*S-1-1-0,以便命令独立于语言。我只有英文版的Windows安装,所以我不能测试这个建议,但它似乎是合理的。
当我运行命令时:
icacls "c:/path/to/folderA/folderB" /grant:r Everyone:(OI)(CI)F /T
folderB中的文件都没有被处理,这是通过输出消息表示的:
Successfully processed 0 files; Failed processing 0 files
然而,一旦我将指定的路径更改为父目录(“c:/path/to/folderA”)并重新运行命令,folderB中的所有文件都被成功处理。
注意:如果您希望folderA中的任何其他文件/文件夹不被处理,请在运行上述命令之前尝试将所有这些文件/文件夹移动到不同的位置。
希望这对遇到同样问题的人有所帮助。
您也可以使用ICACLS。
赋予文件夹“Users”组“Full Control”权限。
>icacls "C:\MyFolder" /grant Users:F
为C:\MyFolder授予IIS用户修改权限(如果您需要,您的IIS具有将文件R/W到特定文件夹的能力):
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
如果你做ICACLS /?您将能够看到所有可用的选项。
推荐文章
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?
- #定义WIN32_LEAN_AND_MEAN具体排除了什么?
- 如何添加一个设置路径只执行批处理文件?
- 最好的轻量级web服务器(只有静态内容)的Windows
- npm犯错!错误:EPERM:操作不允许,重命名
- 崇高的文本从命令行
- 如何保持Python脚本输出窗口打开?
- 使用.bat文件检查文件夹是否存在
- 如何查看Windows库(*.lib)的内容
- 在Windows中删除大文件夹最快的方法是什么?
- NPM卡住给出相同的错误EISDIR:对目录的非法操作,读取错误(本机)
- Windows 10环境变量太大
- 如何使用Windows命令行更改目录
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- Objective-C for Windows