SharePoint: Organisateur de contenu

Lors de la mise en oeuvre SharePoint, les organisations veulent savoir comment « reprendre » le contenu présent sur les disques réseaux (ou les dossiers publics Exchange, ou les bases Domino NSF) pour les migrer vers SharePoint.

L’organisateur de contenu est une fonctionnalité de SharePoint 2010 et Sharepoint 2013. Cette fonctionnalité permet de déplacer des fichiers dans un dossier, une bibliothèque, ou un site de type centre de documents. Un site de type Centre de documents permet de centraliser le contenu d’une organisation afin de disposer d’un référentiel de documents. Les bibliothèques des centres de documents disposent par défaut des types de contenu Document et Lien vers un document.

L’organisateur de contenu vous permet de spécifier des règles de sorte que lorsque les fichiers entrent dans la bibliothèque de remise, les règles sont appliquées pour déplacer les fichiers à l’emplacement correct.

Un administrateur de site peut créer des règles basées sur des métadonnées pour définir comment un document sera déplacé dans une bibliothèque. Les règles sont définies dans les paramètres du site. Le site peut être un site quelconque à condition que la fonctionnalité Organisateur de contenu est activée.

L’activation de l’organisateur rajoute d’office une nouvelle bibliothèque, intitulée Bibliothèque de remise (nom interne: DropOffLibrary).

Dans les paramètres du site, de nouveaux menus apparaissent sous Administration du site:

Paramètres de l’organisateur de contenu

La menu Paramètres de l’organisateur de contenu permet de configurer l’organisateur de contenu du site.

Le paramètre Rediriger les utilisateurs vers la bibliothèque de remise, redirige vers les utilisateurs vers la bibliothèque de remise lorsqu’ils veulent télécharger des documents dans une bibliothèque du site, si celle-ci est concernée par une règle de l’organisateur de contenu. Autrement dit, si une bibliothèque est concernée par une règle de l’organisateur de contenu, l’utilisateur ne peut pas télécharger directement un dichier dans cette bibliothèque. Il sera automatiquement redirigé vers la bibliothèque de remise. Ce paramètre est activé par défaut.

Le paramètre Envoi vers un autre site permet de spécifier un autre site comme emplacement cible d’une règle. La fonctionnalité Organisateur de contenu doit être aussi active sur ce site. Cela peut être intéressant pour disposer d’un site unique pour gérer l’ensemble des règles, plutôt que d’avoir des règles sur chaque site concerné.

La paramètre Partitionnement de dossier permet de créer automatiquement des sous-dossiers dès qu’un nombre de fichiers déposés dans un emplacement cible dépasse un nombre donné. La valeur par défaut est de 2500 mais elle est modifiable. En revanche, l’intitulé du dossier est fixe (en dehors de la date et l’heure de création du dossier). A cause de cette limitation, son utilisation perd un peu de son intérêt.

Le paramètre Soumissions en double permet de contrôler comment doit se comporter SharePoint en cas d’ajout d’un fichier portant le même nom dans un emplacement cible. Si le contrôle de version de la bibliothèque cible est actif, vous pouvez demander à ce que SharePoint l’utilise. Si le cas se présente, Sharepoint créera une nouvelle version. Le résultat peut être assez hasardeux sauf s’il est possible de prédire avec certitude que les nouveaux fichiers qui viendront se déverser seront toujours plus récents que les fichiers déjà existants dans l’emplacement cible et qui possèdent le même nom. Généralement, je préfère activer l’autre option qui permet d’ajouter des caractères uniques à la fin des noms de fichiers en double.

Le paramètre Contexte de conservation permet de conserver les journaux d’audit associés aux documents et d’assurer une meilleure traçabilité en cas de contrôle.

Le paramètre Gestionnaires de règles indique qui sont les utilisateurs qui peuvent gèrer les règles et réagir lorsqu’un document ne correspond à aucune règle. Dans ce dernier cas, ils sont prévenus par email lorsque des soumissions ne correspondent à aucune règle ou lorsque la bibliothèque de remise n’est pas vide. Par défaut, le nombre de jours d’attente avant l’envoi d’un message électronique est de 3 mais il se modifie.

Le paramètre Points de soumission décrit les opérations supportées par le Web Service afin d’envoyer du contenu vers le site.

Règles de l’organisateur de contenu

Lors de l’ouverture des règles, SharePoint ouvre une bibliothèque intitulée Règles de l’organisateur de contenu (nom interne: RoutingRules). Si vous cliquez sur le lien Tout le contenu du site, vous ne verrez pas apparaître cette bibliothèque dans le navigateur web car son attribut masquer dans le navigateur est activé. En revanche, elle est visible si vous ouvrez le site avec SharePoint Designer.

Il ne faut pas confondre la bibliothèque Règles de l’organisateur de contenu qui stocke les règles avec la bibliothèque de remise qui stocke les documents sur lesquels les règles vont s’appliquer.

Les règles sont accessibles grâce au menu Actions du site > Paramètres du site > Règles de l’organisateur de contenu.

Si vous cliquez sur Ajouter un nouvel élément, vous pouvez créer une nouvelle règle.

Le paramètre Nom de la règle est important car il est conseillé d’indiquer dans le nom les conditions et les actions de la règle. Par exemple: Recherche et Développement si fichiers de type Recherche et Stochastique > 7.

Le paramètre État et priorité de la règle permet de fixer une priorité relative d’une règle par rapport aux autres règles. La priorité la plus forte est 1, tandis que la priorité la plus faible est 9. Par défaut, la valeur est sur la moyenne à 5. Si un envoi correspond à plusieurs règles, SharePoint appliquera celle dotée de la plus haute priorité. La priorité doit donc être planifiée soignuesement afin d’éviter des routages intempestifs. Ce paramètre permet aussi de désactiver la règle. Cela permet par exemple de la suspendre temporairement afin de vérifier le bon fonctionnement des autres règles ou inversement.

Dans le paramètre Type de contenu de l’envoi, il faut d’abord choisir un type de contenu, en filtrant d’abord sur le groupe qui le contient puis ensuite en le sélectionnant. Par exemple, j’ai créé un type de contenu intitulé SOCT_BPM. Dans l’hypothèse (défavorable !) où ce type de contenu aurait un autre nom sur un autre site, vous pouvez l’indiquer. Une fois que le type de contenu est choisi, le contenu du paramètre Conditions s’adapte automatiquement. Il est indispensable que les bibliothèques cibles gèrent le type de contenu sélectionné.

Le contenu des champs du paramètre Conditions dépend du type de contenu sélectionné au préalable. Les propriétés affichées dépendent donc du type de contenu. Une fois que la propriété est sélectionnée, il faut choisir le type d’opérateur: « est égal à », « n’est pas égal à », « est supérieur à », « est inférieur à », « est supérieur ou égal à », « est inférieur ou égal à », « commence par », « ne commence pas par », « se termine par », « ne se termine pas par », « contient tou(te)s les », « ne contient pas tou(te)s les », « est vide », « n’est pas vide ».

La liste des opérateurs dépend du type de la propriété. Pour une propriété de type nombre, la liste des opérateurs sera différente de celle d’une propriété de type choix.

Il reste à indiquer la valeur choisie pour définir la condition. La liste des opérateurs disponibles et la liste des valeurs dépendent directement du choix de la propriété.

Par exemple dans mon type de contenu SOCT_BPM, il existe une métadonnée nommée Comités, de type choix avec les valeurs: Recherche, Laboratoire, Marketing, Production et Administratif.

Il est possible d’ajouter plusieurs conditions. Il est aussi possible de supprimer toutes les conditions: la règle s’exécutera systématiquement. Dans ce cas, il faut veiller à la mettre en priorité faible, c-à-d un chiffre supérieur à 5 (cf. le paramètre État et priorité de la règle).

Le paramètre Emplacement cible indique où placer les fichiers concernés par cette règle. Si d’autres sites ont la fonctionnalité Organisateur de contenu activé, vous pouvez les sélectionner. Vous pouvez aussi obliger le regroupement des documents similaires.

Exemples de mise en oeuvre

