如何使用 PowerShell 为 SharePoint Online 中的文档库设置默认内容类型?

How can I setup default content type for a Document Library in SharePoint Online using PowerShell?

我正在开发一个 PowerShell 脚本,这个脚本应该执行以下任务:

  1. 创建文档库(例如财务文档)
  2. 将内容类型附加到此文档库
  3. 将此内容类型设置为默认内容类型

我卡在了第三点,无法使用 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 中文档库的默认内容类型。

提前致谢!

这个怎么样?

$ctidary = New-Object System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]
$ctidary.Add($ctID)
$list.RootFolder.UniqueContentTypeOrder = $ctidary
$list.RootFolder.Update() 

在我的场景中,以下解决方案适用于我的 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()

在这个解决方案中,当我尝试直接在 $result 中添加 $ct 时,我没有遍历所有内容类型,它对我不起作用,所以我遍历了所有内容类型和检索到的内容类型 ID。