Разработка Sharepoint с использованием PowerShell - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь создать веб-части sharepoint, используя powershell. Но каждый раз, когда я что-то загружаю (Context.Load ()), я получаю ошибки.

Вот мой код.

[Reflection.Assembly]::LoadFile(([System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client").location))
[Reflection.Assembly]::LoadFile(([System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.runtime").location))

$tenantAdmin = "#####@ajoncloud.onmicrosoft.com"
$tenantAdminPassword = "#########"
$secureAdminPassword = $(convertto-securestring $tenantAdminPassword -asplaintext -force)
$siteURL = "https://ajoncloud.sharepoint.com/LND"
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl) 
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($tenantAdmin,$secureAdminPassword) 
$ctx.Credentials = $credentials

Эта часть работает совершенно нормально. Но если я попробую следующие утверждения, я получу ошибки.

$web = $ctx.Web
$ctx.Load($web)
$ctx.ExecuteQuery()

Это ошибка, которую я получаю.

Exception calling "ExecuteQuery" with "0" argument(s): "The remote server returned an error: (403) Forbidden."

1 Ответ

1 голос
/ 09 апреля 2019

Ваш код работает нормально, когда я сам попробую. Возможно, попробуйте приведенный ниже фрагмент кода и попробуйте получить определенный фрагмент внутри своей SharePoint. Укажите определенный список и попробуйте получить значения полей. Сначала я получил ошибку при запуске вашего кода, но когда я попробовал другого пользователя и указал приведенный ниже список, он начал работать для обоих пользователей.

[Reflection.Assembly]::LoadFile(([System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client").location))
[Reflection.Assembly]::LoadFile(([System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.runtime").location))

$tenantAdmin = "your admin account"
$tenantAdminPassword = "your admin password"
$secureAdminPassword = $(ConvertTo-SecureString $tenantAdminPassword -AsPlainText -Force)
$siteURL = "your site/subsite"
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl) 
$ctx.credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($tenantAdmin,$secureAdminPassword) 

$listTitle = "The name of your list" 
$list = $ctx.Web.Lists.GetByTitle($listTitle)
$fields = $list.Fields
$qry = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(10000,'ID','Created','Modified','Title')
$items = $list.GetItems($qry)
$ctx.Load($fields)
$ctx.Load($items)
$ctx.ExecuteQuery()

foreach($item in $items){
    $item.FieldValues.Title
}
...