我正在开发PowerShell脚本,这个脚本应该执行以下任务:
我陷入第三点,无法使用PowerShell设置默认内容类型。以下是我用来更新内容类型的代码:
代码
$ctidary = New-Object System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]
$ctidary.insert($ctID)
$list.rootfolder.uniquecontenttypeorder = $ctidary
$list.rootfolder.update()
$clientContext.executeQuery()
错误
Cannot find an overload for "insert" and the argument count: "1"
请建议我如何使用Powershell脚本将内容类型设置为SharePoint Online中文档库的默认内容类型。
提前致谢!
答案 0 :(得分:1)
在下面的方案中,解决方案适用于我的SharePoint Online租户:
$cttitle = "<Title of Content Type>"
$list = $clientContext.web.lists.GetByTitle("<Title of List/Library>")
$clientContext.load($list)
$clientContext.load($list.contenttypes)
$clientContext.executeQuery()
$currentOrder = $list.ContentTypes
$result = New-Object System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]
foreach ($ct in $currentOrder)
{
if ($ct.Name.Contains($cttitle))
{
$result.Add($ct.Id)
}
}
$list.RootFolder.UniqueContentTypeOrder = $result
$list.RootFolder.Update()
$clientContext.executeQuery()
在此解决方案中,当我尝试在$ct
中直接添加$result
时,不是迭代所有内容类型,而是对我不起作用,所以我迭代了所有内容类型,检索内容类型的ID。
答案 1 :(得分:0)
这个怎么样?
$ctidary = New-Object System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]
$ctidary.Add($ctID)
$list.RootFolder.UniqueContentTypeOrder = $ctidary
$list.RootFolder.Update()