none
采用命令行的方式如何在AD域里批量建立多个组并为每个组添加相应的成员 RRS feed

  • 问题

  • 我最近想利用AD域账号来管理存储权限,希望采用批量操作的方式。

    AD域账号我们已有,采用中石油的。

    首先要批量建立或删除组(这个组是我们的项目组,是动态的),然后要把AD域的相应成员加到组里面。

    最后批量为存储授权,采用组名和目录名一致,也就是说KT00100 组授权给 KT00100目录,仅让改组成员看到该目录KT00100KT00101 组授权给 KT00101目录,仅让改组成员看到该目录KT00101,以此类推。

    不知你有什么好的建议?

    谢谢!

    序号 组名 成员
    1 KT00100 user0
    2 KT00101 user0 user1 user2 user3
    3 KT00102 user0 user4 user5 user6
    4 KT00103 user0 user7
    5 KT00104 user0 user8 user9
    6 KT00105 user0
    7 KT00200 abc0
    8 KT00201 abc0  abc1 abc2 abc3
    9 KT00202 abc0  abc1 abc2 abc3 abc4 abc5
    2017年9月29日 0:23

全部回复

  • 您好,

    根据我的研究,我建议您可以通过尝试如下步骤来达成您的需求,希望对您有所帮助:
    1. 您可以尝试将表格制成如下格式并保存为逗号分隔的CSV文件,为了使之后的PowerShell脚本正常运行,建议您可以新建一个临时用户tempuser,并填满空缺的成员单元格,等到脚本执行完成后删除该用户即可:


    2. 接下来,可以尝试通过如下的PowerShell脚本进行批量操作:
    $csv = Import-Csv -Path 'C:\Pro\t.csv' # 导入CSV文件,请将‘C:\Pro\t.csv’修改为您的路径
    foreach ($data in $csv)
    {
        # 新建组
        New-ADGroup -Name $data.Group -GroupScope Global -GroupCategory Security -Path 'OU=CASE,DC=16ds,DC=com' # 请将'OU=CASE,DC=16ds,DC=com'修改为您的OU
    
        # 添加组成员
        Add-ADGroupMember -Identity $data.Group -Members $data.Member1,$data.Member2,$data.Member3,$data.Member4
    
        # 添加NTFS权限
        $acl = Get-Acl -Path ('C:\CASE\' + $data.Group) # 请将('C:\CASE\' + $data.Group)修改为您的文件夹路径
        $accessrule = New-Object System.Security.AccessControl.FileSystemAccessRule ($data.Group, 'Modify', 'ContainerInherit, ObjectInherit', 'None', 'Allow') # 此处添加的是修改权限
        $acl.SetAccessRule($accessrule)
        Set-Acl -Path ('C:\CASE\' + $data.Group) -AclObject $acl
    }

    谢谢
    Albert Ling

    Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2017年9月29日 6:45