批量更改文件夹权限的脚本

时间:2018-08-03 21:33:56

标签: windows powershell scripting permissions active-directory

我最近继承了一个烂摊子,我正在尝试编写解决方案的脚本...不幸的是,我在编写脚本时很糟糕。 有没有一种创建脚本的方法,该脚本将:

  1. 查找目录中的所有文件夹

  2. 通过名称标识它们

  3. 将它们绑定到正确的用户(文件夹名称与AD用户名相同)

  4. 设置用户权限(对匹配的用户具有完全控制权-其他域用户没有权限)

我一直在尝试使用类似的东西...但是我对变量如何工作的理解在这里很差。

$Acl = Get-Acl "C:\MyFolder"
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule("$username","FullControl","Allow")
$Acl.SetAccessRule($Ar)
Set-Acl "C:\MyFolder" $Acl

如果有人愿意帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试利用NTFS模块。

文件系统安全PowerShell模块4.2.3

使用PowerShell可以更轻松地管理文件和文件夹的权限

  

https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85

#Get permissions from all files or folders in the current folder 
dir | Get-NTFSAccess 

#to read and also remove only the explicitly assigned ones 
dir | Get-NTFSAccess -ExcludeInherited | Remove-NTFSAccess 


#to backup permissions just pipe what Get-NTFSAccess returns to Export-Csv 
dir | Get-NTFSAccess -ExcludeInherited | Export-Csv permissions.csv 

#to retore the permissions pipe the imported data to Get-NTFSAccess 
#As the imported data also contains the path you do not need to specify the item 
Import-Csv .\permissions.csv | Get-NTFSAccess 
  

https://www.powershellgallery.com/packages/NTFSSecurity/4.2.3