Pour cet exemple, un site vide intitulé No man’s land a été créé et la fonctionnalité Organisateur de contenu est activée. Deux bibliothèques de documents ont été rajoutées: Recherche et Développement et Laboratoire.

Par ailleurs, il a été créé un type de contenu nommé SOCT_BPM avec 2 colonnes supplémentaires: Comités (type Choix) et Stochastique (Type Nombre). Ce type de contenue est associé à toutes les bibliothèques.

L’objectif est de déplacer les documents en respectant des règles précises:

Un document qui est estampillé Laboratoire (métadonnée Comités) doit être stocké dans la bibliothèque Laboratoire.
Un document qui est estampillé Recherche et qui a une valeur de stochastique > 5 et <= 7 doit être stocké aussi dans la bibliothèque Laboratoire. Un document qui est estampillé Recherche et qui a une valeur de stochastique > 7 doit être stocké aussi dans la bibliothèque Recherche et Développement.

Compte-tenu de la dépendance des 2 dernières règles, la dernière règle doit avoir une priorité plus élevée que l’autre. Soit, dans la pratique:

The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt, etc)

The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt, etc)

Gloups ! Au départ, j’avais prévu de faire un commentaire élogieux de ce super bouquin et puis j’ai zappé. Donc en quelques lignes…

Ce n’est pas un livre pour apprendre le développement informatique.

C’est un livre pour apprendre à bien développer en informatique.

Il est à lire impérativement par les développeurs avec moins de 25 ans de pratique.

Bien sûr, tous les autres développeurs connaissent les bonnes pratiques présentées mais, quand même, une bonne piqûre de rappel ne serait pas inutile pour eux non plus :-)

Lien avec affiliation:
The Pragmatic Programmer: From Journeyman to Master

Lien sans affiliation:
The Pragmatic Programmer From Journeyman to Master Amazon.fr Andrew Hunt, David Thomas

PowerShell: Commandes pour manipuler les formats de fichiers

Les formats de fichiers produits par les commandes PowerShell sont parfois déroutants.

Pourtant les exemples trouvés sur le web sont souvent simplistes car ils ne reflètent pas toujours la complexité de la réalité.

En effet, les « vrais » fichiers recèlent des pièges liés aux données elles-mêmes: présence de virgule ou de point-virgule dans les données au format CSV, etc.

Cet article est l’occasion de passer en revue les principales particularités des formats de fichier et les commandes associées.

Out-File

Pour obtenir la liste des services qui s’exécutent sur votre ordinateur dans un fichier texte, vous allez utiliser la commande Out-File.

Ouvrez une invite de commande PowerShell en tant qu’Administrateur et tapez:

Get-WmiObject win32_service | Out-File .services.txt

Ouvrez le fichier services.txt avec Notepad++:

ExitCode : 0
Name : AdobeARMservice
ProcessId : 1780
StartMode : Auto
State : Running
Status : OK

ExitCode : 0
Name : AdobeFlashPlayerUpdateSvc
ProcessId : 0
StartMode : Manual
State : Stopped
Status : OK

Dans ce cas, vous ne récupérez qu’une partie des informations d’un service, la disposition est sous forme de fiche et le fichier est encodé en UCS-2 Little Endian.

Encodage UTF-8

Pour avoir un encodage UTF-8, tapez:

Get-WmiObject win32_service | Out-File .services.txt -Encoding « UTF8″

Par défaut, Get-WmiObject win32_service produit un résultat sous forme de liste. Pour avoir une disposition tabulaire, vous essayez:

Get-WmiObject win32_service | Format-Table | Out-File .services.txt -Encoding « UTF8″

Le résultat:

ExitCode Name ProcessId StartMode State Status
——– —- ——— ——— —– ——
0 AdobeARMservice 1780 Auto Running OK
0 AdobeFlashPlayer… 0 Manual Stopped OK

Le « Name » est partiel. La mise en forme est peu pratique pour un traitement automatisé.

Commande Get-Service

Le résultat ne vous convenant toujours pas, vous changez de commande pour obtenir la liste des services. Au lieu d’utiliser Get-WmiObject win32_service, vous essayez la commande Get-Service qui par défaut produit un résultat sous forme de tableau:

Get-Service | Out-File .services.txt -Encoding « UTF8″

Le résultat est encore différent:

Status Name DisplayName
—— —- ———–
Running AdobeARMservice Adobe Acrobat Update Service
Stopped AdobeFlashPlaye… Adobe Flash Player Update Service

En fait, la colonne Name (ainsi que DisplayName) est tronquée.

Export-Csv

Au lieu d’utiliser Out-File, vous allez utiliser Export-Csv. Tapez la commande suivante:

Get-WmiObject win32_service | Export-Csv .services.csv -Encoding « UTF8″

Ouvrez le fichier services.csv avec Notepad++ et vous voyez apparaître beaucoup plus d’informations sous forme quasi-tabulaire:

#TYPE System.Management.ManagementObject#rootcimv2Win32_Service
« PSComputerName », »__GENUS », »__CLASS », »__SUPERCLASS », »__DYNASTY », »__RELPATH »,…
« MONORDINA », »2″, »Win32_Service », »Win32_BaseService », »CIM_ManagedSystemElement », »Win32_Service.Name= » »AdobeARMservice » » »,…
« MONORDINA », »2″, »Win32_Service », »Win32_BaseService », »CIM_ManagedSystemElement », »Win32_Service.Name= » »AdobeFlashPlayerUpdateSvc » » »,…

