当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 修复“无法联系网站‘https://tenant-admin.sharepoint.com/’或网站不支持 SharePoint Online 凭据。响应状态代码为‘未经授权’”错误

作者:精品下载站 日期:2024-12-14 15:34:28 浏览:14 分类:玩电脑

修复“无法联系网站‘https://tenant-admin.sharepoint.com/’或网站不支持 SharePoint Online 凭据。响应状态代码为‘未经授权’”错误


问题:当尝试通过 PowerShell 脚本连接到 SharePoint Online 时,我收到此错误消息 “无法联系网站 'https://crescent-admin .sharepoint.com/' 或网站不支持 SharePoint Online 凭据。响应状态代码为“未经授权””

[玩转系统] 修复“无法联系网站‘https://tenant-admin.sharepoint.com/’或网站不支持 SharePoint Online 凭据。响应状态代码为‘未经授权’”错误

我尝试运行 CSOM 脚本并收到错误:“使用“0”参数调用“ExecuteQuery”时发生异常:“无法联系网站 'https://crescent. sharepoint.com/' 或网站不支持 SharePoint Online 凭据。响应状态代码为“未经授权”。 “


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set Variables
$SiteURL = "https://crescent.sharepoint.com" 
$ListName = "Documents" 
$NewListName = "Team Documents"
 
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
  
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
 
#Get the List
$List=$Ctx.Web.Lists.GetByTitle($ListName) 
 
$List.Title = $NewListName
$List.Update()
$Ctx.ExecuteQuery()

根本原因:

如果在 SharePoint Online 租户中禁用旧身份验证协议设置,则会出现此错误。您必须在租户中启用旧身份验证协议才能连接到您的 SharePoint Online 网站。默认情况下,此值设置为 $True,以允许所有 CSOM 代码(包括 PowerShell 脚本、Office 客户端和第 3 方应用程序)使用非现代身份验证协议连接到 SharePoint Online。

解决方案:

启用旧版身份验证协议。要启用旧身份验证,请转到 SharePoint Online 管理中心 >> 单击左侧导航中的“访问控制”>> 单击“不使用新式身份验证的应用程序”并将其设置为“允许访问”选项。点击“保存”

[玩转系统] 修复“无法联系网站‘https://tenant-admin.sharepoint.com/’或网站不支持 SharePoint Online 凭据。响应状态代码为‘未经授权’”错误

您可以使用 PowerShell 检查旧版身份验证的当前状态,如下所示:


#Connect to SharePoint Online
Connect-SPOService "https://crescent-admin.sharepoint.com"

#Get Legacy Authentication Protocols status
(Get-SPOTenant).LegacyAuthProtocolsEnabled

要启用旧身份验证协议,请在 SharePoint Online 租户上运行以下 PowerShell 脚本:


#Connect to SharePoint Online
Connect-SPOService "https://crescent-admin.sharepoint.com"

#Enable Legacy Authentication Protocols
Set-SPOTenant -LegacyAuthProtocolsEnabled $True

我们必须等待 24 小时才能让此更改生效!

如果您不想启用旧协议怎么办?那么,在我们的环境中,“LegacyAuthProtocolsEnabled”标志设置为 $False 以防止 Office 365 ADFS 服务器中的暴力密码攻击!如果关闭旧协议设置,您只能使用现代身份验证方法:

  • 使用“Connect-SPService”cmdlet 时保留 -Credentials 参数。您将收到身份验证提示!
  • 使用带有 -Interactive 参数的 PnP PowerShell 或使用 ClientId 和 ClientSecret 方法进行连接。当您不想收到凭据提示时,此方法会有所帮助。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