如何使用 PowerShell 为 SharePoint Online 中的文档库设置默认内容类型?
How can I setup default content type for a Document Library in SharePoint Online using PowerShell?
我正在开发一个 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 中文档库的默认内容类型。
提前致谢!
这个怎么样?
$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。
我正在开发一个 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 中文档库的默认内容类型。
提前致谢!
这个怎么样?
$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。