当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 将内容类型添加到列表或文档库

作者:精品下载站 日期:2024-12-14 14:16:18 浏览:14 分类:玩电脑

SharePoint Online:使用 PowerShell 将内容类型添加到列表或文档库


要求:SharePoint Online PowerShell 将内容类型添加到库中。

如何将内容类型添加到 SharePoint Online 中的列表或库?

在 SharePoint Online 中,您可以将内容类型添加到列表中,以帮助定义列表中存储的信息类型。例如,您可以将“产品”的内容类型添加到存储产品信息的列表中。这将允许您在列表中创建自动与“产品”内容类型关联的新项目。本文将向您展示如何将内容类型添加到 SharePoint Online 中的列表。

假设您已创建内容类型,则将内容类型添加到 SharePoint Online 列表中的步骤如下:

步骤 1:启用列表的内容类型管理(如果尚未启用)

在将内容类型添加到列表或库之前,您必须启用列表或库以支持内容类型。

  1. 导航至列表设置 >> 单击常规设置下的“高级设置”链接。
  2. 将“允许管理内容类型?”设置为“是”选项并点击页面底部的“确定”按钮以保存更改。

步骤 2:将内容类型添加到列表或库

启用内容类型后,您可以通过以下方式将内容类型添加到 SharePoint Online 中的列表或库:

  1. 再次转到列表设置页面,您将找到使用列出的默认内容类型创建的“内容类型”组(例如,您将找到为自定义列表列出的“项目”内容类型)。
  2. 单击“从现有网站内容类型添加”链接。

    [玩转系统] SharePoint Online:使用 PowerShell 将内容类型添加到列表或文档库

  3. 在“添加内容类型”页面中,选择要添加的内容类型,然后单击“添加”按钮,然后单击“确定”一次。

    [玩转系统] SharePoint Online:使用 PowerShell 将内容类型添加到列表或文档库

  4. 就这样。现在,您将在列表设置的“内容类型”组下找到添加的内容类型。

好吧。现在,让我们看看如何使用 PowerShell 将内容类型添加到 SharePoint Online 中的列表。

SharePoint Online PowerShell 将内容类型添加到库

让我们使用 PowerShell 将内容类型添加到 SharePoint Online 中的列表:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

Function Add-ContentTypeToList()
{ 
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $ListName,
        [Parameter(Mandatory=$true)] [string] $CTypeName
    )

    Try {
        $Cred= Get-Credential
        $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials
        
        #Get the List
        $List = $Ctx.web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $Ctx.ExecuteQuery()
        
        #Enable managemnt of content type in list - if its not enabled already
        If($List.ContentTypesEnabled -ne $True)
        {
            $List.ContentTypesEnabled = $True
            $List.Update()
            $Ctx.ExecuteQuery()
            Write-host "Content Types Enabled in the List!" -f Yellow
        }

        #Get all existing content types of the list
        $ListContentTypes = $List.ContentTypes
        $Ctx.Load($ListContentTypes)

        #Get the content type to Add to list
        $ContentTypeColl = $Ctx.Web.ContentTypes
        $Ctx.Load($ContentTypeColl)
        $Ctx.ExecuteQuery()
        
        #Check if the content type exists in the site        
        $CTypeToAdd = $ContentTypeColl | Where {$_.Name -eq $CTypeName}
        If($CTypeToAdd -eq $Null)
        { 
            Write-host "Content Type '$CTypeName' doesn't exists in  '$SiteURL'" -f Yellow
            Return 
        }

        #Check if content type added to the list already
        $ListContentType = $ListContentTypes | Where {$_.Name -eq $CTypeName}
        If($ListContentType -ne $Null)
        {
            Write-host "Content type '$CTypeName' already exists in the List!" -ForegroundColor Yellow
        }
        else
        {
            #Add content Type to the list or library
            $AddedCtype = $List.ContentTypes.AddExistingContentType($CTypeToAdd)
            $Ctx.ExecuteQuery()
           
            Write-host "Content Type '$CTypeName' Added to '$ListName' Successfully!" -ForegroundColor Green
        }
   }
    Catch {
        write-host -f Red "Error Adding Content Type to the List!" $_.Exception.Message
    } 
}

#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$ListName="Project Frosty"
$CTypeName="Project Template"

#Call the function
Add-ContentTypeToList -SiteURL $SiteURL -ListName $ListName -CTypeName $CTypeName

SharePoint Online PnP PowerShell 将内容类型添加到库

以下是如何使用 Add-PnPContentTypeToList PnP PowerShell 将内容类型添加到 SharePoint Online 中的文档库:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$ContentTypeName="Crescent Invoice Template V2"
$ListName="Invoices"

#Get Credentials to connect
$Cred = Get-Credential

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
#Get the content type
$ContentType = Get-PnPContentType -Identity $ContentTypeName

If($ContentType)
{
    #Add Content Type to Library
    Add-PnPContentTypeToList -List $ListName -ContentType $ContentType
}
else
{
    Write-host -f Yellow "Could Not Find Content Type:"$ContentTypeName
}

使用 -DefaultContentType 开关将内容类型设置为默认内容类型!如何在代码中添加一些错误处理,例如:检查给定列表是否存在,检查内容类型是否尚未添加到列表中,等等。


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Purchase"
$ListName = "Site Pages"
$ContentTypeName = "Site Page"

Try {
    #Connect to SharePoint Online site
    Connect-PnPOnline -Url $SiteURL -UseWebLogin

    #Get the context
    $Ctx = Get-PnPContext

    #Check if the List or Library Exists
    $List = Get-PnPList -Identity $ListName
    If($List -ne $Null)
    {
        #Add Content type to the list
        $ContentType = Get-PnPContentType -Identity $ContentTypeName
        If($ContentType)
        {
            #Check if the List has the content type already
            $ListContentType = Get-PnPContentType -List $ListName -Identity $ContentTypeName -ErrorAction SilentlyContinue
            If(!$ListContentType)
            {
                #Add Content Type to List
                Add-PnPContentTypeToList -List $ListName -ContentType $ContentType
                Write-host  -f Green "'$ContentTypeName' content type added to the List '$ListName'"
            }
            Else
            {
                Write-host -f yellow "'$ContentTypeName' content type already exists in the List!"
            }
        }
        Else
        {
            Write-host -f Yellow "Could Not Find the '$ContentTypeName' Content Type!"
        }
    }
    Else
    {
        Write-Host -f Yellow "List '$ListName' does not exist!"
    }
}
Catch {
    Write-host -f Red "Error:" $_.Exception.Message
}
  • SharePoint Online:使用 PowerShell 创建内容类型
  • SharePoint Online:使用 PowerShell 启用内容类型
  • SharePoint Online:使用 PowerShell 从列表中删除内容类型
  • SharePoint Online:使用 PowerShell 从网站集中的所有列表中删除内容类型

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