如何设置ContentTypeId?

时间:2018-05-25 09:33:53

标签: powershell sharepoint

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

  

具有0个arg(s)值的SystemUdapte不在

范围内

或者其他什么 像英语中的那样(消息是法语)。

$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 :(得分:0)

修改以下代码段:

$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