Add/Delete ContentType in list via powershell

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.PowerShell

if ( (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.PowerShell

if ( (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()
           } 
}



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值