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

Azure自动化账户连接Az与MgGraph报错:字符串无法转SecureString

问题分析与解决:Azure自动化Runbook中Connect-MgGraph的AccessToken报错

原因分析

核心问题是参数类型不匹配:

  • Get-AzAccessToken返回的$token.Token是普通字符串类型
  • 当前版本的Connect-MgGraph的-AccessToken参数要求传入SecureString类型(一种加密的安全字符串,不是明文字符串)
  • 博客中的代码基于旧版Microsoft Graph PowerShell模块编写,当时-AccessToken参数还支持普通字符串;模块更新后参数类型要求变更,直接传明文字符串就会触发类型转换失败的报错。

解决办法

方案1:将字符串Token转换为SecureString

修改代码,把明文Token转成符合要求的SecureString类型即可,代码如下:

# Connect to Microsoft Graph within Azure Automation
Connect-AzAccount -Identity
$token = Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com"
# 将普通字符串转为SecureString
$secureToken = ConvertTo-SecureString $token.Token -AsPlainText -Force
Connect-MgGraph -AccessToken $secureToken

方案2:直接用托管身份连接(更推荐)

如果Azure自动化账户已配置系统托管身份,可直接通过-Identity参数连接Microsoft Graph,无需中转获取Token,代码更简洁:

# 直接用自动化账户托管身份连接Microsoft Graph
Connect-MgGraph -Identity

注意:使用此方案前,需确保自动化账户的托管身份已被授予Microsoft Graph的对应权限(比如设置AAD账户审计属性所需的权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:42:15