Pour éliminer la première ligne (« #TYPE System.Management.ManagementObject#rootcimv2Win32_Service »), il suffit de rajouter le paramètre -NoTypeInformation à la ligne de commande:

Get-WmiObject win32_service | Export-Csv .services.csv -Encoding « UTF8″ -NoTypeInformation

Ouvrez le fichier services.csv avec Microsoft Office Excel. Lors de son ouverture, Excel a détecté la présence du séparateur « ; » dans certaines lignes et il a séparé les données concernées dans la seconde colonne (« B »). Par exemple la description du « Service de cache de police Windows » contient un « ; »: « [...] Il peut être désactivé ; il en résulte cependant une dégradation des performances des applications. »

Délimiteur spécifique

La présence inopportune du séparateur « ; » va rendre plus complexe le traitement des données lors de l’utilisation d’un Split(). Aussi, pour contourner ce problème, vous décidez de changer de délimiteur en choisissant un caractère plus rare comme ¤.

La commande devient:

Get-WmiObject win32_service | Export-Csv .services.csv -Delimiter « ¤ » -Encoding « UTF8″ -NoTypeInformation

Lorsque vous ouvrez le fichier services.csv avec Microsoft Office Excel, celui-ci n’arrive pas à séparer les colonnes automatiquement: l’assistant d’importation de texte se lance.

Assistant d'importation de texte d'Excel

Vous pouvez réduire le nombre de colonnes avec l’utilisation de la commande Select-Object. Par exemple, si vous ne voulez que le nom et la description (« Caption ») de chaque service, vous tapez la commande suivante:

Get-WmiObject win32_service | Select-Object Name, Caption | Export-Csv .services.csv -Delimiter « ¤ » -Encoding « UTF8″ -NoTypeInformation

Le fichier résultat est plus sobre:

« Name »¤ »Caption »
« AdobeARMservice »¤ »Adobe Acrobat Update Service »
« AdobeFlashPlayerUpdateSvc »¤ »Adobe Flash Player Update Service »

Import-Csv

Pour retraiter le fichier résultat, utilisez la commande PowerShell Import-CSV suivante:

Import-Csv .services.csv -Delimiter « ¤ »

Commande PowerShell Import-Csv

Pour traiter une seule colonne, vous utilisez la fonction Split() ou la variable automatique $_.

La commande suivante fournit la description de tous les services dont le nom débute avec la lettre « A »:

Import-Csv .services.csv -Delimiter « ¤ » | ForEach-Object {if($_.Name.StartsWith(« A »)){write-host $_.Caption}}

Si votre fichier services.csv ne possédait pas d’entête, la commande précédente échouerait. Pour y remédier, il suffit d’indiquer un entête dans la commande Import-Csv avec le paramètre Header:

Import-Csv .services.csv -Header (« Name », »Caption ») -Delimiter « ¤ » | ForEach-Object {if($_.Name.StartsWith(« A »)){write-host $_.Caption}}

Le résultat donne quelque chose comme:
Adobe Acrobat Update Service
Adobe Flash Player Update Service

Supprimer les double guillemets

Lorsque vous utilisez Export-CSV, cette commande ajoute automatiquement des guillemets autour de chaque donnée retournée. Pour enlever tous les guillemets des fichiers CSV à l’aide de PowerShell, l’article de Hey, Scripting Guy! donne une solution qui combine l’utilisation des commandes Export-Csv et Out-File. Toutefois, cette solution n’est pas pleinement satisfaisant car elle remplace aussi les guillemets qui seraient à l’intérieur d’une donnée !

(Get-Content .services.csv) -replace ‘ »‘, «  » | Out-File .services.csv -Encoding « UTF8″ -Force

Faites attention à l’affichage ambigüe des guillemets et des quotes dans WordPress. L’opérateur -replace a comme premier argument ‘ »‘, soit: une quote, un guillemet, une quote.
Le second argument est «  », soit: un guillemet, un guillemet.

La paramètre -Force permet d’écraser un fichier en lecture seule.

Une solution moins radicale consiste à utiliser une expression régulière avec la fonction replace pour supprimer uniquement les guillemets en début et en fin de chaîne de chaque donnée: ‘^ »(.*) »$’, ‘$1′. Le replacement doit se faire sur chaque donnée, et non pas ligne par ligne.

Tableaux / Arrays

Face à la diversité des choix, vous pouvez être tenté de manipuler toutes les données à l’aide de tableaux (« Arrays ») plutôt que de les stocker temporairement dans un fichier.

Si le volume de données manipulées n’est pas disproportionné, ce choix est souvent judicieux car la manipulation en mémoire reste souvent plus rapide que l’écriture sur un disque dur.

Toutefois, pour des raisons de conservations d’historique ou de traçabilité, vous devrez peut-être enregistrer les données manipulées dans un fichier.

Dans ce cas, n’utilisez pas l’opérateur -replace sur les objets. En effet, les commandes suivantes risquent de produire un résultat différent de vos attentes:

# Génére un fichier CSV à partir de la liste des services de l’ordinateur
Get-WmiObject win32_service | Select-Object Name, Caption | Export-Csv .services.csv -Delimiter « ¤ » -Encoding « UTF8″ -NoTypeInformation

# Alimente le tableau $Array à partir du fichier CSV
$Array = Import-Csv .services.csv -Delimiter « ¤ »

# Cherche à remplacer des caractères dans $Array puis génère un fichier TXT pour récupérer le résultat
$Array -replace « Adobe », »ADOBE » | Out-File .services-2.txt

# Cherche à remplacer des caractères dans $Array puis génère un second fichier CSV pour récupérer le résultat
$Array -replace « Adobe », »ADOBE » | Export-Csv .services-2.csv -Delimiter « ¤ » -NoTypeInformation

Le contenu de services-2.txt:

@{Name=ADOBEARMservice; Caption=ADOBE Acrobat Update Service}
@{Name=ADOBEFlashPlayerUpdateSvc; Caption=ADOBE Flash Player Update Service}

Le contenu de services-2.csv:

« Length »
« 61 »
« 76 »

L’opérateur -replace a converti l’objet tableau $Array en une seule chaine de caractères (string).

le fichier résultat services-2.txt contient les chaînes de caractères.

Le fichier résultat services-2.csv contient la longueur des chaînes de caractères. La chaîne « @{Name=ADOBEARMservice; Caption=ADOBE Acrobat Update Service} » fait exactement 61 caractères et la chaîne « @{Name=ADOBEFlashPlayerUpdateSvc; Caption=ADOBE Flash Player Update Service} » fait exactement 76 caractères.

Renommer automatiquement un document Word grâce à son contenu

Un audit documentaire révèle de nombreuses surprises. En particulier, le nommage des documents est parfois peu significatif par rapport au sujet traité dans le document. Cette situation est encore pire pour les métadonnées, notamment le titre.

Si vous voulez démarrer la mise en place d’une GED (Gestion Electronique de Documents) dans de bonnes conditions, il est préférable que les documents existants soient corrigés avant d’être injectés dans la GED. Ou simplement, si vous souhaitez que le nom de vos fichiers reflète leur contenu.

Bien évidemment, il n’est pas question de reprendre manuellement les documents quand il y en a plusieurs milliers.

Pour répondre à une demande de ce type, j’ai développé un script qui procède à un renommage automatique des documents Word. Ce script est fortement basé sur les trucs et astuces enseignés sur le site de Hey, Scripting Guy!.

Le critère utilisé pour le renommage consiste à récupérer le contenu du premier paragraphe de style Titre, Titre 1 ou Titre 2. Si aucun style n’a été trouvé dans le document, il n’est pas renommé et il n’est pas mis à jour. La liste des styles est paramétrable : vous pouvez ajouter des styles supplémentaires, utilisés dans le corpus analysé.

Si un des styles recherchés est trouvé, par exemple Titre 1, alors le contenu du paragraphe Titre 1 devient le nom du fichier. La propriété Word (métadonnée) Titre est remplacée par le contenu du paragraphe Titre 1.

Facultativement, vous pouvez remplacer des caractères du nom du fichier ou du titre par une autre chaîne. Cela permet d’éliminer des chaînes de caractères qui ne sont pas significatives. Cela permet aussi d’insérer des caractères afin de normaliser les noms de fichiers. Cette étape est complètement facultative.

Le script a été exécuté sur des milliers de documents réels. Les documents ont été rédigés sur une période de 9 ans. Le nombre d’auteurs (personnes physiques) est inconnu car un compte générique a été utilisé pour rédiger les articles. En moyenne, les documents ont une taille approximative de 250 Ko. Le plus gros document a une taille de 1,3 Mo.

Comme souvent avec les scripts qui s’exécutent sur un volume important, les temps de réponses ne sont pas linéaires. Ils sont excellents au début (20 documents / minute environ) puis ils deviennent exécrables au fur et à mesure.

Plutôt que de chercher à optimiser le script, il a été décidé de procéder par lot de 150 documents. Cette approche s’est révélée efficace et finalement très rapide. Car, avec un ordinateur de configuration bureautique standard, le traitement des 150 documents se fait en 20 minutes environ, soit 450 documents / heure.

Les tests réalisés avec du matériel plus puissant n’a pas montré d’améliorations significatives.

Le taux des documents non-traités est de 2% environ. Il s’agit de documents qui ne possédaient aucun style de titre (plutôt rare), ou de documents qui possédaient un style de titre non recherché : par exemple, un Titre 3. Pour traiter ces documents, le nouveau style de titre a été ajouté au script.

Rappel: une fois que les documents sont chargés dans SharePoint 2010, vous pouvez créer des règles de routage pour déplacer ces fichiers de la bibliothèque de remise vers les bibliothèques finales.

RenommerFichiersWord_V1_0_0.zip

Plan de nommage des groupes de sécurité SharePoint

Dans une organisation, la sécurité des informations stockées dans SharePoint est assurée uniquement à travers les groupes de sécurité SharePoint.

Il est interdit de donner un autorisation en utilisant directement un groupe de l’annuaire central. Par contre, un groupe de l’annuaire central peut appartenir à un groupe de sécurité SharePoint.

L’objectif est de disposer d’un plan de nommage des groupes de sécurité qui soit :

  • structuré de manière identique quelque soit le groupe, l’objet à sécuriser ou l’autorisation,
  • adapté au modèle de sécurité SharePoint.

Structuré de manière identique quelque soit le groupe, l’objet à sécuriser ou l’autorisation

Afin de normaliser la codification pour nommer le groupe de sécurité, il est proposé le format suivant:

CODESITE _ AAAAAAAA

où :

  • CODESITE: Nom court du site des Directions / Départements / Services,
  • AAAAAAAA: Niveaux d’autorisations SharePoint accordées avec les libellés suivants: Contrôle total, Lecture, Collaboration, Conception, etc.

Pour des raisons de lisibilité et de compréhension, il a été préféré d’afficher directement le niveau d’autorisations (Contrôle total) plutôt que les noms classiques des groupes SharePoint: Approbateurs, Concepteurs, Gestionnaires de hiérarchies, Lecteurs de ressources de style, Membres, Propriétaires, Visiteurs.

Les espaces entre les valeurs doivent être respectés.

Le nom court du site correspond à une nomenclature interne sur 3 ou 4 caractères. Par exemple, le site du Service de Support aux Fournisseurs étrangers de langue française a le code: SFEF, celui de la Direction des Ressources Humaines est: DRH.

Ceux qui donne les noms de groupes suivants pour le site de la Direction des Ressources Humaines:

  • DRH _ Collaboration
  • DRH _ Lecture
  • etc.

La présence de l’underscore (« _ ») permettra de ne pas mélanger ces autorisations avec celles des niveaux inférieurs (cf. ci-dessous).

Adapté au modèle de sécurité SharePoint

Vue de l’utilisateur, les objets sécurisables dans SharePoint sont la Collection de sites, les sites, les listes (ou les bibliothèques), les dossiers des bibliothèques et les éléments (ou les documents).

Compte-tenu de l’héritage des autorisations, le besoin de disposer d’un groupe de sécurité au niveau d’un objet enfant (par exemple une bibliothèque d’un site) se justifie par la nécessité de personnaliser les autorisations.

Pour répondre à cette contrainte, il a été proposé que la valeur du code T varie en fonction de l’objet et du nom interne de l’objet.

Liste ou bibliothèque

Dans le cas d’une liste, le nom interne est généré automatiquement par SharePoint à partir du nom. Le nom interne ne varie jamais, même en cas de renommage de la liste. Par ailleurs, il n’est pas possible d’avoir deux noms internes identiques dans un site.

Afin d’avoir des noms internes courts et lisibles, les listes sont systématiquement créées avec le nom interne désiré puis ensuite elles sont renommées.

Par exemple, si vous désirez avoir une bibliothèque nommée Rapports d’activités, vous la créez avec le nom RAPACT puis ensuite vous la renommez en Rapports d’activités.

Le format de normalisation du nom des listes devient:

CODESITE CODELISTE _ _ AAAAAAAA

où :

  • CODELISTE: Nom interne de la liste.

CODESITE et AAAAAAAA sont inchangés par rapport à la codification du site.

La présence des underscores en double est obligatoire à cause des dossiers et des éléments (cf. ci-dessous).

Donc, s’il est nécessaire d’avoir des groupes spécifiques à la bibliothèque Rapports d’activités du site DRH, cela donnerait:

  • DRH RAPACT _ _ Collaboration
  • DRH RAPACT _ _ Lecture
  • etc.

Dossier

Il n’est pas facile d’interdire à un utilisateur de créer un dossier dans une bibliothèque SharePoint.

Vous savez bien qu’il ne suffit pas de cacher l’option Nouveau dossier. par exemple, l’utilisateur peut contourner ce paramétrage grâce au lien Ouvrir avec l’Explorateur du ruban Bibliothèque ce qui lui permet de créer des dossiers.

Malgré tout, il existe des méthodes pour l’interdire complètement. Elles seront détaillées dans un autre article.

Dans notre cas, les utilisateurs pouvaient créer eux-mêmes les dossiers grâce au navigateur. Il n’était donc pas possible d’imposer un nom unique pour tous les dossiers d’un site. Il est donc possible d’avoir deux bibliothèques distinctes avec chacune un dossier qui porte le même nom.

La solution a consisté à modifier la codification pour les dossiers, de la façon suivante:

CODESITE CODELISTE _ CODEDOS AAAAAAAA

où :

  • CODEDOS: Nom court du dossier.

Dans un souci de simplicité, il n’a pas été imposé une codification stricte du nom court du dossier. La seule contrainte est d’être significatif, de ne pas dépasser 6 caractères et d’être unique.

Donc, s’il est nécessaire d’avoir des groupes spécifiques au dossier Audits internes de la bibliothèque Rapports d’activités du site DRH, cela donnerait par exemple:

  • DRH RAPACT _ AUDINT Lecture
  • DRH RAPACT _ AUDINT Collaboration
  • etc.

Élément ou Document

Pour des raisons liées au caractère sensible des données de l’organisation (Laboratoire pharmaceutique) et pour des raisons historiques (ancien système basé sur Lotus Domino), les autorisations sont fréquemment données au niveau du document…

Pour s’adapter à cette contrainte forte, la codification des groupes de sécurité SharePoint liés à un élément dans une liste ou un document d’une bibliothèque est à la suivante:

CODESITE CODELISTE CODEDOC AAAAAAAA

où :

  • CODEDOC: Nom court du document ou de l’élément.

Le nom court du document est généré comme un nom court de fichiers (nom 8dot3 http://technet.microsoft.com/en-us/library/ff621566(v=ws.10).aspx). Dans une invite de commande, les noms courts sont visibles grâce à l’instruction DIR /X.

Volontairement, il n’est pas tenu compte de la présence ou de dossiers dans la bibliothèque.

Si le document qui s’intitule Produit XYZ.docx a comme nom court PRODUI~1.DOC (par exemple).

Donc, s’il est nécessaire d’avoir des groupes spécifiques à ce document, cela donne:

  • DRH RAPACT PRODUI~1.DOC Lecture
  • DRH RAPACT PRODUI~1.DOC Collaboration
  • etc.

En images

Plan de nommage des groupes de sécurité SharePoint

Sécurité des accès dans SharePoint 2010

La sécurité des accès dans SharePoint 2010 est un sujet vaste, où il est aisé de s’y perdre. En plus des aspects sécuritaires, l’enjeu de la sécurité des accès dans SharePoint 2010 est son administrabilité à long terme.

Mettre en place des droits dans SharePoint 2010 est simple et même rapide. La difficulté vient avec le temps: évolution des sites (contenu, structure), mutation du personnel, changement de fonctions, etc.

Cette difficulté s’accroît aussi avec, globalement, la taille de l’entreprise et le nombre de documents à gérer, la dispersion géographique du personnel, le nombre d’utilisateurs, les fonctionnalités activées et l’usage.

Il n’est pas rare – c’est un doux euphémisme – qu’un audit de sécurité révèle des brèches béantes. Celles-ci sont dues à une méconnaissance du fonctionnement des mécanismes de sécurité dans SharePoint 2010.

Cet article essaye d’éclaircir ces fameux mécanismes.

Administrateurs de la ferme

Lors de l’installation, SharePoint Server crée au niveau de l’administration centrale le groupe SharePoint Administrateurs de la batterie (« Farm Administrators »).

Ce groupe a un contrôle total sur les serveurs de la ferme. Il sert à l’administration  technique de SharePoint : Gérer les serveurs, Gérer les services, Gérer les fonctionnalités des batteries de serveurs, Gérer les applications Web, Créer des collections de sites, Gérer les applications de service, Gérer les bases de données de contenu, Sauvegarder / restaurer, Analyser le fonctionnement, etc.

Par défaut, les membres de ce groupe n’ont pas accès aux collections de sites. Autrement dit, un administrateur de la ferme peut créer une collection de sites mais il ne peut pas la gérer, à moins qu’il se soit désigné comme administrateur de la collection de sites.

Microsoft a donc bien distingué l’administration « technique » de l’administration « fonctionnelle ».

Même si l’administrateur de la ferme n’est pas administrateur de la collection de sites, il peut décider des niveaux d’autorisations administrables par l’administrateur de la collection de sites. En particulier, l’administrateur de la ferme peut restreindre la liste des autorisations de l’application web qui porte les collections de sites.

Ainsi, seuls un nombre restreint d’autorisations seront accordés aux utilisateurs des collections de site de l’application web. Comme ces restrictions s’appliquent aussi aux administrateurs de la collection de sites, il est plus efficace que le compte d’administration de la ferme soit différent du compte d’administration de la collection de site.

Par exemple, l’administrateur de la ferme peut désactiver l’autorisation de supprimer des éléments. Dans ce cas, l’administrateur de la collection de sites et les utilisateurs ne pourront plus supprimer un élément d’une liste ou d’une bibliothèque. En revanche, ils pourront toujours à ajouter ou modifier les éléments sous réserve de disposer des droits ad’hoc.

En fonction de la zone de provenance d’un utilisateur (« intranet », « internet », etc.), l’administrateur de la ferme peut lui attribuer des autorisations différentes grâce à une stratégie de sécurité sur l’application web. La stratégie de sécurité concerne les demandes effectuées à travers la zone spécifiée.

Par exemple, si Alice se connecte en interne (zone « par défaut »), elle dispose d’un accès de collaborateur. Par contre, si elle se connecte via Internet, elle ne dispose plus que d’un accès en lecture seule.

Les permissions issues d’une stratégie de sécurité l’emportent toujours sur les autres autorisations.

Administrateurs de la collection de sites

Lors de la création d’une collection de site, l’administrateur de la ferme doit obligatoirement désigner au moins un administrateur de la collection.

Bien qu’au moment de créer une collection de sites, l’interface de l’Administration centrale de SharePoint 2010 ne propose la saisie que de deux administrateurs de la collection (« principal », « secondaire »), il sera possible par la suite d’en rajouter d’autres.

Il n’existe pas de différences entre un administrateur « Principal » et « Secondaire ». Il s’agit d’une simple aide pédagogique.

L’administrateur d’une collection de sites dispose du contrôle total sur tous les sites web de la collection de sites. L’inverse n’est pas vrai, si vous disposez du contrôle total « uniquement », cela ne fait pas de vous un administrateur de la collection de sites.

Dans ce cas, vous ne pourrez pas :

  • modifier les administrateurs de la collection de site,
  • avoir accès aux paramètres de la collection de sites: Paramètres de recherche, Étendues de recherche, Mots clés de recherche, Mots clés FAST Search, Promotion et rétrogradation du site FAST Search, Contexte utilisateur FAST Search, Corbeille, Fonctionnalités de la collection de sites, Hiérarchie des sites, Navigation dans la collection de sites, Paramètres d’audit des collections de sites, Rapports du journal d’audit, Connexion au site portail, Stratégies de collections de sites, Profils de cache de la collection de sites, Cache d’objets de la collection de sites, Cache de sortie de la collection de sites, Publication de type de contenu, Variantes, Étiquettes de variante, Colonnes à traduire, Journaux de variante, Emplacements de navigateur de contenu suggérés, Paramètres de SharePoint Designer, Mise à niveau visuelle, Paramètres de l’aide,
  • avoir accès à certains paramètres de site: Flux de travail, Paramètres d’étendue des liens connexes, Contenu et structure, Journaux Contenu et structure.

L’administrateur de la collection de sites gère aussi les demandes d’accès à la collection de sites.

Autorisations et niveaux d’autorisations

En matière d’autorisations, il existe deux notions qu’il ne faut pas confondre:

  • Autorisations
  • Niveaux d’autorisations

Une autorisation est la particule la plus élémentaire en matière de droits.

Exemples d’autorisations de site : Gérer les autorisations, Créer des sous-sites, Ajouter et personnaliser des pages, Appliquer des thèmes, Appliquer des feuilles de styles, Gérer les alertes, Utiliser les interfaces WebDav, Etc.

Exemples d’autorisations pour une liste : Gérer les listes, Remplacer l’extraction, Ajouter des éléments, Modifier des éléments, Supprimer des éléments, Afficher des éléments, Approuver des éléments, Ouvrir des éléments, Afficher les versions, Supprimer les versions, Créer des alertes, Etc.

Toutefois, et malgré ce que l’interface graphique présente, vous n’attribuez pas directement une autorisation. Dans SharePoint, vous accordez les autorisations à travers les niveaux d’autorisation.

Un niveau d’autorisation est une combinaison d’autorisations.

Vous trouverez ci-dessous les niveaux d’autorisation fournis par défaut, avec une illustration de qu’il est possible de faire:

  • Contrôle total : gérer les droits,
  • Conception : modifier les pages,
  • Collaboration : déposer un document dans une bibliothèque,
  • Lecture : lire un document sans pouvoir l’enregistrer dans la bibliothèque d’origine,
  • Vue seule : afficher la liste des documents sans pouvoir les lire.

Dans le détail, un niveau d’autorisation donné correspond à une liste précise d’autorisations accordées. Par exemple, il existe un niveau d’autorisation par défaut intitulé Lecture. Pour une liste, il correspond aux autorisations : afficher les éléments, ouvrir les éléments, afficher les versions, créer des alertes et afficher les pages des applications. Le niveau d’autorisation Vue seule a les mêmes autorisations que Lecture sauf ouvrir les éléments.

Vous pouvez personnaliser les niveaux d’autorisation par défaut. Vous pouvez modifier les autorisations rattachées au niveau ou créer des niveaux supplémentaires.

En termes de bonnes pratiques, je vous recommande vivement de ne pas modifier les autorisations accordées aux niveaux d’autorisation par défaut. Si besoin est, créez vos propres niveaux d’autorisations. Ce cas de figure se présente dans les organisations importantes.

Un niveau d’autorisation peut être accordé à un compte utilisateur. Ce n’est pas recommandé. Il est préférable de rattacher cet utilisateur à un groupe puis d’accorder un niveau d’autorisation au groupe.

Reconnaissez que vous accordez un droit à une fonction ou un rôle de l’utilisateur dans l’organisation, et non à un utilisateur qui changera de fonction, un jour ou l’autre.

La question qui va surgir concerne l’utilisation de groupes SharePoint ou ceux de l’annuaire, comme Active Directory. Avant de donner des éléments de réponse à cette question épineuse, examinons le fonctionnement des groupes dans SharePoint.

Groupes SharePoint

Une collection de site SharePoint comprend au moins 4 groupes par défaut (entre crochets figure le niveau d’autorisations accordé):

  • Groupe Propriétaires [Contrôle total]
  • Groupe Membres [Collaboration]
  • Groupe Visiteurs [Lecture]
  • Groupe Visualiseurs [Vue seule]

Selon les fonctionnalités activées sur votre collection de site, vous pouvez obtenir d’autres groupes: Approbateurs, Concepteurs, etc.

Lorsqu’un nouvel utilisateur est ajouté à un groupe, il hérite automatiquement des autorisations accordées au groupe.

Tous ces groupes se personnalisent. Vous pouvez modifier les niveaux d’autorisation attachés aux groupes par défaut ou créer des groupes supplémentaires.

Les groupes SharePoint ont une particularité un peu perturbante au départ. Lorsque vous créez un groupe, il est disponible pour tous les sites de la collection de sites, quel que soit l’endroit à partir duquel vous le créez. Même si vous créez le groupe dans un site adjacent ou dans une sous-arborescence, il est visible par tous les sites. Même si dans le site où vous créez le groupe, l’héritage est rompu.

Une fois que ce comportement est assimilé, il reste à définir les critères qui président au choix d’un groupe SharePoint ou d’un groupe Active Directory (AD).

Souvent les administrateurs de l’AD ne veulent pas que les applications viennent « polluer » l’AD. Autrement dit, ils ne veulent pas créer de groupes spécifiques dans l’AD pour SharePoint.  Dans certaines organisations, la situation est bloquée et les utilisateurs n’ont pas d’autres choix que d’utiliser des groupes SharePoint.

Pourtant la gestion des droits à l’aide de groupes AD présente un intérêt certain et à ma préférence.

Le rôle de l’AD est de définir un référentiel unique et commun des identités de l’entreprise. Hors, l’utilisation des groupes SharePoint entraine une surcharge administrative supplémentaire qui est parfois importante. Notamment, si cette administration est déléguée aux utilisateurs. Dans ce cas, non seulement il n’y a pas d’automatismes, mais les risques liées à la sécurité d’accès sont élevés car il n’y a pas de contrôles à posteriori.

En outre, si vous utilisez des groupes AD, vous pourrez nativement utiliser l’outil de requête de l’AD qui permet de faire des recherches personnalisées avec la norme Lightweight Directory Access Protocol (LDAP). De plus, ces recherches sont facilitées grâce à l’assistant intégré.

Toutes ces raisons militent pour privilégier l’utilisation des groupes de l’AD.

Sécurité des rôles

La sécurité dans SharePoint n’est pas monolithique. Au contraire, vous accordez un droit (un niveau d’autorisations) à un utilisateur (à travers un groupe) sur un objet.

Les objets sécurisables sont:

  • Site,
  • Liste ou bibliothèque,
  • Dossier d’une bibliothèque
  • Elément d’une liste ou document d’une bibliothèque.

Autrement dit, un utilisateur peut avoir des droits différents sur un même site.

Par exemple, Alice peut avoir le droit d’accéder en lecture à un site. Sur le même site, elle pourra accéder en mise à jour sur la bibliothèque ‘Documents partagés’. Notez que c’est possible malgré le fait qu’un droit de mise à jour est « plus important » qu’un droit de lecture.

C’est ce qu’on appelle la sécurité des rôles. SharePoint utilise la sécurité des rôles pour vérifier la permission d’un groupe ou d’un utilisateur par rapport à un objet.

La liste des objets sécurisables est limitée.

En particulier, il n’est pas possible actuellement de donner des droits différents sur une partie d’une page SharePoint, ni même sur un composant de WebPart.

Les audiences seront traitées dans un autre article mais, en aucun cas, ils ne sont un élément pour gérer les droits.

Héritage

Par défaut, un nouveau site dans une collection de site hérite des autorisations du site parent. Un sous-site d’un site hérite donc des droits du site parent.

Les objets héritent aussi par défaut des sécurités de l’objet parent. Par exemple, une liste par rapport à son site.

Tant que l’héritage n’est pas rompu, il maintient un lien dynamique avec les droits du parent direct. Si l’héritage est cassé, les droits du parent sont recopiés sur l’enfant sans lien dynamique. Les droits de l’enfant deviennent alors modifiables.

Cela peut être aussi une source de confusion au début. Si vous n’y prenez pas garde, vous risquez de modifier les droits du parent. En effet, avant de modifier les droits d’un enfant, il faut casser l’héritage. Si vous oubliez de rompre cet héritage, vous modifierez les droits du parent.

La bonne nouvelle c’est qu’un héritage rompu peut être rétabli à chaque instant. Dans ce cas, tous les droits modifiés de l’enfant sont perdus.

Autorisations des listes ou des bibliothèques

Tout comme les droits sur les sites, vous avez la possibilité de restreindre l’accès à des listes ou des bibliothèques.

Pour la gestion des droits d’une liste, affichez les paramètres de celle-ci. Dans les paramètres, cliquez sur « Autorisations pour le composant : liste ».

Pour la gestion des droits d’une bibliothèque, affichez les paramètres de celle-ci. Dans les paramètres, cliquez sur « Autorisations pour le composant : bibliothèque de documents ».

Si vous voulez aller plus loin, dans une bibliothèque ou une liste, vous avez la possibilité de donner des droits différents à des objets qui en font partie. Par exemple, donner des droits à un fichier Word d’une bibliothèque de documents.

Droits sur les documents

Pour donner des droits sur n’importe quel document, afficher le contenu de la liste ou de la bibliothèque et cliquez sur le menu d’édition du document pour en afficher le menu contextuel.

Bonnes pratiques de sécurité

Dans la pratique, l’expérience m’a montré que la gestion des droits est structurante sur le design des sites. Ce qui signifie que vous devez tenir compte du modèle de droits SharePoint pour votre conception: si, par exemple, vous aviez prévu de donner des droits différents au milieu d’une page.

En termes de méthode, il n’est évidemment pas possible de donner un algorithme systématique pour réussir la mise en oeuvre de la sécurité des accès dans SharePoint 2010.

D’autant que la sécurité des accès n’est qu’une partie de la sécurité globale:

Pour configurer les paramètres antivirus ou gérer les types de fichiers bloqués, reportez-vous au site de Microsoft.

Vous trouverez ci-dessous quelques pistes pour avancer.

Pour chaque site: 1) Listez les futurs utilisateurs par fonction dans chaque service ; 2) Distinguez les utilisateurs selon leurs droits : auteurs, lecteurs, autres.

