首页 文章

在Windows 7/8/10中通过CMD / Batch拒绝所有用户/管理员的所有文件夹权限

提问于
浏览
3

我需要拒绝所有用户的所有文件夹权限,包括管理员和其他组通过批处理文件 .

我找到了两个关于此的主题,但我无法解决我的问题

icacls Deny Everyone Directory Delete Permission

How to grant permission to users for a directory using command line in Windows?

此命令有效 icacls D:\Desktop\test /deny Administrator:(OI)(CI)(DE,DC) ,但此命令仅影响特殊权限:

enter image description here

但我需要否认所有其他权限,如图像:

enter image description here

我需要通过批处理拒绝所有用户(管理员,系统和其他用户)的所有权限,这样任何人都无法访问此文件夹,甚至不能访问系统或文件夹的创建者 .

2 回答

  • 1

    试试这个代码

    cacls D:\Desktop\Test /e /c /d %username%
    

    我希望我帮助过你,这会将权限更改为ALL拒绝 . 为了解决它,只需执行此代码即可

    cacls D:\Desktop\Test /e /c /g %username%:f
    
  • 2

    我想你应该在抱怨GUI出现之前了解更多有关NTFS权限(技术上,自由访问控制列表(DACL))的信息 .

    文件“属性”对话框中的“安全”选项卡对您可以允许的权限以及您可以拒绝的权限进行了有限的控制 . 您还应该了解内置用户组的用途,因为具体而言,GUI中出现的组永远不是您系统所拥有的组(它只显示在文件上应用了权限条目的用户或组) .

    现在,我将假设您要拒绝访问Everyone .

    首先:只需单击列表上所有用户的完全控制拒绝即可 .

    您需要为此拒绝两个组: Everyone 组和 Anonymous Logon 组 . (因为"Everyone" no longer includes anonymous logon since Windows XP

    在拒绝所有人之后,删除继承的权限条目也是一个好主意,因为它们不再适用并浪费您的系统一点时间来处理这些条目 .

    根据上面的指南,我认为你可以自学在GUI上操作所有这些 . 结果应如下所示:

    Advanced Security Settings for a folder that denies all access by everyone

    如果您仍然不知道该怎么做,这里是等效的命令行(使用icacls命令 - 由于 /inheritance 选项,您需要Windows Vista SP1或更高版本):

    rem /inheritance:r - Remove all inherited entries
    rem /deny - Set denial of permissions
    rem (OI) - "Object inherit" - Also applies to files within the folder
    rem (CI) - "Container inherit" - Also applies to subfolders
    rem (F) - "Full control"
    icacls /inheritance:r /deny "Everyone:(OI)(CI)(F)" "ANONYMOUS LOGON:(OI)(CI)(F)"
    

    如果名称“Everyone”或“Anonymous Logon”不适合您...

    icacls /inheritance:r /deny "*S-1-1-0:(OI)(CI)(F)" "*S-1-5-7:(OI)(CI)(F)"
    

    (是的,它是相同的,但指定SIDs代替用户名 . )

    这是一个 caveat 但是:文件的所有者可以随时更改权限 . 管理员可以至少更改自己的文件所有者 . 这些是您无法否认的系统授予的特殊权限,因此只需稍加努力,管理员就可以完成设置此DACL的所有过程 .

相关问题