Add/Delete ContentType in list via powershell

来源:互联网 发布:php 正则函数 编辑:程序博客网 时间:2024/05/22 10:29

1. Add  contenttype to the list

#########################################################################
#  $siteUrl : The storeportal site. http://loacalhost                                                                   #
#  $listName : The name of the list. "Store Requests"                                                            #
#  $contentTypeName: The contenttype name   "Document"                                                 #
#  Example : AddContentTypeToList "http://loacalhost" "Shared Documents" "Document"   #
#########################################################################

#  Import the Microsoft.SharePoint.PowerShellif ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ){    Add-PSSnapin Microsoft.SharePoint.PowerShell}function AddContentTypeToList($siteUrl, $listName, $contentTypeName){        $site = Get-SPSite -identity $siteUrl    $spWeb = Get-SPWeb -identity $siteUrl    $contentTypes = $site.rootweb.ContentTypes    try{        #  Check list is exist or not        foreach($list in $spWeb.Lists)        {            if($list.Tostring() -eq $listName)            {                write-host "The list named $list is existing "                                #  Check contentType is existing in the site                if(($contentTypes|where {$_.Name -eq $contentTypeName}) -eq $null)                {                    write-host "The contentType is not existing in the site"                    return                 }                                #  Check contentType is exist or not in the list                foreach($listCT in $list.ContentTypes|where {$_.Name -eq $contentTypeName})                {                    write-host "The contentType $contentTypeName is exiting in the list"                    return                 }                               $contentType = $spWeb.ContentTypes[$contentTypeName]                 $list.ContentTypes.Add($contentType)                $list.Update()                write-host "Add contentType success"                return             }        }                write-host "The list named $list is not existing "       }           catch{                write-host "(ERROR : "$_.Exception.Message")"                throw         }             finally{               $spWeb.Dispose()           } } 


2. Delete the contenttype in list

#########################################################################
#  $siteUrl : The storeportal site. http://loacalhost                                                                   #
#  $listName : The name of the list. "Store Requests"                                                            #
#  $contentTypeName: The contenttype name   "Document"                                                 #
#  Example : DeleteContentType http://localhost "Shared Documents" "Document Set"  #
#########################################################################

#  Import the Microsoft.SharePoint.PowerShellif ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ){    Add-PSSnapin Microsoft.SharePoint.PowerShell}function DeleteContentType($siteUrl, $listName, $contentTypeName){        $spSite = Get-SPSite -identity $siteUrl    $spWeb = Get-SPWeb -identity $siteUrl    $contentTypes = $spSite.rootweb.ContentTypes    try{        #  Check list is exist or not        foreach($list in $spWeb.Lists)        {            if($list.Tostring() -eq $listName)            {                write-host "The list named $list is existing "                                #  Check contentType is existing in the site                if(($contentTypes|where {$_.Name -eq $contentTypeName}) -eq $null)                {                    write-host "The contentType is not existing in the site"                    return                 }                                #  Check contentType is exist or not in the list                if(($list.ContentTypes|where {$_.Name -eq $contentTypeName}) -eq $null)                {                    write-host "The contentType $contentTypeName is not exiting in the list"                    return                 }                else                 {                    $contentType = $list.ContentTypes[$contentTypeName]                     $list.ContentTypes.Delete($contentType.Id)                    $list.Update()                    write-host "Delete contentType success"                }                return             }        }        write-host "The list named $list is not existing "       }           catch{                write-host "(ERROR : "$_.Exception.Message")"                throw         }             finally{               $spWeb.Dispose()               $spSite.Dispose()           } }


 

原创粉丝点击