Pour ‘Mon Site': Utilisez des groupes de sécurité pour gérer les autorisations des sites Mon site.

Niveaux d’autorisations: 1) Créez des niveaux supplémentaires afin de tenir compte des dérogations ; 2) Définissez un niveau d’autorisation par combinaison des autorisations.

Ciblage d’audiences: 1) L’audience n’est pas un droit ; 2) Utilisez les audiences pour masquer un objet (WebPart, etc.).

Utilisateurs: 1) Ne donnez pas des droits à un utilisateur ; 2) Donnez un droit à un groupe de l’AD ou à un groupe SharePoint.

Groupes: 1) Créez des groupes pour factoriser les droits ; 2) Assignez un niveau d’autorisation aux groupes ; 3) Attachez le groupe SharePoint à un des quatre objets à sécuriser: Site, Liste / Bibliothèque, Dossier, Elément / Document

Pour aller plus loin

Gérer les utilisateurs et les autorisations avec Microsoft. Vous saurez donner des autorisations et niveaux d’autorisation puis gérer les autorisations par le biais d’une stratégie et gérer les autorisations pour une application Web. Vous apprendrez aussi comment prendre possession d’une collection de sites et gérer les administrateurs de collection de sites.

Pour apprendre à Configurer les fournisseurs d’authentification avec Microsoft.

