Powershell 如何设置ContentTypeId?

Powershell 如何设置ContentTypeId?,powershell,sharepoint,Powershell,Sharepoint,我有一个简单的脚本,在列表元素上有一个foreach。 对于每个项目,我只想用一个新的替换ContentTypeId。 我的ContentTypeId对列表有效。 但我有一个错误是 参数值为0的SystemUdapte不在范围内 还是什么 就像用英语写的那样(信息是用法语写的) $web=获取SPWebhttp://mysite $list=$web.Lists[“MyList”]; $spqQuery=新对象Microsoft.SharePoint.SPQuery $spqQuery.Quer

我有一个简单的脚本,在列表元素上有一个
foreach
。 对于每个项目,我只想用一个新的替换
ContentTypeId
。 我的
ContentTypeId
对列表有效。 但我有一个错误是

参数值为0的SystemUdapte不在范围内

还是什么 就像用英语写的那样(信息是用法语写的)

$web=获取SPWebhttp://mysite
$list=$web.Lists[“MyList”];
$spqQuery=新对象Microsoft.SharePoint.SPQuery
$spqQuery.Query=“”
$spqQuery.ViewFields=''
$spqQuery.ViewFieldsOnly=$true
$spqQuery.RowLimit=5000
$listItems=$list.GetItems($spqQuery)
foreach($listItems中的项目)
{
$item[“ContentTypeId”]=“0x01010054AD59695853624FB33312A5507FAF03030076DEFBBE08151418469AFD0CC4364C6”
$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”是任务内容类型Id,它按预期工作:

您最终是如何获得
$listItems
?你能分享那段代码吗?是的,我已经编辑了这篇文章并添加了一些代码,Thanks@FredericCantenot,如果它对您有效,您可以将其标记为答案。
$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()
}