В настоящее время у меня есть этот скрипт в качестве теста:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName(“System.Web”) | Out-Null
$User = 'usernamehere'
$Pass = ConvertTo-SecureString 'passwordhere' -AsPlainText -Force
$SPOUrl = "sharepointlisthere"
$SPOList = "Add2AD"
$SPListItemColumns = @{
FirstName = "Title"
LastName = "Achternaam"
Title = "Functie"
Managerf = "Teamleider"
Status = "Status"
Mail = "Mail"
Laptop = "Laptop"
Accountnaam = "Accountnaam"
}
#Connect to SharePoint Online
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SPOUrl)
$Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User, $Pass)
#Get the list
$List = $Context.Web.Lists.GetByTitle($SPOList)
$Query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(100)
$Items = $List.GetItems($Query)
$Context.Load($Items)
$Context.ExecuteQuery()
foreach($item in $Items)
{
#Get list item for later reference
$ListItem = [Microsoft.SharePoint.Client.ListItem]$listItem = $List.GetItemById($Item.FieldValues["ID"])
if ($item.FieldValues[$SPListItemColumns.Status] -eq "Nee") {
Write-Verbose "Processing list item $Firstname $LastName with ID=$($item.FieldValues["ID"])"
#Put the fieldvalues in variables.
$Managerf = $item.FieldValues[$SPListItemColumns.Managerf]
$Managerf = $Managerf.LookupValue
Write-Output $Managerf
$ListItem[$SPListItemColumns.Accountnaam] = "sgouman@test.nl"
$ListItem.Update()
$Context.ExecuteQuery()
}
}
Но всякий раз, когда я запускаю этот скрипт, я получаю эту ошибку:
Исключение, вызывающее «ExecuteQuery» с аргументом «0» (s): "Недопустимые данные используются для обновления этого элемента списка или поле доступно только для чтения."
так что же это может быть? Я уже пытался использовать пользователя в качестве адреса электронной почты и пользователя в качестве обычного имени, ни одна из этих работ не работает. Я хочу обновить имя в Office 365. Теперь мы можем использовать это поле для отправки им по электронной почте.