Annexes

Les informations ci-dessous sont issues de la documentation Microsoft.

Autorisations des listes ou bibliothèques

Gérer les listes  –  Créer et supprimer des listes, ajouter des colonnes à une liste ou en supprimer, et ajouter des affichages publics à une liste ou en supprimer.

Remplacer l’extraction  –  Ignorer ou archiver un document qui est extrait pour un autre utilisateur.

Ajouter des éléments  –  Ajouter des éléments à des listes, et des documents à des bibliothèques de documents.

Modifier des éléments  –  Modifier des éléments dans des listes, des documents dans des bibliothèques de documents, et personnaliser des pages de composants WebPart dans des bibliothèques de documents.

Supprimer des éléments  –  Supprimer des éléments d’une liste, et des documents d’une bibliothèque de documents.

Afficher les éléments  –  Afficher des éléments dans des listes et des documents dans des bibliothèques de documents.

Approuver des éléments  –  Approuver une version secondaire d’un élément de liste ou d’un document.

Ouvrir les éléments  –  Afficher la source des documents avec des gestionnaires de fichiers côté serveur.

Afficher les versions  –  Afficher les versions antérieures d’un élément de liste ou d’un document.

Supprimer les versions  –  Supprimer les versions antérieures d’un élément de liste ou d’un document.

