SharePoint 2010 + PowerShell: Delete Site Content Type
So first, you have to delete all of the content type's children or you'll receive the error "Error: content type in use." Once the dependencies are gone, you can delete the custom site content type itself.
$sitename = $args[0] $contentType = $args[1]
$web = Get-SPWeb $sitename $ct = $web.ContentTypes[$contentType]
if ($ct) { $ctusage = [Microsoft.SharePoint.SPContentTypeUsage]::GetUsages($ct) foreach ($ctuse in $ctusage) { $list = $web.GetList($ctuse.Url) $contentTypeCollection = $list.ContentTypes; $contentTypeCollection.Delete($contentTypeCollection[$ContentType].Id); Write-host "Deleted $contentType content type from $ctuse.Url" } $ct.Delete() Write-host "Deleted $contentType from site."
} else { Write-host "Nothing to delete." }
$web.Dispose() Viola.