如何修复 PowerShell 中的 SPOService 登录问题

Posted

技术标签:

【中文标题】如何修复 PowerShell 中的 SPOService 登录问题【英文标题】:How to fix SPOService login issue in PowerShell 【发布时间】:2022-01-15 15:10:48 【问题描述】:

任何人都知道我为什么会收到此错误

Connect-SPOService : The sign-in name or password does not match one in the Microsoft account system.
At line:4 char:1
+ Connect-SPOService -Url https://companyname-admin.sharepoint.com -C ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Connect-SPOService], IdcrlException
    + FullyQualifiedErrorId : Microsoft.SharePoint.Client.IdcrlException,Microsoft.Online.SharePoint.PowerShell  
   .ConnectSPOService

即使我输入了正确的用户名和密码。

$username = "yzqpsn@company.com"
$password = "Example123$"

$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $userName, $(convertto-securestring $password -asplaintext -force)
Connect-SPOService -Url https://company-admin.sharepoint.com -Credential $cred

如果我只喜欢这个 Connect-SPOService -Url https://company-admin.sharepoint.com 那么它会提示我登录对话框,我可以使用上面输入的相同用户名和密码进行连接。

我已经尝试将 $ 放在单引号和反引号中,但仍然没有用。 我能够使用相同的凭据在同一个脚本文件中连接 AzureAD 和 ExchangeOnline,但不知道为什么我在尝试连接 SPOService 时不断收到该错误。

【问题讨论】:

尝试使用$cred = get-credential ....您可以通过这样做验证密码是否正确存储...$cred.GetNetworkCredential().password 【参考方案1】:
Connect-SPOService : The sign-in name or password does not match one in the Microsoft account system.

此错误有两个可能的原因:您在插入凭据时出错,或者您启用了多因素身份验证 (MFA)。如果是由于 MFA,您需要在连接到 SharePoint Online 时删除 -Credential 参数,并使用传统的登录页面体验输入您的凭据。

根据您的描述,我认为这是因为您启用了multifactor authentication(MFA)。所以输入Connect-SPOService -Url https://domain-admin.sharepoint.com可以正常连接SharePoint,输入Connect-SPOService -Url https://domain-admin.sharepoint.com -Credential $cred会报错。

参考:

How to connect to SharePoint Online using PowerShell?

【讨论】:

以上是关于如何修复 PowerShell 中的 SPOService 登录问题的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“value null Copy-Item Powershell”错误

如何修复win10内置应用“电影和电视”

如何从我的 Powershell 脚本中的 Get-ADUser 过滤器获取结果,以便验证该用户是不是存在?

PowerShell - 枚举集合并更改集合

powershell PowerShell:修复PATH系统变量

如何修复PUT Invoke-RestMethod中的“401 Unauthorized”错误(试图替换存储过程)