Créer des alertes  –  Créer des alertes.

Afficher les pages des applications  –  Afficher les formulaires, les affichages et les pages des applications. Énumérer les listes.

Autorisations des sites

Gérer les autorisations  –  Créer et modifier des niveaux d’autorisation sur le site Web, et affecter des autorisations à des utilisateurs et à des groupes.

Afficher les données Web Analytics  –  Afficher les rapports sur l’utilisation du site Web.

Créer des sous-sites  –  Créer des sous-sites, tels que des sites d’équipes, des sites Espace de travail de réunion et Espace de travail de document.

Gérer le site Web  –  Donner la capacité d’effectuer toutes les tâches d’administration sur ce site Web et de gérer le contenu.

Ajouter et personnaliser des pages  –  Ajouter, modifier ou supprimer des pages HTML ou de composants WebPart, et modifier le site Web à l’aide d’un éditeur compatible avec Microsoft SharePoint Foundation.

Appliquer des thèmes et des bordures  –  Appliquer un thème ou des bordures à l’ensemble du site Web.

Appliquer des feuilles de style  –  Appliquer une feuille de style (fichier .CSS) au site Web.

Créer des groupes  –  Créer un groupe d’utilisateurs pouvant être utilisé partout dans la collection de sites.

Parcourir les répertoires  –  Énumérer les fichiers et les dossiers d’un site Web à l’aide des interfaces SharePoint Designer et Web DAV.

Utiliser la création de sites libre-service  –  Créer un site Web à l’aide de la fonctionnalité de création de sites libre-service.

Afficher les pages  –  Afficher les pages d’un site Web.

