如何根据 clientid 和客户端密码在 Runbook 中运行 powershell 脚本
Posted
技术标签:
【中文标题】如何根据 clientid 和客户端密码在 Runbook 中运行 powershell 脚本【英文标题】:How to run powershell script in runbook based on clientid and client secret 【发布时间】:2022-01-06 06:35:35 【问题描述】:目前我正在使用用户名和密码来连接 SPO 服务 uisng 下面的代码:
$psCred = New-Object System.Management.Automation.PSCredential -ArgumentList ($UserName, $Password)
Connect-SPOService -Url "https://$OrganizationName-admin.sharepoint.com" -Credential $psCred
现在我想使用我的应用程序的 ClientId 和客户端密码并删除用户名和密码。我也为我的应用程序赋予了全局管理员角色。所以基于我的应用程序 ClientId 和 clientsecret 我现在想执行我的 PowerShell 脚本。有人可以帮我解决这个问题吗?
【问题讨论】:
请检查这是否有帮助:sharepointdiary.com/2019/03/… @AnsumanBal-MT 感谢您的回复,但它仅适用于与共享点相关的是否有任何方法目前我正在使用以下命令,并且我希望删除用户名和密码的依赖性:$psCred = New-Object System .Management.Automation.PSCredential -ArgumentList ($UserName, $Password) AFAIK,SPO 仅适用于具有 Sharepoint 管理员或全局管理员访问权限的用户,因此它使用 MFA 对 sharepoint url 进行身份验证。而 PnP 允许它使用可以在此处找到的任何形式的身份验证:docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/… 【参考方案1】:正如@AnsumanBal-MT 建议将其发布为帮助其他社区成员的答案。
"
SPO 仅适用于具有 Sharepoint 管理员或全局管理员 访问权限的用户,因此它使用 MFA 对 sharepoint url
进行身份验证。
我们可以使用 PnP 取而代之,它允许我们使用任何形式的身份验证。我们不能在 SPO 中使用客户端 ID。
以MS DOC为例:
Connect-PnPOnline
[-ReturnConnection]
[-Url] <String>
[-Credentials <CredentialPipeBind>]
[-CurrentCredentials]
[-CreateDrive]
[-DriveName <String>]
[-ClientId <String>]
[-RedirectUri <String>]
[-AzureEnvironment <AzureEnvironment>]
[-TenantAdminUrl <String>]
[-TransformationOnPrem]
[<CommonParameters>]
有关更多信息,请参阅此 MS DOC:Granting access using SharePoint App-Only
【讨论】:
以上是关于如何根据 clientid 和客户端密码在 Runbook 中运行 powershell 脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MQTT 中使用特定类型的 clientId 创建客户端?
如何在 POST 中发送 ClientId 和 ClientSecret,而不是在带有 ClientCredentialsAccessTokenProvider 的标头中发送
Spring Oauth2:如何获取所有clientIds?