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

[玩转系统] 使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online

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

使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online


要求:使用多重身份验证从 PowerShell 连接到 SharePoint Online。

PowerShell 通过 MFA 连接到 SharePoint Online

Office 365 环境中的多重身份验证或双因素身份验证通常作为安全强化的一部分启用。它不是典型的用户 ID 和密码,而是通过短信或电话添加了一个额外的层来完成身份验证过程。但是,在 SharePoint 中,当您为用于从 PowerShell 连接到 SharePoint Online 的帐户启用 MFA 时,它会失败!在成功连接之前,需要先执行一些额外的步骤。在本指南中,我们将了解如何使用 PowerShell 和 MFA 连接到 SharePoint Online,包括先决条件和分步说明。

以下是有关如何通过启用了多重身份验证的帐户连接到 SharePoint Online 网站的可用选项列表。

创建应用程序密码以连接到 SharePoint Online

访问 https://aka.ms/createapppassword 为启用 MFA 的帐户创建应用程序密码,然后使用该应用程序密码连接到 SharePoint Online!以下是具有 MFA 的 Connect-SPOService 示例:


#Admin Center URL of your SharePoint Online
$AdminSiteURL= "https://crescent-admin.sharepoint.com"
 
#Connect to SharePoint Online services
Connect-SPOService -url $AdminSiteURL -Credential (Get-Credential)

确保在凭据提示中输入您的用户名和应用程序密码。此方法适用于 SharePoint Online Management Shell、PnP PowerShell 或 PowerShell - CSOM 脚本。如果需要,您可以在脚本中硬编码用户名和应用程序密码,以避免运行时出现凭据提示:


#Variables for processing
$AdminCenterURL = "https://crescent-admin.sharepoint.com"

#User Name Password to connect 
$AdminUserName = "[email protected]"
$AdminPassword = "xbcvvdjzedpcqdjkek" #App Password

#Prepare the Credentials
$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminUserName, $SecurePassword
 
#Connect to SharePoint Online tenant
Connect-SPOService -url $AdminCenterURL -Credential $Cred

应用程序密码方法非常适合 Windows 任务计划程序中的无人值守或计划脚本!

通过省略“凭据”参数将 SharePoint Online PowerShell 与 MFA(多重身份验证)连接

要使用启用多重身份验证的帐户从 SharePoint Online Management Shell 连接 SharePoint Online,只需从“Connect-SPOService”cmdlet 中删除 -Credential 参数,因为 Get-Credential cmdlet 不支持 MFA!


Connect-SPOService -Url https://YourTenant-admin.sharepoint.com

按 Enter 键,您将看到一个弹出窗口(PowerShell 窗口 - 支持 MFA),然后输入在 SharePoint 登录中获得的凭据和代码。

[玩转系统] 使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online

成功通过身份验证后,您可以开始从 PowerShell 控制台或 PowerShell ISE 中的模块使用 PowerShell cmdlet。

PnP PowerShell 通过 MFA 连接到 SharePoint Online

要使用 Connect-PnPOnline 和 MFA(多重身份验证)从 PnP PowerShell 模块连接到 SharePoint Online,请选择以下选项:

选项 1: 使用“-Interactive”如果您想使用启用了多重身份验证的帐户连接到 PnP Online,请切换。例如。


#Site Variables
$SiteURL = "https://crescent.sharepoint.com"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive 

如果您尚未连接 SharePoint Online,您将收到登录提示。

选项 2:使用客户端 ID 和客户端密钥方法通过 MFA 连接到 SharePoint Online
按照我的文章创建 AppID 和密码:使用客户端 ID 和客户端密钥连接 PnPOnline,然后使用用于连接到 PnP 的 ClientId 和 ClientSecret 凭据。


#Site collection URL
$SiteURL = "https://crescent.sharepoint.com"
 
#Connect to SharePoint Online with AppId and AppSecret
Connect-PnPOnline -Url $SiteURL -ClientId "ca12s35f-7c48-4xbf-8238-760bc56bdeda" -ClientSecret "J8cFpsg/AS7KUL79fGX1ykbBVkd6q35030AamzAQO5gHj=" 

