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

Connect-PnPOnline连接SharePoint报AADSTS700016错误求助

解决Connect-PnPOnline报AADSTS700016错误的方案

错误原因分析

报错中的应用ID 31359c7f-bd7e-475c-86db-fdb8c937548e 是PnP PowerShell默认使用的公共客户端应用。出现该错误的核心原因包括:

  • 租户管理员禁用了第三方公共客户端应用的访问权限
  • 该默认应用已从Azure AD租户中移除
  • 旧版本PnP PowerShell依赖的默认应用已被微软弃用

具体解决步骤

1. 升级PnP PowerShell到最新版本

旧版本模块可能依赖已失效的默认应用ID,更新到最新版可解决此问题:

Update-Module -Name PnP.PowerShell -Force

更新完成后重新运行连接脚本,验证是否恢复正常。

2. 使用自定义Azure AD应用认证(推荐用于无人值守SSIS作业)

如果租户禁用了公共客户端应用,需自行注册Azure AD应用并通过其认证:

步骤A:注册Azure AD应用

  1. 登录Azure门户,进入Azure Active Directory → 应用注册 → 新注册
  2. 填写应用名称,选择"账户仅限此组织目录中的账户"
  3. 注册完成后,记录应用的客户端ID和租户ID
  4. 进入应用的API权限,添加SharePoint Online的权限(如Sites.Read.All委派权限),并让租户管理员完成权限同意

步骤B:修改PowerShell脚本

替换为使用自定义应用ID的连接逻辑:

$SiteURL = "https://mycompany.sharepoint.com/proj"
$UserName = "myUsername"
$Password = "myPassword"
$ClientId = "你的自定义应用客户端ID"
$TenantId = "你的租户ID"

$SecurePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $SecurePassword

Connect-PnPOnline -Url $SiteURL -Credentials $Cred -ClientId $ClientId -Tenant $TenantId

3. 排查租户Azure AD设置(需管理员操作)

若需继续使用默认公共客户端应用,可检查租户相关设置:

  1. 登录Azure门户,进入Azure Active Directory → 企业应用 → 应用注册设置
  2. 将"允许公共客户端流"设置为"是"

注意:此为全局配置,可能存在安全风险,需确认安全需求后调整

4. 手动测试排查

手动执行时可使用交互式认证,确认站点和账户本身无问题:

Connect-PnPOnline -Url $SiteURL -Interactive

此方式仅用于测试,不适合SSIS无人值守作业场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 07:33:29