You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在新建用户脚本中批量将多用户添加至多AD组?

如何在AD用户创建脚本中自动添加用户到指定组?

嘿,刚接触PowerShell一个月就能写AD用户创建脚本已经超棒啦!我来帮你把Add-ADPrincipalGroupMembership顺利整合进去,解决你用foreach没成功的问题~

先看看你给出的部分代码:

cls
#获取csv文件
$filepath = import-csv "C:\users.csv"
#设置变量...

其实核心思路很简单:在循环创建每个用户之后,立刻调用Add-ADPrincipalGroupMembership把用户加到指定组。我给你写个完整的示例,你可以直接参考调整:

cls
# 导入用户数据CSV
$users = Import-Csv "C:\users.csv"
# 定义要让用户加入的目标组(可以是组名、组DN或者SID,这里用组名举例)
$targetGroup = "SalesTeam"

# 遍历每个用户条目
foreach ($user in $users) {
    # 准备创建用户的参数(根据你的CSV字段调整,比如FullName、Username、Password这些)
    $createUserParams = @{
        Name              = $user.FullName
        SamAccountName    = $user.Username
        UserPrincipalName = "$($user.Username)@yourdomain.com"
        GivenName         = $user.FirstName
        Surname           = $user.LastName
        Enabled           = $true
        AccountPassword   = ConvertTo-SecureString $user.Password -AsPlainText -Force
        Path              = "OU=Users,DC=yourdomain,DC=com" # 指定用户所在OU,按需修改
    }

    # 创建AD用户
    New-ADUser @createUserParams

    # 关键步骤:把刚创建的用户添加到指定组
    Add-ADPrincipalGroupMembership -Identity $user.Username -MemberOf $targetGroup

    # 输出提示,方便确认进度
    Write-Host "用户 $($user.Username) 已创建并成功加入组 $targetGroup"
}

几个你可能需要注意的点:

  • 为什么之前foreach没成功? 大概率是没在循环里针对每个刚创建的用户调用Add-ADPrincipalGroupMembership,或者-Identity参数没指定正确(用用户名、用户DN或SID都可以,用户名最直观)
  • 如果每个用户要加不同的组? 可以在CSV里新增一列(比如GroupName),然后把-MemberOf改成$user.GroupName就行
  • 支持多组添加:如果要让用户加入多个组,直接给-MemberOf传数组就行,比如-MemberOf "SalesTeam", "RemoteUsers"
  • 加个错误处理更稳妥:如果怕某个用户创建失败导致整个脚本停掉,可以套个try/catch:
foreach ($user in $users) {
    try {
        $createUserParams = @{
            # 同上的参数
        }
        # 加上-ErrorAction Stop让错误触发catch
        New-ADUser @createUserParams -ErrorAction Stop
        Add-ADPrincipalGroupMembership -Identity $user.Username -MemberOf $targetGroup -ErrorAction Stop
        Write-Host "✅ 成功处理用户 $($user.Username)" -ForegroundColor Green
    }
    catch {
        Write-Host "❌ 处理用户 $($user.Username) 失败:$($_.Exception.Message)" -ForegroundColor Red
    }
}

记得运行脚本的账户要有创建AD用户和添加组成员的权限哦~

内容的提问来源于stack exchange,提问作者WebsGhost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:37:09