Removing a Content Type from a SharePoint Library
Having a single content type in a library can make a library sing for end-users, by avoiding choices and prompts. However removing an existing Content Type can be a problem. Primarily, if it is still in use, SharePoint will not allow its removal with “Content Type is Still in Use”. The first thing to do is to clear the recycle bin, if feasible. Microsoft reports this isn’t necessary, but when the Content Type hits the fan, we have to try a few things.
I recently found a case where the following PowerShell still failed, when trying to delete two ways, even with enabling unsafe updates:
$web = Get-SPWeb $WebUrl $web.set_AllowUnsafeUpdates($true) $list = $web.Lists[$ListName] $oldCT = $list.ContentTypes[$OldCTName] $oldCTID = $oldCT.ID #fails, still in use $list.ContentTypes.Delete($oldCTID) #fails, still in use $oldCT.delete() $web.set_AllowUnsafeUpdates($false) $web.Dispose()
I finally tracked it down to documents that were checked out to a user, and had never before been checked in. Without a checked in version, they weren’t visible. The trick is to take ownership of these, then change their content types. Only then can the unused Content Type be deleted.
To automate the reassignment of a Content Type, see my next blog article: Reassigning Content Types programmatically.