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

PowerShell如何提升并行执行阈值,将现有foreach循环改造为并行批量创建AzAD用户

PowerShell 批量创建Azure AD用户并行改造方案

注意:ForEach-Object -Parallel 语法仅支持 PowerShell 7.0及以上版本,Windows系统默认预装的PowerShell 5.1不支持该特性,请先确认运行环境版本。

修改后代码

# 自定义并行并发阈值,可根据实际需求调整,不建议设置过高避免触发Azure AD接口限流
$parallelThrottleLimit = 5

Import-Csv -Delimiter "," $importCSV | ForEach-Object -ThrottleLimit $parallelThrottleLimit -Parallel {
    $Displayname = $_.DisplayName
    $UserPrincipalName = $_.UserPrincipalName
    $MailNickname = $_.MailNickname
    $password = $_.Password
    $SecureStringPassword = ConvertTo-SecureString -String $password -AsPlainText -Force

    New-AzADUser -DisplayName $Displayname -UserPrincipalName $UserPrincipalName -Password $SecureStringPassword -MailNickname $MailNickname -ForceChangePasswordNextLogin:$false | Select-Object -ExpandProperty UserPrincipalName
}

核心修改说明

  • 替换原有foreach关键字遍历逻辑为管道+ForEach-Object -Parallel并行语法,直接承接CSV读取的用户列表作为输入
  • 通过-ThrottleLimit参数控制并发执行的线程数,调整参数值即可修改并行阈值
  • 并行执行块内,管道传入的单条用户数据用$_指代;如果需要引用并行块外部定义的变量,需给变量添加$using:前缀,示例:$using:外部变量名

注意事项

  • 执行代码前请先通过Connect-AzAccount完成Azure账号登录,确保账号具备Azure AD用户创建权限,并行执行会自动继承当前会话的认证上下文
  • 建议先小范围测试调整并发阈值,避免并发过高触发Azure AD服务端限流,导致部分用户创建失败
  • 如有排查需求,可在New-AzADUser后添加错误捕获逻辑,记录创建失败的用户信息便于后续处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:24:03