Как установить ContentTypeId? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть простой скрипт с foreach в элементе списка.для каждого элемента я просто хочу заменить ContentTypeId на новый.Мой ContentTypeId действителен для списка.Но у меня есть ошибка, которая

SystemUdapte со значением 0 arg (s) не находится в диапазоне

или что-то подобное на английском (сообщение на французском).

$web = Get-SPWeb http://mysite
$list = $web.Lists["MyList"]; 
$spqQuery = New-Object Microsoft.SharePoint.SPQuery
$spqQuery.Query = ""
$spqQuery.ViewFields= '<FieldRef Name="Title" /><FieldRef Name="ContentType" /><FieldRef Name="FileRef" /><FieldRef Name="ContentTypeId" />'
$spqQuery.ViewFieldsOnly = $true
$spqQuery.RowLimit = 5000    
$listItems = $list.GetItems($spqQuery)
foreach ($item in $listItems)
{
  $item["ContentTypeId"] = "0x01010054AD59695853624FB33312A5507FAF03030076DEFBBE080151418469AFD0CC4364C6"
  $item.SystemUpdate()
}

У вас есть идея?

1 Ответ

0 голосов
/ 26 мая 2018

Измените фрагмент, как показано ниже:

$web = Get-SPWeb http://sp/sites/dev
$list = $web.Lists["RestDate"]; 
$spqQuery = New-Object Microsoft.SharePoint.SPQuery
$spqQuery.Query = ""
$spqQuery.RowLimit = 5000    
$listItems = $list.GetItems($spqQuery)
foreach ($item in $listItems)
{
  $item["ContentTypeId"] = "0x010800DE27E128A6FA704285FC5BD90F4D2D22"
  $item.Update()
}

enter image description here

"0x010800DE27E128A6FA704285FC5BD90F4D2D22" - это идентификатор типа содержимого задачи, и он работает должным образом: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...