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