Énumérer les autorisations  –  Énumérer les autorisations pour ce site Web (liste, dossier, document ou élément de liste).

Parcourir les informations utilisateur  –  Afficher les informations sur les utilisateurs du site Web.

Gérer les alertes  –  Gérer les alertes pour tous les utilisateurs de ce site Web.

Utiliser les interfaces distantes  –  Utiliser l’interface SOAP, Web DAV, SharePoint Designer ou du modèle objet client pour accéder au site Web.

Utiliser les fonctionnalités d’intégration des clients  –  Utilise des fonctionnalités qui permettent de lancer des applications clientes. Sans ce droit, l’utilisateur doit utiliser les documents en local et télécharger ses modifications.

Ouvrir  –  Autorise les utilisateurs à ouvrir un site Web, une liste ou un dossier pour accéder aux éléments de ce conteneur.

Modifier les informations personnelles de l’utilisateur  –  Autorise un utilisateur à modifier ses informations d’utilisateur, notamment ajouter une photo

Autorisations personnelles

Gérer les affichages personnels  –  Créer, modifier et supprimer des affichages personnels de listes.

Ajouter/Supprimer des composants WebPart personnels  –  Ajouter ou supprimer des composants WebPart personnels sur une page de composants WebPart.

Mettre à jour des composants WebPart personnels  –  Mettre à jour les composants WebPart pour qu’ils affichent des informations personnalisées.

System Center

Plusieurs phénomènes expliquent l’engouement actuel pour les outils de supervision.

La baisse drastique du prix du matériel informatique a remis d’actualité l’achat de postes de travail au détriment des terminaux passifs.

Les terminaux passifs utilisés pour les sessions virtuelles avec Terminal Server, Citrix, etc. correspondent à une architecture centralisée. L’utilisation de PC entraîne des besoins de supervision centralisée d’une architecture décentralisée.

De plus en plus, les responsables informatique veulent avoir une vue orientée services, et non « machines ». Ils veulent donc surveiller les événements, les alertes, la disponibilité et les performances des services. En cas d’anomalie ou d’alertes, il faut pouvoir exécuter simplement des tâches (relancer un service, par exemple).

Ce besoin de qualité de services requiert une simplicité maximum. L’objectif étant d’automatiser efficacement la supervision.

SCOM: Une véritable valeur ajoutée

Avec System Center Operations Manager R2 (SCOM), ou System Center Essentials (SCE), Microsoft apporte plus qu’un produit ou qu’une technologie. Concrètement, il donne son savoir-faire à travers les « managements packs ».

Plutôt que de paramétrer soi-même les produits, avec des tâtonnements qui peuvent se révéler coûteux, vous télécharger gratuitement un « pack d’administration dédié » pour administrer vos Contrôleurs de Domaine, ou vos serveurs SQL Server ou Exchange Server, etc.

Autrement dit, vous avez à disposition le savoir-faire de Microsoft en matière de supervision de services, de serveurs et de postes de travail.

System Center Operations Manager R2 s’intégre dans les environnements IBM tivoli et HP OpenView. Il prend aussi en charge les systèmes UNIX et Linux.

System Center Essentials est un produit hybride qui répond aussi bien aux besoins d’inventaires et de télédistribution comme peut l’être System Center Configuration Manager.

Le rôle de System Center Essential est l’administration du parc de serveurs et postes de travail : inventaire matériel et logiciel, gestion des mises à jour, déploiement d’applications.

Il est destiné aux PME.

Inventaire et télédistribution avec SCCM

De nombreuses sociétés se sont lancées dans la création de leur outils « maison » pour assurer la télédistribution de logiciels. En effet, l’offre de l’époque de Microsoft a mis longtemps à évoluer de Systems Management Server (SMS 2.0) vers Systems Management Server 2003 (SMS 2003) puis System Center Configuration Manager (SCCM).

L’apparition de System Center Configuration Manager R2 a remis en cause les solutions « maison ». Sans vouloir être dithyrambique, il faut reconnaître que le produit a bien évolué.

Gérant les postes mobiles ou distants, la conformité des configurations, le déploiement des applications et des systèmes d’exploitation, Office, Vista, Windows Server 2008, les serveurs et les périphériques, System Center Configuration Manager R2 est une réelle avancée pour optimiser et simplifier la gestion opérationnelle de ces environnements.

La version R2 prend en charge la virtualisation d’application, l’intégration des services de reporting SQL et l’intégration avec Forefront Client Security.

SCDPM pour protéger les données

System Center Data Protection Manager (SCDPM) permet la protection en mode quasi-continu des applications Microsoft : Office, SharePoint, Exchange, SQL server et des environnements virtuels.

Les nouveautés de DPM SP1 concerne le support de SQL server 2008 et la protection des environnements Hyper-V.

Pour gérer les environnements de virtualisation, il existe aussi des solutions dédiées comme le System Center Virtual Machine Manager (SCVMM).

L’indispensable couteau-suisse : SCCP

Microsoft System Center Capacity Planner (SCCP) permet de dimensionner et de planifier des déploiements de Microsoft Exchange, Microsoft System Center Operations Manager, Microsoft SharePoint Server.

Cet outil gratuit permet de bâtir des scénarios pour simuler un déploiement. Par exemple, quelles seraient les conséquences sur l’architecture du système d’information en changeant tel paramètre : nombre d’utilisateurs, profils des utilisateurs, etc.

SharePoint: Utiliser les métadonnées pour la sécurité

Une organisation rencontrait un problème de diffusion de documents assez classique. Cette organisation assure le rôle de diffuseur de contenu auprès d’autres organismes officiels, via un site extranet SharePoint. Une fois qu’un utilisateur d’un organisme étranger s’est identifié, il accède à ses documents.

Les métadonnées sont souvent utilisées pour faciliter la recherche ou pour catégoriser des documents afin d’opérer des filtres.

Un autre usage méconnu (ou peu utilisé) concerne la sécurité.

Modèle de sécurité standard de SharePoint

En effet, l’organisation mettait à disposition des documents qui sont communs à certains organismes et qui ne doivent pas être accessibles à tous. Afin de répondre à ce problème, le responsable de l’organisation avait décidé de s’appuyer sur le modèle de sécurité standard de SharePoint.

Pour cela, il avait mis en place différentes bibliothèques SharePoint pour les différents utilisateurs avec des droits spécifiques.

La gestion de plusieurs bibliothèques de documents devenait complexe et la maintenance des autorisations de niveau était difficile. De plus, certains documents furent volontairement dupliqués dans plusieurs bibliothèques pour résoudre rapidement des cas complexes.

Nouveau modèle de sécurité basé sur les métadonnées

Cette solution étant inacceptable, un nouveau modèle de sécurité basé sur l’utilisation de métadonnées a été proposé.

En utilisant ce nouveau modèle, il peut déposer de nouveaux documents dans SharePoint avec des métadonnées qui spécifie simplement les organismes qui peuvent y accéder: les niveaux de permissions accordés au document sont déduits des métadonnées des documents. Ce qui permet de réduire aussi le nombre de bibliothèque de documents à gérer.

Dans de nombreux cas, les métadonnées du document permettent d’indiquer qui peut y avoir accès. Toutefois, si vous avez l’intention d’utiliser les métadonnées pour la sécurité, vous devez planifier avec soin le type de métadonnées à collecter.

Comment exploiter l’Infrastructure de classification des fichiers (FCI) de Windows dans SharePoint

Avant de mettre en oeuvre SharePoint, les organisations se posent toujours la même question, à savoir: « Comment reprendre nos fichiers dans SharePoint avec pertinence? ».

Cette question est d’autant plus délicate lorsque des choix ont été faits en matière d’organisation des données avec des structures de fichiers très hiérarchiques car leur concepteur ont du mal généralement à les remettre en cause. La difficulté est accrue lorsque les organisations ont des milliers de documents sur les partages de fichiers des serveurs ou sur des noeuds DFS car les cas d’usages se multiplient.

Toutefois, ces organisations veulent migrer une partie de ces fichiers dans SharePoint afin d’en faciliter leur gestion.

