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

从DAP迁移至GDAP+Exchange Online PowerShell v3时遇程序集加载错误

迁移GDAP+Exchange Online PowerShell v3时遇到Microsoft.IdentityModel.Tokens加载失败问题

为遵守微软2023年3月31日的迁移截止日期,我们正从DAP迁移至GDAP+Exchange Online PowerShell v3,严格遵循微软官方文档及代码示例操作,但所有调用Connect-ExchangeOnline的请求均失败,报错:Could not load file or assembly 'Microsoft.IdentityModel.Tokens'。已提交微软工单但无后续响应,微软支持曾确认GDAP关系配置正确、模块版本无误,但问题仍未解决。

已完成的操作

  • 在合作伙伴租户中创建新的多租户应用
    • 已配置Partner Center API的user_impersonation权限
  • 安装ExchangeOnlineManagement 3.1.0
  • 安装PartnerCenter 3.0.10
  • 建立与客户租户的GDAP关系
    • 微软支持已确认该GDAP关系配置正确
    • GDAP关系使用特权角色管理员权限
  • 用于生成JWT令牌的用户账户同时属于AdminAgents及新建的GDAP安全组

使用的代码示例

$AppId = "ABC-123"  // ID of the App Registration
$AppSecret = "XYZ-456"  // Secret for the App Registration
$CustomerTenantId = "XXX-XXX-XXX-XXX"  // Tenant ID of client environment
$AppCredential = (New-Object System.Management.Automation.PSCredential ($AppId, (ConvertTo-SecureString $AppSecret -AsPlainText -Force)))
$token = New-PartnerAccessToken -ApplicationId $AppId -Scopes 'https://outlook.office365.com/.default' -ServicePrincipal -Credential $AppCredential -Tenant $CustomerTenantId -UseAuthorizationCode
Connect-ExchangeOnline -DelegatedOrganization $CustomerTenantId -AccessToken $token.AccessToken

报错信息

OperationStopped: Could not load file or assembly 'Microsoft.IdentityModel.Tokens, Version=6.22.1.0, Culture=neutral, PublicKeyToken=XXXXXXXXX'.

注:使用非交互式刷新令牌流程时也会出现此问题,上述交互式身份验证令牌流程仅作演示。所有调用Connect-ExchangeOnline的操作均会导致相同错误。

可能的解决方法

  1. 修复指定版本的Microsoft.IdentityModel.Tokens程序集

    • 打开PowerShell运行:
      Install-Package Microsoft.IdentityModel.Tokens -Version 6.22.1.0
      
    • 测试程序集加载情况:[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.IdentityModel.Tokens'),若加载失败,手动将对应版本的DLL复制到ExchangeOnlineManagement模块目录(通常为C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.1.0)。
  2. 彻底清理并重装PowerShell模块

    • 卸载现有模块:
      Uninstall-Module ExchangeOnlineManagement -Force
      Uninstall-Module PartnerCenter -Force
      
    • 删除模块残留文件,确保无旧版本遗留。
    • 重新安装指定版本:
      Install-Module ExchangeOnlineManagement -RequiredVersion 3.1.0 -Force
      Install-Module PartnerCenter -RequiredVersion 3.0.10 -Force
      
  3. 检查PowerShell权限与执行策略

    • 调整执行策略允许加载模块:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    • 以管理员身份运行PowerShell,避免权限不足导致的程序集加载失败。
  4. 验证令牌有效性

    • 生成令牌后,通过JWT解码工具检查令牌的受众、权限范围是否正确,确保包含https://outlook.office365.com/.default。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:27:02