Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Blog Technique de Romelard Fabrice

Les dernières Actualités de Romelard Fabrice (Alias fabrice69 ou F___) principalement autour des technologies Microsoft

Actualités

  • Toutes les actualités et informations sur les technologies Microsoft principalement autour de .NET et SQL Server

Archives

Office 365: Le ContentTypeHub et les Content Types Orphelins

Nous avons découvert dans un précédent message les possibilités offertes par le Hub de Types de Contenu ou Content Type (CT):

Cette solution est une fonctionnalité très intéressante mais qu’il faut prendre avec beaucoup d’attention.

En effet, le principe est basé sur un Timer qui s’exécute au sein de la ferme toutes les XX minutes pour publier les modifications à toute la ferme ou tout le tenant pour Office 365.


Création d’un Content Type orphelin

Le cas typique est la création d’un CT qui a été publié et qui est supprimé du Hub avant d’avoir été totalement “dépublié” de la ferme ou du tenant. Le résultat est donc la présence au sein de certaines collections (voir toutes) de ces CT qui sont maintenant orphelin du Hub. A cela il faut rajouter la même présence dans les collections “OneDrive” des utilisateurs de ces mêmes CT.

Prenons un exemple concrêt:

Imaginons maintenant un tenant de 30’000 utilisateurs avec 20’000 collections OneDrive, à cela on rajoute une 100 de sites SharePoint classiques.

On parle donc de 20’100 collections de sites qui sont susceptibles de recevoir les CT depuis le Hub. Maintenant, on publie un CT et disons qu’il mette 5 secondes par collection pour se déployer au sein du tenant (valeur hypothétique bien sur). Il nous faudra donc 100’500 secondes pour publier le CT sur tout le tenant, soit environ 28 heures au total.

Il suffit maintenant d’imaginer un administrateur, un peu trop pressé et voulant corriger son erreur, peut très facilement supprimer le CT du HUB avant même que celui-ci soit publié partout et donc créer des orphelins dans de nombreuses collections.

Le cas est expliqué en commentaire de ce post d’ailleurs:


Nettoyer les Content Type orphelins

La solution est un peu tricky mais fonctionne bien surtout quand on souhaite éviter d’aller sur 20’100 collections de site et supprimer les CT à la main. Il faut trouver une collection ou le CT est encore présent pour obtenir:

Une fois qu’on a cela, il faut utiliser un script PowerShell (Le CT ID peut être défini uniquement via Code) utilisant la base fournie:

Vous devez juste modifier la partie centrale en commentant les colonnes et forcant l’ID:

# create Content Type using ContentTypeCreationInformation object (ctci)
$ctci = new-object Microsoft.SharePoint.Client.ContentTypeCreationInformation
$ctci.id = $MyContentTypeID
$ctci.name = $contentTypeName
#$ctci.ParentContentType = $parentContentType
$ctci.group = $contentTypeGroup
$ctci = $contentTypes.add($ctci)
$context.load($ctci)

Ce script doit être exécuté sur le Content Type Hub pour recréer les CT (Vides pour le coup) afin de les republier et dépublier après 24/48 heures.

C’est seulement une fois la dépublication effectuée que vous pouvez supprimer les CT du Hub (en vérifiant les log d’exécution dans le Hub).


Attention

La dépublication ne fonctionne que si le site collection admin n’a pas utilisé ce CT dans sa collection. Si c’est le cas, la dépublication ne s’exécutera pas sur cette collection.


Conclusion

L’utilisation du CT Hub est vraiment une très bonne chose, mais il faut vraiment bien réfléchir à sa stratégie avant de créer ces CT dans le Hub sous peine de devoir risquer de gros soucis.

Romelard Fabrice [MBA Risk Management]

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 12 août 2016 16:59 par ROMELARD Fabrice

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Nouveau blog http://bugshunter.net par Blog de Jérémy Jeanson le 07-01-2017, 16:56

- Office 365: Script PowerShell pour assigner des droits Full Control à un groupe défini par Blog Technique de Romelard Fabrice le 04-30-2017, 09:22

- SharePoint 20XX: Script PowerShell pour exporter en CSV toutes les listes d’une ferme pour auditer le contenu avant migration par Blog Technique de Romelard Fabrice le 03-28-2017, 17:53

- Les pièges de l’installation de Visual Studio 2017 par Blog de Jérémy Jeanson le 03-24-2017, 13:05

- UWP or not UWP sur Visual Studio 2015 ? par Blog de Jérémy Jeanson le 03-08-2017, 19:12

- Désinstallation de .net Core RC1 Update 1 ou SDK de Core 1 Preview 2 par Blog de Jérémy Jeanson le 03-07-2017, 19:29

- Office 365: Ajouter un utilisateur ou groupe dans la liste des Site collection Administrator d’un site SharePoint Online via PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-24-2017, 18:52

- Office 365: Comment créer une document library qui utilise les ContentTypeHub avec PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-22-2017, 17:06

- [TFS] Supprimer en masse les dépendances à SQL Enterprise ou Developer avant de procéder à une migration par Blog de Jérémy Jeanson le 02-20-2017, 20:30

- Office 365: Attention au volume utilisé par les fichiers de Thèmes de SharePoint Online par Blog Technique de Romelard Fabrice le 02-07-2017, 18:19