连接后,您可以开始使用 SharePoint Online 的 PnP cmdlet。有关通过 PnP PowerShell 连接到 SharePoint Online 的更多信息,请参阅:如何使用 PnP PowerShell 连接到 SharePoint Online?

使用 MFA 连接到 CSOM PowerShell 脚本

要使用配置了多重身份验证的帐户通过 CSOM PowerShell 脚本连接到 SharePoint Online,请使用以下 PowerShell:


$SiteURL = "https://crescent.sharepoint.com"

#Setup Authentication Manager
$AuthenticationManager = new-object OfficeDevPnP.Core.AuthenticationManager
$Ctx = $AuthenticationManager.GetWebLoginClientContext($SiteUrl)
$Ctx.Load($Ctx.Web)
$Ctx.ExecuteQuery()

Write-Host $Ctx.Web.Title

此方法会提示输入凭据和双因素身份验证代码!

总之,使用带有 MFA 的 PowerShell 连接到 SharePoint Online 是保护数据并防止未经授权的访问的好方法。按照本指南中概述的步骤操作,您应该能够连接到启用了 MFA 的 SharePoint Online。

启用多重身份验证 (MFA) 时的典型错误:

如果您尝试使用启用了 MFA 的帐户连接到 SharePoint Online,您将收到以下错误消息:
“Connect-SPOService:登录名或密码与 Microsoft 帐户系统中的登录名或密码不匹配。
行:5 字符:1
+ Connect-SPOService -url $AdminSiteURL -Credential(获取凭据)
+ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 分类信息: 未指定: (:) [Connect-SPOService], IdcrlException
+ ExcellentQualifiedErrorId : Microsoft.SharePoint.Client.IdcrlException,Microsoft.Online.SharePoint.PowerShell.ConnectSPOService”

[玩转系统] 使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online

PnP 连接失败,启用 MFA 的帐户出现错误:
“Connect-PnPOnline:登录名或密码与 Microsoft 帐户系统中的不匹配。
行:6 字符:1
+ Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
+ CategoryInfo : 未指定: (:) [Connect-PnPOnline], IdcrlException
+ FullQualifiedErrorId:Microsoft.SharePoint.Client.IdcrlException、SharePointPnP.PowerShell.Commands.Base.ConnectOnline”

[玩转系统] 使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online

具有双因素身份验证的 CSOM PowerShell 脚本:
“使用“0”个参数调用“ExecuteQuery”时出现异常:“登录名或密码与 Microsoft 帐户系统中的不匹配。”
行:23 字符:1
+ $Ctx.ExecuteQuery()
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : 未指定:(:) [],MethodInitationException
+ FullQualifiedErrorId:IdcrlException”

[玩转系统] 使用 PowerShell 和 MFA(多重身份验证)连接到 SharePoint Online

最后但并非最不重要的一点是:请注意,除了 MFA 之外,可能还有其他原因导致这些错误。例如用户名或密码不正确、帐户已被禁用或锁定、密码过期、条件访问策略、旧身份验证被禁用等。

经常问的问题:

如何安装 SharePoint Online PowerShell 模块?

要安装 SharePoint Online 的 PowerShell 模块,请以管理员身份打开 PowerShell 并输入:“Install-Module Microsoft.Online.SharePoint.PowerShell”。
更多信息:安装 SharePoint Online PowerShell 模块

PnP PowerShell 如何连接到 SharePoint Online?

使用“Install-Module PnP.PowerShell”安装新的 PnP PowerShell 模块,然后您可以使用“Connect-PnPOnline”cmdlet 连接到 SharePoint 网站。
更多信息:PnP PowerShell 连接到 SharePoint Online

PowerShell 和 PnP PowerShell 有什么区别?

PnP PowerShell 模块是一个社区提供的开源库,位于 PowerShell 之上,并提供 500 多个 cmdlet 来与 Microsoft 365 环境配合使用。

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

取消回复欢迎 发表评论:

关灯