用Powershell管理NTFS权限的脚本示例

其实NTFS权限是可以用powershell简单管理的,这样就可以实现一些自动化的脚本管理。

今天看到一个总结得非常好的文章,先附上原文链接,然后我把里面部分内容挑出来做个笔记。

<https://blog.netwrix.com/2018/04/18/how-to-manage-file-system-acls-with-powershell-scripts/>

不过其实有一点一直不明白,就是windows系统为什么需要sharentfs两套权限系统,用户访问的权限是看他们两个较小的权限决定的。一般我看到大多数人的做法都是把share设置成authenticated users读写或者everyone读写。然后用户访问文件夹的权限用ntfs来控制。下面是正题:

<示例1 添加某个用户的ntfs权限到特定的文件夹>

target\newuser02添加Full Control权限到名为newuser02ntfs权限中。添加以后该权限应用于此文件,子文件夹和文件,可以被继承。

$acl = Get-Acl newuser02

$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(“target\newuser02″,”FullControl”,”ContainerInherit,ObjectInherit”,”None”,”Allow”)

$acl.SetAccessRule($AccessRule)

$acl | Set-Acl newuser02

<示例2 禁用/启用某个文件夹的权限继承>

使用$acl.SetAccessRuleProtection方法,两个参数的意思分别是:

第一个参数表示要禁用继承,两个可选状态是$true$false

第二个参数表示要保留原来的权限(改成个别权限)还是去掉继承的权限

其实熟悉权限设置的话很容易明白上面是干嘛的,只是本来用鼠标点的也可以用命令的意思啦。。

但是第二个如果要用$false的话一定要保证有可以再执行权限分配的账号才行。

$acl = Get-Acl newuser03

$acl.SetAccessRuleProtection($true,$false)

$acl | Set-Acl newuser03

以上就是用powershell管理ntfs的大概例子,具体还有很多参数比如移除权限,take ownership,复制整个文件夹权限到新文件夹等等都是可以简单做到的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注