用于更改 Windows 中同名子文件夹权限的脚本或实用程序

Posted

技术标签:

【中文标题】用于更改 Windows 中同名子文件夹权限的脚本或实用程序【英文标题】:Script or utility to change permissions on sub folder of the same name in Windows 【发布时间】:2012-11-23 04:12:19 【问题描述】:

我有一个名为 Projects 的父文件夹,在该文件夹下我有 400 多个具有单独文件夹名称的文件夹(例如 Project1、Project2 等)。在每个项目文件夹下都有一个名为 Management 的标准文件夹,它应该具有受限访问权限,但它们没有。我想在所有项目中更改此管理子文件夹的权限(相同的权限)。如果有人对如何执行此操作有任何想法,将不胜感激,谢谢。

斯科特。

【问题讨论】:

【参考方案1】:

这是一个简单的 Java 应用程序,可以满足您的要求。如果我误解了任何内容,您可能可以修复它,但我假设您的主要任务是弄清楚如何仅修改特定文件的权限。

我的解决方案是遍历当前目录的 fplders(即包含所有项目文件的目录),然后遍历每个项目文件夹以找到每个管理文件夹。然后,我使用icacls command 删除特定用户的权限。

    public static void main(String[] args) 
        File file = new File("directory path");
        Runtime runtime = Runtime.getRuntime();
        for(File pfolder : file.listFiles())  // Loop through project folders
            if(pfolder.isDirectory()) 
                for(File mfolder : file.listFiles())  // Find management folder
                    if(mfolder.getName().equals("Management")) 
                        try 
                            runtime.exec("icacls "+mfolder.getAbsolutePath()+" /deny USERNAME");
                         catch (IOException ex) 
                            ex.printStackTrace();
                        
                    
                
            
        
    

请务必修改初始目录值(使其成为绝对路径)和您要删除的权限的用户名。希望这会有所帮助!

【讨论】:

感谢 H31IX,我该如何运行这个 java 应用程序?我通常使用 vb 脚本的批处理文件,因此不确定如何运行您在此处发布的内容。此外,我想将此“管理文件夹”的权限更改为其他内容,而不仅仅是删除那里的内容,因此更改为域。仅限 local\management 和 domain.local\admins。不用急于回答,因为我相信您有更好的时间来处理,这当然值得赞赏。 很遗憾,我不能说我是拥有 Windows 权限的专家;我自己是一个linux人。我提供了源代码作为对解决方案的简单解释,但如果你确实需要它处于编译状态,我可以这样做,我只需要知道要执行的命令。 再次感谢,但我想我在这里想不通,我希望有一个脚本或批处理文件,我以前从未使用过 java oricacls,所以我只是在浪费你的时间问你在每一步都要做些什么。感谢您的及时回复和努力。

以上是关于用于更改 Windows 中同名子文件夹权限的脚本或实用程序的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本:递归更改文件权限

Windows命令行更改有线本地连接IP地址及DNS的bat脚本

“无法保存对SAM权限所做的更改”对这样的限制怎么突破

在 Windows 命令行中更改文件夹权限? [复制]

用于删除 CSV 文件第一行的 Unix 脚本

Bash 脚本 - 如何设置创建新文件的组?