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

Azure Runbook中使用系统托管身份连接AzureAD的技术求助

解决Azure Runbook中系统托管身份连接AzureAD的问题

1. 为系统托管身份配置Azure AD权限

  • 给Runbook所属自动化账户的系统托管身份分配必要的Azure AD角色,核心权限需求:
    • Directory.Read.All:读取AAD设备信息
    • Group.ReadWrite.All:管理AAD组的创建、成员添加/移除操作
  • 操作步骤:
    1. 进入Azure门户→目标自动化账户→左侧「身份」→「系统分配」,复制身份的对象ID
    2. 进入Azure AD→「角色和管理员」,搜索并选择对应角色(如「目录读写者」或自定义精细角色)→「添加分配」,粘贴上述对象ID完成权限分配

2. Runbook中连接AzureAD的正确代码

确保自动化账户已安装AzureAD或AzureADPreview模块,使用系统托管身份直接连接:

# 用系统托管身份连接AzureAD
Connect-AzureAD -Identity

# 若需明确指定租户,可添加TenantId参数
# Connect-AzureAD -Identity -TenantId "你的租户ID"

3. 完整的Mac设备分组Runbook示例

结合你的需求,完整流程代码如下:

# 用系统托管身份连接MS Graph(获取设备信息)
Connect-MSGraph -Identity

# 获取所有Mac设备,筛选架构信息
$macDevices = Get-MgDevice -Filter "operatingSystem eq 'macOS'" -Select id, displayName, deviceProperties

# 预定义两组的AAD组ID(可提前创建或在代码中动态创建)
$arm64GroupId = "arm64设备组ID"
$x64GroupId = "x64设备组ID"

# 遍历设备按架构分组添加
foreach ($device in $macDevices) {
    $processorArch = $device.deviceProperties["processorArchitecture"]
    $deviceObjectId = $device.Id

    switch ($processorArch) {
        "Arm64" {
            Add-AzureADGroupMember -ObjectId $arm64GroupId -RefObjectId $deviceObjectId
        }
        "X64" {
            Add-AzureADGroupMember -ObjectId $x64GroupId -RefObjectId $deviceObjectId
        }
    }
}

# 断开连接(可选)
Disconnect-AzureAD
Disconnect-MSGraph

注意事项

  • 自动化账户需提前安装AzureAD、Microsoft.Graph.Devices模块,可在「模块」页面添加或更新至最新版本
  • 系统托管身份的权限分配需等待数分钟生效,不要立即执行测试
  • 若使用AzureADPreview模块,连接命令一致,但部分cmdlet参数可能有差异,需留意版本兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:52:36