使用PowerShell通过CSV分配NTFS权限

我有一个CSV文件如下

文件夹名称 ———- 安全组

Folder1 ———- SG_Folder1-Access

Folder2 ———- SG_Folder2-Access

我需要像下面这样分配权限,

所以安全组“SG_Folder1-Access”将修改“文件夹1”的访问权限

安全组“SG_Folder2-Access”将修改“文件夹2”的访问权限

我有500个文件夹和他们自己的安全组,需要创build一个权限shell脚本来分配权限。

任何帮助将非常感激。

谢谢

你可以尝试下面的脚本:

 $acl = Get-Acl "\\$servername\folderpath" $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("domain\user or usergroup","Modify", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users","Modify", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) Set-Acl "\\$servername\folderpath" $acl 

这里有帮助的信息链接。 http://tomandersonpro.net/ntfs-permissions-with-powershell/

https://blogs.technet.microsoft.com/josebda/2010/11/12/how-to-handle-ntfs-folder-permissions-security-descriptors-and-acls-in-powershell/

 $CSV= Get-Content $CSVFileName foreach ($line in $CSV) { $folder= $line.split(";")[0] $group= $line.split(";")[1] $acl= Get-Acl $folder $ar = New-Object system.security.accesscontrol.filesystemaccessrule($group,"Modify","Allow") $acl.SetAccessRule($ar) $Set-Acl $folder $acl } 

我没有testing过,但这是一个基本的想法。 试着自己改进。

也请按照以下链接: Set-Acl Get-Acl MS Technet