使用SPMT进行SharePoint Online迁移时报身份验证错误如何解决?
问题根源
- 站点URL配置错误:你填写的
$Global:SPOUrl是文档库的视图页面地址,而SPMT要求TargetSiteUrl参数传入站点根地址,不能携带库路径、视图路径后缀,这是直接触发参数校验失败的常见原因。 - 多因素认证适配问题:租户开启MFA后,传统的用户名密码凭据无法完成认证,缺少动态验证码验证环节,这是你反复核对密码仍报错的核心原因。
解决步骤
1. 修正站点URL配置
将$Global:SPOUrl的值替换为站点根地址:https://o365gcoslo.sharepoint.com/sites/it-test-team
2. 适配MFA认证逻辑
分两种使用场景选择适配方案:
交互式运行场景(有人工操作窗口)
直接删除硬编码凭据的逻辑,调用Register-SPMTMigration时不传入-SPOCredential参数,模块会自动弹出官方登录窗口,完成账号密码输入+MFA二次验证后即可自动获取认证上下文,不需要额外编码处理验证码逻辑。
修正后的参考代码:
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell # 修正为站点根地址 $Global:SPOUrl = "https://o365gcoslo.sharepoint.com/sites/it-test-team" # 定义迁移参数 $Global:FileshareSource = "I:\Applications\Temp_PTAX" $Global:TargetListName = "Temp Location" # 无凭据参数注册,自动弹出支持MFA的登录窗口 Register-SPMTMigration -Force # 添加迁移任务 Add-SPMTTask -FileShareSource $Global:FileshareSource -TargetSiteUrl $Global:SPOUrl -TargetList $Global:TargetListName Start-SPMTMigration -NoShow $session = Get-SPMTMigration
无人值守运行场景(无人工介入)
需要提前在Azure AD中注册服务主体,为其分配SharePoint Online的站点全控制应用权限,使用客户端证书或客户端密钥完成认证,调用Register-SPMTMigration时传入应用ID、证书指纹/密钥参数即可完成认证,不需要MFA人工验证。
额外校验项
如果完成上述配置后仍报错,可将SPMT PowerShell模块升级到最新版本后重试,旧版本模块存在MFA适配、URL校验的已知问题。
内容的提问来源于stack exchange,提问作者kennastever
相关产品推荐
相关产品推荐

