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

如何通过导入CSV批量更新AzureAD用户的Manager属性?

错误原因排查
  • CSV列名不匹配:你的CSV文件列是UserPrincipalName和Manager,但脚本里用了$row.'User Username'和$row.'Manager Username',导致读取不到有效数据,传给Get-AzureADUser的参数为null,触发报错。
  • 缺少存在性校验:未提前检查CSV中的用户/经理UPN是否在AzureAD中存在,若遇到无效UPN会直接抛出错误。
修正后的PowerShell脚本
# 导入CSV文件(确保列名是UserPrincipalName和Manager)
$data = Import-Csv C:\Users\LongTran\Desktop\TW\List\manager2.csv

# 遍历每一行数据
foreach ($row in $data) {
    $userUPN = $row.UserPrincipalName
    $managerUPN = $row.Manager

    Write-Host "正在处理用户: $userUPN,设置经理为: $managerUPN" -ForegroundColor Yellow

    # 获取目标用户对象
    $targetUser = Get-AzureADUser -Filter "UserPrincipalName eq '$userUPN'" -ErrorAction SilentlyContinue
    # 获取经理用户对象
    $managerUser = Get-AzureADUser -Filter "UserPrincipalName eq '$managerUPN'" -ErrorAction SilentlyContinue

    # 校验用户和经理是否存在
    if (-not $targetUser) {
        Write-Host "错误:用户 $userUPN 在AzureAD中不存在" -ForegroundColor Red
        continue
    }
    if (-not $managerUser) {
        Write-Host "错误:经理 $managerUPN 在AzureAD中不存在" -ForegroundColor Red
        continue
    }

    # 执行经理更新操作
    try {
        Set-AzureADUserManager -ObjectId $targetUser.ObjectId -RefObjectId $managerUser.ObjectId -ErrorAction Stop
        Write-Host "用户 $userUPN 的经理已成功更新为 $managerUPN" -ForegroundColor Green
    }
    catch {
        Write-Host "更新用户 $userUPN 失败:$($_.Exception.Message)" -ForegroundColor Red
    }
}
脚本说明
  1. 列名匹配:直接使用CSV的真实列名UserPrincipalName和Manager读取数据,避免空值传递。
  2. 存在性校验:用-Filter查询用户,配合-ErrorAction SilentlyContinue避免直接报错,提前判断用户是否存在。
  3. 异常捕获:用try/catch包裹更新操作,捕获并输出具体错误信息,避免脚本中断。
  4. 清晰提示:不同状态用不同颜色区分,便于排查执行情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:23:27