Batch file ICACLS无法处理子文件夹上的文件
目前,我正在处理一个批处理文件,以授予或拒绝所有用户执行批处理文件的权限 我面临的问题是,我正在处理的命令提供了一个输出,即“无法处理1个文件” 这是我正在编写的一段代码Batch file ICACLS无法处理子文件夹上的文件,batch-file,icacls,Batch File,Icacls,目前,我正在处理一个批处理文件,以授予或拒绝所有用户执行批处理文件的权限 我面临的问题是,我正在处理的命令提供了一个输出,即“无法处理1个文件” 这是我正在编写的一段代码 set locationfolder=C:\Users\Troy\Desktop\Log Folder icacls "%locationfolder%" /deny Everyone:F /T 这是我得到的结果 processed file: C:\Users\Users\Troy\Desktop\Log Folder C
set locationfolder=C:\Users\Troy\Desktop\Log Folder
icacls "%locationfolder%" /deny Everyone:F /T
这是我得到的结果
processed file: C:\Users\Users\Troy\Desktop\Log Folder
C:\Users\Users\Troy\Desktop\Log Folder\*: Access is denied
Successfully processed 1 files; Failed processing 1 files
现在,文件夹的子文件夹和子文件如下所示
日志文件夹
- 日志文件夹1
- 机密文件
- 日志文件夹2
- 日志文件夹3
- userdetails.txt
访问被拒绝的错误。这是我所期望的。
但是,如果输入C:\Users\Users\Troy\Desktop\Log Folder\Log Folder 1\Log Folder 2,则允许我浏览子文件夹的内容
从上面代码ie的输出可以推断出
C:\Users\Users\Troy\Desktop\Log Folder\*: Access is denied
这可能意味着对*的访问被拒绝,即对所有子文件夹和子文件的访问被拒绝,因此它们不会拒绝权限
我也尝试过这段代码,但结果是一样的
icacls "%locationfolder%" /deny "Everyone":(OI)(CI)F /T
我也尝试过其他目录,也在管理员模式下运行CMD,但都是徒劳的
另外,为了让您知道,如果我使用与/grant开关相同的代码,它将按预期工作。即
icacls "%locationfolder%" /grant Everyone:F /T
返回以下输出
Successfully processed 7 files; Failed processing 0 files
因此,无论问题是什么,似乎都与/deny开关有关
请帮助。在第一种情况下,您拒绝所有人访问该目录,因此显然/T
失败,因为它不允许列出该目录。您应该能够通过继承来完成此操作(例如icacls“%locationfolder%”/deny everyone:(OI)(CI)F
),假设所有子目录和文件的安全性都启用了继承。@eryksun如何确保在子目录中启用继承?对不起,如果我问了一个愚蠢的问题,我是一个初学者。另外,我尝试了两件事。首先,我尝试了使用您提到的命令icacls“%locationfolder%”/deny Everyone:(OI)(CI)F
它只在基本文件夹上工作,而不在我前面提到的子目录上工作。其次,我尝试在上面的命令上使用/T开关,它给出了与处理1个文件失败相同的错误。请帮助。最简单的选项是/reset/T
树,但前提是这是合理的,即不重置如果您对将丢失的单个文件和目录有自定义安全设置,则为安全性设置。@eryksun已修复该问题。我非常感谢您。希望您度过愉快的一天。