Un des principaux avantages de SharePoint, par rapport au système de fichiers classique, réside dans l’utilisation des métadonnées. Les métadonnées caractérisent les informations contenues dans les fichiers, ce qui aide pour rechercher et filtrer des informations dans SharePoint de manière beaucoup plus puissante. Les métadonnées ne doivent pas se réduire à des mots-clefs. Généralement, seule la personne qui a créé des mots-clefs est capable de les retrouver (et encore…).

Dans SharePoint 2010 et 2013, les métadonnées peuvent être définies dans un référentiel d’entreprise. Ce référentiel est commun à toutes les personnes dans l’organisation. De plus, il peut être organisé sous la forme d’un thésaurus avec la gestion des synonymes, grâce aux métadonnées gérées.

Lors d’un article récent sur l’infrastructure de classification des fichiers (Fichier Classification Infrastructure / FCI) de Windows Server 2008 R2 ou Windows Server 2012 (http://technet.microsoft.com/en-us/library/hh831746.aspx), il était expliqué pourquoi cet ensemble de fonctionnalités était très proche des concepts de SharePoint en matière de stockage des documents.

Cet article explique comment exploiter FCI afin d’automatiser le transfert des fichiers et des éventuelles métadonnées associées dans SharePoint.

Pour cela, vous téléchargez le script Powershell FciSharePointUpload.ps1 publié par Microsoft.

L’objectif de ce script est de télécharger un fichier dans une bibliothèque de documents SharePoint ou via l’organisateur de contenu. Une fois que le fichier est téléchargé, le script peut éventuellement supprimer le fichier source ou le remplacer par un raccourci vers le fichier téléchargé. Par ailleurs, le document téléchargé peut garder son nom ou bien avoir un autre nom. Enfin, les propriétés de classification de contenu (métadonnées) du fichier source peuvent être être propagées à la cible ou ignorées.

Pour faire fonctionner correctement ce script, il est nécessaire que :

  • Le rôle Services de fichiers (File Services) soit activé et que le service de rôle Gestionnaire de ressources du serveur de fichiers (File Server Resource Manager) soit installé,
  • le site et la bibliothèque de documents doivent être créés au préalable,
  • La bibliothèque cible doit avoir un type compatible avec les propriétés de classification de contenu.

En revanche, il n’est pas nécessaire d’avoir fait un paramétrage particulier du File Server Resource Manager: il suffit qu’il soit installé.

Le script propose deux méthodes :

  • Télécharger un fichier dans une bibliothèque SharePoint
  • Envoyer un fichier dans l’organisateur de contenu grâce à Official File Web Service

Télécharger un fichier dans une bibliothèque SharePoint

La syntaxe générale est :

FciSharePointUpload.ps1 –file -url -libPath [-name ] [-sourceAction {keep|delete|url}] [-targetAction {overwrite|skip|fail}] [-propertyAction {copy|ignore}] [-user -password ]

Signification des paramètres:

  • file (obligatoire): chemin d’accès au fichier source à télécharger / uploader,
  • url (obligatoire): URL du site SharePoint destinataire,
  • libPath (obligatoire): chemin relatif à la bibliothèque de documents à l’intérieur du site,
  • name (facultatif): le nom du fichier cible. S’il n’est pas spécifié, la valeur est celle spécifiée par le paramètre « file »,
  • sourceAction (facultatif): indique comment gérer le fichier source après un upload réussi avec keep: laisser le fichier en place (par défaut), delete: supprimer le fichier, url: remplacer le fichier par un raccourci vers l’URL du document téléchargé,
  • targetAction (facultatif): spécifie comment gérer les documents de destination existants avec overwrite: remplacer (par défaut), skip: laisser la version existante et continuer, fail: erreur en retour,
  • propertyAction (facultatif): spécifie s’il faut transférer les propriétés de la FCI lors du téléchargement avec copy: transférer les propriétés (par défaut), ignore: ne pas transférer les propriétés et laisser SharePoint choisir les valeurs par défaut,
  • user (facultatif): nom d’utilisateur à utiliser pour l’authentification. Le paramètre est ignoré si « password » n’est pas spécifié,
  • password (facultatif): mot de passe à utiliser pour l’authentification. Le paramètre est ignoré si « user » n’est pas spécifié.

Par exemple, si vous souhaitez télécharger le fichier K:Budgets2014InvestissementProjet ABCMontant priorité 1Document 001.docx dans la bibliothèque Budgets du site http://sharepoint/sites/finances, la commande minimale correspondante est :

FciSharePointUpload.ps1 –file "K:Budgets2014InvestissementProjet ABCMontant priorité 1Document 001.docx" -url http://sharepoint/sites/finances -libPath Budgets

Si vous voulez créer un raccourci à la place du fichier source, vous pouvez taper la même commande en rajoutant: -sourceAction url, soit:

FciSharePointUpload.ps1 –file "K:Budgets2014InvestissementProjet ABCMontant priorité 1Document 001.docx" -url http://sharepoint/sites/finances -libPath Budgets -sourceAction url

Envoyer un fichier dans l’organisateur de contenu grâce à Official File Web Service

La syntaxe générale est :

FciSharePointUpload.ps1 –useOfficialFileWebService –file -url [-name ] [-contentType ] [-sourceAction {keep|delete|url}] [-propertyAction {copy|ignore}] [-user -password ] [-additionalProperties]

La signification des paramètres communs est identique à celle qui est spécifiée dans la 1ere méthode. Seule la signification des nouveaux paramètres est présentée ici:

  • useOfficialFileWebService (obligatoire): indique le choix de la seconde méthode,
  • contentType (facultatif): le nom du type de contenu à utiliser pour le document. S’il n’est pas spécifié, c’est « Document » par défaut.
  • additionalProperties (facultatif): liste des propriétés supplémentaires à utiliser pour le document. Ce paramètre doit être la dernière option spécifiée et être suivie d’une liste de chaînes de caractères séparée par des espaces. Chaque groupe de trois chaînes est interprété comme le nom, le type et la valeur de la propriété à ajouter, dans cet ordre. La taille de la liste doit être un multiple de trois. Ces propriétés supplémentaires sont toujours utilisés, indépendamment de la valeur du paramètre propertyAction.

Via la console FSRM de FCI, j’ai créé une définition de propriété et une règle de classification qui s’applique au dossier local C:Projets.

La règle stipule que si le titre du document est « audit » (en minuscules ou en majuscules ou une combinaison des casses), la propriété Directions du document est DOI. La propriété Directions avait été préalablement définie dans la console FSRM.

J’ai ensuite créé une colonne appelée Directions dans une bibliothèque SharePoint appelé Projets.

En exécutant le script, celui-ci a copié les fichiers dans la bibliothèque SharePoint, ainsi que les métadonnées qui ont été transférés avec les fichiers.

Diviser un fichier vCard en de multiples fichiers séparés avec Powershell

Les contacts de Gmail peuvent être exportés dans un fichier au format vCard pour une importation dans le carnet d’adresses Apple ou une autre application comme Outlook.

Le fichier produit s’intitule contacts.vcf. Il contient toutes vos adresses dans un seul fichier. Les adresses étant au format vCard, elles sont stockées dans le fichier sous la forme:
BEGIN:VCARD
VERSION:3.0
FN:Jean Dujardin
N:Dujardin;Jean;;;
EMAIL;TYPE=INTERNET:jean.dujardin@gmail.com
NOTE:Intelligence économique
END:VCARD

Chaque adresse est donc encadrée dans un bloc BEGIN:VCARD – END:VCARD.

Lorsque j’ai voulu importer ce fichier dans Microsoft Outlook 2013, celui-ci n’a lu que la première adresse. Pour contourner cette difficulté, j’ai trouvé sur le web un script en Windows PowerShell qui permet de lire un gros fichier pour générer des petits fichiers unitaires.

Le script de Paul Westlake a justement été écrit pour diviser un fichier vCard en de multiples fichiers séparés. Comme il correspondait parfaitement à mon besoin, je l’ai uniquement francisé.

Le script n’étant pas signé, pensez à modifier la préférence utilisateur de la stratégie d’exécution Windows PowerShell avec la commande Set-ExecutionPolicy.

SplitVCF_V1_0_0.zip

Consultant IT, Ingénieur de développement logiciel, Formateur