Windows 2003; 查找具有非inheritance/更改权限的文件夹

问题是 :我正在寻找一种审计/search目录结构(Windows 2003)的好方法,并find任何不从父级inheritance权限的文件夹 – 或者添加其他用户/组。

后面的故事

我们正在将旧版本的Windows 2003文件服务器迁移到2008 R2版本。 这个旧的服务器是从NT4迁移过来的。 大多数当前文件夹使用旧的(不build议使用的)Domain \ Administrators和Domain \ Users组。 这些是仍然在AD中的组,我不能使用2008 R2权限的权限。

因此,在我将所有从旧服务器共享的数据复制到新的之前,我首先需要对旧共享的权限进行“现代化”。 但是,我知道在过去的几十年中,一些[无文档]文件夹的权限被修改为不从父代inheritance或添加其他用户。 因此,我寻求一种方法来find他们!

我会build议使用Powershell(对于Win2003: http : //support.microsoft.com/kb/968929/en-us )和一个额外的附加模块( http://gallery.technet.microsoft.com / scriptcenter / 1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 )。

这将帮助你首先得到一个文件夹结构的inheritance(从你的startfolder运行时),例如。

get-childitem -Recurse | get-inheritance | export-CSV C:\Inheritance.csv -NoTypeInformation 

你将得到所有的文件和文件夹在一个csv,然后可以在Excel或其他数据库,如果你需要过滤。

NTFSSecurity模块的其他好处是,您可以在迁移过程中使用类似的Powershell脚本更改inheritance或ACL。

例如,你可以完整地删除文件夹(你的开始文件夹)中的inheritance:

 get-childitem | Disable-Inheritance 

或再次为所有子文件夹/文件添加-recurse开关。

希望这个帮助干杯

SetACL很简单。 像这样运行它:

 SetACL -on "some path" -ot file -actn list -lst f:csv -rec cont 

该命令指示SetACL 仅从具有显式权限的对象中打印权限, 可能是因为ACE已添加到启用了inheritance的目录中,或者由于禁用了inheritance,并且设置了新的ACE。

SetACL处理超过260个字符的path,并列出来自任何目录的ACE,而不pipe当前的权限如何,即使你甚至没有读取权限SetACL显示你有什么,并打印权限(需要pipe理员权限)。