У меня есть простой скрипт с foreach в элементе списка.
для каждого элемента я просто хочу заменить ContentTypeId на новый.
Мой ContentTypeId подходит для списка.
Но у меня есть ошибка, которая
SystemUdapte with 0 arg(s) value is not in the range
или что-то как это на английском (сообщение на французском).
$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()
}
У тебя есть идея?
да, я отредактировал сообщение и добавил код, спасибо





Измените фрагмент, как показано ниже:
$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()
}
«0x010800DE27E128A6FA704285FC5BD90F4D2D22» - это идентификатор типа содержимого задачи, и он работает должным образом:

@FredericCantenot, вы можете отметить его как ответ, если он вам подходит.
Как вы в итоге получили
$listItems? Вы можете поделиться этим фрагментом кода.