PowerShell : Come eliminare un “content type custom”

In questo breve articolo, vediamo uno script powerhsell da mettere nella ‘cassetta degli attrezzi’.
Scenario: abbiamo definito un ‘content type’ custom e lo vogliamo eliminare; come prerequisito dobbiamo verificare che non ci siano Liste o Raccolta documenti che lo utilizzino, perché in questo caso non sarà possbile eliminarlo.

Il primo pensiero potrebbe essere : lo elimino, ma non basta perché SharePoint ha il “cestino”…. anzi due! e i contenuti presenti nel cestino oltre a occupare spazio (particolare fondamentale!) sono elementi attivi.

Dopo aver eliminato l’elemento, questo andrà a finire nel primo cestino (quello dell’utente) ma questo non basta ancora..l’amministratore della raccolta siti (dovresti essere tu che hai voglia di leggere questo articolo) deve selezionare le ‘Impostazioni del sito’ e quindi nella sezione ‘Amministrazione raccolta siti’; selezionare la voce ‘Cestino’.

Da questo menu è possibile gestire i file cancellati dagli utenti (primo cestino) e quelli presenti nel cestino gestito dall’amministratore del sito

Immagine

Verificato che non ci siano elementi che usano il nostro content type, passiamo allo script:

Add-PSSnapin "Microsoft.SharePoint.PowerShell"

 $siteURL = <http://NomeRaccoltaSiti>

$contentType = "NomeContentType"

$web = Get-SPWeb $siteURL
 $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()
Annunci

Informazioni su masiciliano

Analista programmatore, seguo da anni con interesse la piattaforma di collaboration 'Sharepoint'; argomento principale del blog.
Questa voce è stata pubblicata in PowerShell, Senza categoria. Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...