Batch file icacls拒绝删除所有不工作的人

Batch file icacls拒绝删除所有不工作的人,batch-file,windows-8,permissions,cacls,icacls,Batch File,Windows 8,Permissions,Cacls,Icacls,我试图拒绝所有用户删除文件。我希望任何用户都能够读取或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用下面的代码之后,甚至没有人可以首先访问该文件 icacls pic.jpg /deny Everyone:(D) 我尝试过授予一些权限和拒绝其他权限,但都没有效果。(在Windows 7/8上)如何实现这一点?要保护您必须使用的文件: icacls pic.jpg /deny Everyone:(DE) 要使用文件夹的内容保护文件夹,请使用: icacls pics /deny

我试图拒绝所有用户删除文件。我希望任何用户都能够读取或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用下面的代码之后,甚至没有人可以首先访问该文件

icacls pic.jpg /deny Everyone:(D)

我尝试过授予一些权限和拒绝其他权限,但都没有效果。(在Windows 7/8上)如何实现这一点?

要保护您必须使用的文件:

icacls pic.jpg /deny Everyone:(DE)
要使用文件夹的内容保护文件夹,请使用:

icacls pics /deny Everyone:(OI)(CI)(DE,DC)
D是不同访问权限的组合,如果您想授予删除文件的权限

要使此语言独立,请使用
*S-1-1-0
而不是
所有人


(OI)
=对象继承
(CI)
=容器继承

要保护文件,必须使用:

icacls pic.jpg /deny Everyone:(DE)
要使用文件夹的内容保护文件夹,请使用:

icacls pics /deny Everyone:(OI)(CI)(DE,DC)
D是不同访问权限的组合,如果您想授予删除文件的权限

要使此语言独立,请使用
*S-1-1-0
而不是
所有人


(OI)
=对象继承
(CI)
=容器继承

要防止删除文件,您需要拒绝对文件的删除权限,并拒绝对包含的文件夹的删除子文件夹和文件的权限(也称为“删除子文件夹和文件”)。为了真正防止删除,两者都不能被允许

换句话说,如果授予其中一个或两个权限,Windows允许删除文件

因此,假设您正在保护foo\bar.txt不被删除,您至少应该:

icacls foo\bar.txt /deny Everyone:(DE) *S-1-5-7:(DC)
icacls foo /deny Everyone:(DC) *S-1-5-7:(DC)
请注意,我在拒绝列表中包括了S-1-5-7(匿名登录),因为,而且最好还是显式拒绝匿名登录

编辑:请注意,在
icacls
中,(D)权限与(DE)权限不同。前者包括同步权,后者仅是删除权。如果您拒绝同步权限,您可能无法访问(浏览或
CD
DIR
打开)该文件夹

警告:
icacls
存在一个错误,仅(DE)权限被拒绝的文件在查询时将显示为
(拒绝)(D)
,而不是
(拒绝)(DE)
。报告于。如上所述(D)和(DE)
不同。

要防止删除文件,您需要拒绝对文件的删除权限,并拒绝对包含的文件夹的删除子文件夹权限(也称为“删除子文件夹和文件”)。为了真正防止删除,两者都不能被允许

换句话说,如果授予其中一个或两个权限,Windows允许删除文件

因此,假设您正在保护foo\bar.txt不被删除,您至少应该:

icacls foo\bar.txt /deny Everyone:(DE) *S-1-5-7:(DC)
icacls foo /deny Everyone:(DC) *S-1-5-7:(DC)
请注意,我在拒绝列表中包括了S-1-5-7(匿名登录),因为,而且最好还是显式拒绝匿名登录

编辑:请注意,在
icacls
中,(D)权限与(DE)权限不同。前者包括同步权,后者仅是删除权。如果您拒绝同步权限,您可能无法访问(浏览或
CD
DIR
打开)该文件夹

警告:
icacls
存在一个错误,仅(DE)权限被拒绝的文件在查询时将显示为
(拒绝)(D)
,而不是
(拒绝)(DE)
。报告于。如上所述(D)和(DE)
它们不一样。

谢谢!我正要离开[这个列表[(),它不包括
DE
!我应该在命令提示符下键入
icacls
,找到这个
DE
选项。别担心,我也在那里呆了一段时间。试试
icacsl pics/deny Everyone:(OI)(CI)(DE)
,所以(DE)由所有包含的对象和容器继承。我假设您无法阻止本地管理员删除文件。我在我的计算机上本地尝试了此操作。我的正常工作帐户为works。当我使用提升的管理员帐户时,我也可以删除文件。我认为“完全访问”覆盖拒绝(DE),这是您应该从FULL-Access中获得的。找到了。更改了答案。谢谢!我刚从[此列表[()中退出,其中不包括
DE
!我应该在命令提示符下键入
icacls
,以找到此
DE
选项。别担心,我刚才也在那里。尝试
icacsl图片/拒绝所有人:(OI)(CI)(DE)
,因此(DE)被所有包含的对象和容器继承。我假设您无法阻止本地管理员删除文件。我在本地计算机上尝试了此操作。我的正常工作帐户为works。当我使用提升的管理员帐户时,我也可以删除文件。我认为“完全访问”覆盖拒绝(DE),这是您应该从FULL-Access获得的。找到它。更改了答案。