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

如何用PowerShell将Azure AD组成员转为JSON并添加新用户?

PowerShell处理AAD组成员JSON添加用户的最优方案

推荐方案:转换为JSON前合并用户

直接在PowerShell对象层面合并AD组成员和新增用户,再转换为JSON,是更高效、更可靠的方式。

示例代码

# 定义目标AAD组和新增用户邮箱数组
$AADGroup = "ExampleGroup1"
$UserName = @('user3@example.com')

# 获取AAD组成员的邮箱对象集合
$groupMemberObjects = Get-AzureADGroup -SearchString $AADGroup | Get-AzureADGroupMember | Select-Object Mail

# 将新增邮箱转换为与组对象结构一致的自定义对象
$newUserObjects = $UserName | ForEach-Object {
    [PSCustomObject]@{
        Mail = $_
    }
}

# 合并对象集合并转换为JSON
$combinedUserObjects = $groupMemberObjects + $newUserObjects
$combinedUserObjects | ConvertTo-Json

备选方案:直接修改JSON字符串

如果已有现成的JSON内容,也可以通过解析JSON为对象、添加新用户后再序列化回JSON的方式实现,但步骤更多。

示例代码

# 定义目标AAD组和新增用户邮箱数组
$AADGroup = "ExampleGroup1"
$UserName = @('user3@example.com')

# 获取原始JSON并解析为PowerShell对象
$originalJson = Get-AzureADGroup -SearchString $AADGroup | Get-AzureADGroupMember | Select-Object Mail | ConvertTo-Json
$parsedUserObjects = $originalJson | ConvertFrom-Json

# 转换新增用户为对象并添加到数组
$newUserObjects = $UserName | ForEach-Object {
    [PSCustomObject]@{
        Mail = $_
    }
}
$updatedUserObjects = $parsedUserObjects + $newUserObjects

# 重新转换为JSON
$updatedUserObjects | ConvertTo-Json

方案对比

  • 转换前合并(推荐):
    • 操作对象而非字符串,避免JSON解析/序列化的额外开销与潜在格式错误
    • 逻辑直观,代码维护性更强
    • 类型安全,不会出现JSON解析失败的情况
  • 直接修改JSON:
    • 多了两次格式转换步骤,效率略低
    • 依赖原始JSON的格式正确性,若JSON存在异常会导致解析失败
    • 仅适合已有现成JSON内容的场景,不适合从AD直接获取数据的流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:01:05