旧的Windows 2003框持有共享文件夹正在退役。 有一个文件夹被共享,在这个文件夹内是每个用户一个文件夹。 每个文件夹都将该用户添加到具有完全权限的安全性中。 然后,任何用户创build子文件夹下面…
我想这样做,所以他们只能在退役前的下个月从他们的文件夹中读取。 因此,删除完整和写入权限,为每个用户。
在Linux中这将是chmod -R 550。 (之前他们有类似770的东西)
它看起来像CACLS将是我想在Windows世界中使用,但它看起来像你将不得不为它指定一个用户名。 我不能剥夺*的写入权限。 所以我需要在Windows 2003盒子上有几千个文件夹的recursion批处理脚本来读取用户名,文件,并修改该用户名的文件权限。
这看起来很头疼,即使它有效(我不相信它不会破坏一切)。
有更容易的方法吗? 例如,如果我将所有对象的权限添加到根文件夹并拒绝写入权限,那么这是否优先于用户个人权限? 或者有没有一种方法,我没有看到去除写入权限,而不是在脚本中定义每个用户/文件夹?
一种方法是授予Domain Users
组在父文件夹上的适当权限,并检查在父文件夹上的“高级安全设置”中选中“ Replace all existing inheritable permissions on all descendants with inheritable permissions from this object
checkbox。 这将用来自父文件夹的权限replace所有子文件夹上的权限。
我相信我find了一个合适的非复杂脚本,能够做我所需要的。
for /F "tokens=1,2,3 delims=:" %%i in (fixacl.lst) do xcacls d:\share\%%i /T /g CONTOSO\%%i:R Administrators:F /Y
这应该包含一个用户名列表(或一个目录列表,因为每个目录都有一个关联的用户,反之亦然,1:1),然后用domain \ username:readonly和Administrator:完全控制recursion地覆盖权限。 由于它是基于一个列表,我不必担心具有不同名称的子目录。
在粗糙的psudo代码…
For each line in the file fixacl.lst Grab the name and set it to the variable %%i then xcalcs on the directory of that name With xcalcs options for recursive and replace Read Only for that user Full control for the administrator and Yes to everything
最简单的答案是更改共享本身的权限。 如果将用户组或用户单独添加到共享中,则将其更改为“阅读”。