递归设置NTFS权限

时间:2013-03-13 21:48:57

标签: powershell recursion permissions batch-file ntfs

所以基本上我们有一个大型共享驱动器,其中包含许多顶级文件夹,每个文件夹包含许多子文件夹和文件。

E:\Share\%Username%
E:\Share\%Username%\Folder1
E:\Share\%Username%\Folder2
E:\Share\%Username%\Folder2\Folder3

在这些文件夹中的每一个都是文件 - 现在基本上随着时间的推移,权限已经变得混乱,而我想要做的事情基本上是取得顶层所有内容的所有权:

E:\Share\%username%\

但也要设置它,以便该文件夹中的任何内容都将从其父文件夹继承权限,所以在:

E:\Share\%Username%\[Whatever is at this level and below] (whether files or folders)

继承自:

E:\Share\%username%\

这可以通过批处理脚本进行吗?

2 个答案:

答案 0 :(得分:5)

以递归方式获取文件夹E:\ Share \%Username%\及其所有内容的所有权:

takeown /f "E:\Share\%Username%\" /r

答案 1 :(得分:3)

这里没有理由重新发明轮子,你可以在cmd提示符中使用Windows 7中的icacls,或者从PS中使用icacls,它是一个单行程序,可以获得所有权并具有递归内置功能。

你真正要做的是: 取得所有权(大部分时间可选) 设置继承 递归申请。

http://ss64.com/nt/icacls.html

如果您使用的是XP / 2003,则可以使用xcacls。