我试图让用户通过Azure函数运行Powershell脚本。该脚本应使用用户提供的某些信息在SharePoint上创建一个网站。
我创建了一个Azure Function应用程序来运行某些PowerShell脚本。当我尝试运行代码时,它在http 502
返回了错误Connect-PnPOnline
如果删除Connect-PnPOnline
,则会收到200条响应。因此,我确定这与脚本中的Connect-PnPOnline
有关。
我通过@Lee_MSFT Get PowerShell Script to Run SharePoint Commands on Azure关注了该帖子 并能够导入模块。
using namespace System.Net
param (
[string]$projectnumber,
[string]$projectname
)
$site = "https://xxxxx.sharepoint.com/sites/projects"
$projectsite = -join($site, "/", $projectnumber)
$projecttitle = -join($projectnumber, " ", $projectname)
Connect-PnPOnline -url $site
...
我从Connect-PnPOnline -url $site
得到500,从Connect-PnPOnline -url $site -UseWebLogin
得到502
谁知道为什么在使用Connect-PnPOnline
时出现5xx错误?
非常感谢!
答案 0 :(得分:1)
确保已上传Azure功能的PnP PowerShell模块,然后使用下面的PowerShell连接SharePoint。
$siteURL = "https://tenant.sharepoint.com/sites/projects"
$userId = "abc@tenant.onmicrosoft.com"
$plainText= "*****"
$pwd = ConvertTo-SecureString $plainText -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential($userId,$pwd)
Connect-PnPOnline -Url $siteURL -Credentials $creds
或使用此:
Connect-PnPOnline -AppId $env:SPO_AppId -AppSecret $env:SPO_AppSecret -Url "https://tenant.sharepoint.com/sites/projects"
SPO_AppId -将值设置为在租户上创建应用程序时在第一步中复制的客户端ID。
SPO_AppSecret -将值设置为在租户上创建应用程序时在第一步中复制的客户端密钥。
我建议您检查以下文章中的步骤。
Azure Functions For SharePoint Operations Using PnP PowerShell