Infrastructure de classification des fichiers

Dans cet article, vous allez découvrir comment l’infrastructure de classification des fichiers (FCI) de Windows peut vous aider dans la mise en place de sites SharePoint.

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

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 nœuds 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. L’objectif est de classer les fichiers Windows le plus intelligemment possible dans le but de faciliter leur recherche.

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.

Par ailleurs, dans SharePoint, 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 la création d’une infrastructure de classification des fichiers (Fichier Classification Infrastructure / FCI) de Windows Server, 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 une infrastructure de classification des fichiers afin d’automatiser le transfert des fichiers et les éventuelles métadonnées associées dans SharePoint.

Infrastructure de classification des fichiers

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

Notamment, 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. Après le chargement du fichier, le script peut éventuellement supprimer le fichier source ou le remplacer par un raccourci.

Par ailleurs, le document téléchargé peut garder son nom ou bien avoir un autre nom.

Ce script est d’autant plus efficace si vous disposez d’une infrastructure de classification des fichiers.

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

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

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,
  • 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,
  • password (facultatif): mot de passe à utiliser pour l’authentification.

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

FciSharePointUpload.ps1 –file "K:\Budgets14\Investissement\Projet ABC\Montant priorité 1\Document 001.docx" -url http://sharepoint/sites/finances -libPath Budgets

Pour créer un raccourci à la place du fichier source, rajoutez -sourceAction url, soit :

FciSharePointUpload.ps1 –file "K:\Budgets14\Investissement\Projet ABC\Montant priorité 1\Document 001.docx" -url http://sharepoint/sites/finances -libPath Budgets -sourceAction url
FciSharePointUpload
Fci SharePoint Upload

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]

Vous trouverez ci-dessous, la signification des nouveaux paramètres.

  • useOfficialFileWebService (obligatoire): indique le choix de la seconde méthode,
  • contentType (facultatif): le nom du type de contenu à utiliser pour le document,
  • additionalProperties (facultatif): liste des propriétés supplémentaires à utiliser pour le document.

Via la console FSRM de FCI, vous avez créé une définition de propriété. Vous avez aussi créé une règle de classification qui s’applique au dossier local C:\Projets.

infrastructure de classification des fichiers
infrastructure de classification des fichiers

Ensuite, la règle stipule que si le titre du document est « audit ». Enfin, la propriété Directions du document est DOI.

Lorsque vous exécutez le script, il copie les fichiers dans la bibliothèque SharePoint avec les métadonnées des fichiers.

Diviser un fichier vCard

Dans cet article, vous allez découvrir comment vous pouvez diviser un fichier vCard en de multiples fichiers. Vous allez pouvoir le faire grâce à Windows Powershell.

Le format vCard permet d’échanger simplement des cartes de visite électroniques. En effet, ce format est utilisé dans de nombreux logiciels de messageries électroniques. De plus, le format vCard est aussi disponible à travers les outils de messagerie instantanée. Enfin, il est aussi parfois utilisé pour des échanges entre mobiles.

Notamment, un fichier vCard contient les coordonnées d’un contact.

Exactement, comme une carte de visite traditionnelle expose les informations comme le nom, l’adresse, les numéros de téléphone, les adresses de courriels, etc..

diviser un fichier vCard
diviser un fichier vCard

Export au format vCard

Par ailleurs, vous pouvez exporter les contacts de Gmail dans un fichier au format vCard. Ensuite, vous pouvez importer ce fichier 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. De plus, 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

Aussi, un bloc BEGIN:VCARD – END:VCARD encadre chaque adresse.

Comment diviser un fichier vCard ?

Si vous importez ce fichier dans Microsoft Outlook, il importe uniquement la première adresse.

Aussi, pour contourner cette difficulté, j’ai trouvé sur le web un simple script en Windows PowerShell qui permet de lire un gros fichier pour générer des petits fichiers unitaires.

Le script de Paul Westlake divise un fichier vCard en de multiples fichiers. Les fichiers sont au format vCard aussi. Notamment, vous trouverez ci-dessous le script PowerShell français qui permet de diviser un fichier vCard en de multiples fichiers.

Enfin, 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.

Par ailleurs, si l’algorithme vous passionne, vous trouverez un exemple de parcours d’une arborescence de fichiers.

Code actuel:
SplitVCF_V2_0_0.zip

Ancien code:
SplitVCF_V1_0_0.zip

Disque SSD interne SATA

Après quelques mois d’utilisation, le disque SSD interne SATA de 2.5 pouces se révèle précieux pour 3 raisons principales.

La légèreté du disque SSD interne SATA est facilement perceptible. Surtout, si vous comparez avec un disque dur classique de taille et de capacité équivalentes.

Un autre avantage du disque SSD interne SATA concerne sa robustesse car ce modèle résiste au test de chute d’un étage. Vous pouvez même le remuer pendant qu’il travaille sans qu’il bronche !

En comparaison, les disques durs ne supportent pas bien les déplacements pendant qu’ils travaillent.

La vitesse est évidemment époustouflante sur un port compatible. La copie de fichiers, gros ou petits, est incroyablement rapide. Par rapport à un disque dur classique, le SSD est environ 15 fois plus rapide. L’onglet activité du disque du moniteur de ressources Windows permet de vérifier ce gain.

Si vous le voulez, compte-tenu des performances impressionnantes, vous pouvez aussi l’utiliser pour démarrer sur un VHD.

disque SSD interne SATA
disque SSD interne SATA

La technologie disque SSD interne SATA m’a conquis

Depuis, j’ai installé le disque SSD interne SATA Crucial pour le système d’exploitation de mon portable. Là aussi, c’est le jour et la nuit en termes de performances.

L’ordinateur est à nouveau réactif.

De plus, outre les qualités intrinsèques du disque SSD, l’autonomie du portable est encore plus importante.

Les performances sont aussi meilleures avec un disque SSD interne SATA

Avec ce type de disque SSD, vous pouvez observer une vitesse de lecture séquentielle de plus de 530 Mo/s.

Par ailleurs, la vitesse de lecture aléatoire peut atteindre quasiment 100 Ko/s.

Vous avez aussi une meilleure efficacité énergétique. En effet, celle-ci peut être près de 100 fois supérieure à celle d’un disque dur classique.

Bien évidemment, vous bénéficiez aussi d’une meilleure longévité par arapport à un disque dur classique. En effet, l’absence de petites pièces mobiles diminue les risques de défaillances.

Les disques SSD sont disponibles aussi bien pour l’environnement Windows, Mac ou Linux.

Parcours arborescence de fichiers

Dans cet article, vous allez découvrir comment réaliser un script qui procède à un parcours récursif et automatique d’une arborescence de fichiers.

En effet, afin de sauvegarder tous les fichiers du disque dur dans une archive compressée et cryptée, j’ai développé un programme en batch qui utilise la ligne de commande de WINRAR. Il fonctionne très bien, toutefois j’ai rencontré deux soucis.

Le premier problème, c’est la taille des données qui augmente sans cesse. Faire une unique sauvegarde de la totalité des données n’est pas pratique lors des restaurations. Un sous-répertoire est une archive. Le fichier archive est donc de taille plus petite.

Il faut gérer aussi le renommage des répertoires. Le script doit gérer dynamiquement le renommage d’un dossier.. Aussi le script procède à un parcours récursif des répertoires afin de découvrir automatiquement le nom des dossiers.

Le parcours récursif est actuellement sur deux niveaux, mais il est possible d’ajouter des niveaux supplémentaires sans difficulté.

Prenons un exemple. Les données à sauvegarder sont stockées dans une arborescence de quelques dossiers sur un lecteur Q:

Les dossiers du niveau 1 sont, par exemple:

    • A_faire,
    • Archives,
    • En_attente,
    • Important,
    • Personnel,
    • Travail,
    • Volumineux.

La taille de ces dossiers de niveau 1 est trop importante. Il faut dons faire la sauvegarde au niveau de chaque sous-dossier. Les sous-dossiers, comme les dossiers, n’ont pas d’espace dans leur nom : présence d’un tiret (« -« ) ou d’un underscore (« _ ») à la place de l’espace.

Aussi, le script doit sauvegarder chaque sous-dossier individuellement dans une archive. Cette archive est compressée et chiffrée. La structure du nom de l’archive est dossier.sous-dossier.rar. Un disque externe stocke les sauvegardes.

Parcours récursif d’une arborescence de fichiers

Le principe de fonctionnement est le suivant :

  • La liste des dossiers de Q: est stockée dans le fichier backup1.lst, grâce à la commande dir Q: /b > backup1.lst.
  • La commande FOR /f « delims=: tokens=1 » %%a in (‘TYPE backup1.lst’) do (…) traite le contenu de backup1.lst.

Puis pour chaque nom présent dans backup1.lst, le script utilise la même technique pour produire un fichier backup2.lst qui contient la liste des sous-dossiers:

  • dir Q:%%a /b > backup2.lst
  • FOR /f « delims=: tokens=1 » %%b in (‘TYPE backup2.lst‘) do call svg-0.01b.cmd %%a %%b

Le programme svg-0.01b.cmd se charge de la compression.

Une remarque sur le mot de passe. Notamment, celui-ci est en clair dans svg-0.01b.cmd : ce qui n’est pas prudent. Toutefois, il existe des techniques assez simple pour le lire à partir d’un fichier texte qui serait sur un emplacement sécurisé, mais finalement ça ne ferait que déplacer le problème.

Enfin, dans le même esprit, vous trouverez un script PowerShell pour diviser un fichier vCard en sous-fichiers vCard, qui eux-mêmes peuvent être divisés en sous-fichiers, etc.

SVG_V1_0_0.zip

arborescence de fichiers
arborescence de fichiers

Commandes AppCmd IIS

Pour administrer IIS (Internet Information Server), il existe des outils comme l’interface graphique du Gestionnaire IIS, les scripts WMI (rootWebAdministration), PowerShell, le code managé de l’API Microsoft.Web.Administration et aussi l’outil en ligne de commande AppCmd IIS.

Afin d’automatiser l’audit de IIS, j’ai développé une série de petits scripts basés sur AppCmd IIS. Ces scripts ont été rédigés après la lecture de l’article Appcmd.exe (IIS 7) de Microsoft.

Par ailleurs, certains des scripts peuvent s’utiliser sans personnalisation. Toutefois, de nombreux scripts nécessitent une adaptation des variables pour fonctionner correctement dans votre environnement.

AppCmd IIS
AppCmd IIS

Outils AppCmd IIS (Lettre A)

  • AUTHAnonymous- désactive l’authentification anonyme.
  • AUTHBase+ active l’authentification de base.
  • AUTHClaims+ active l’emprunt d’identité ASP.NET.
  • AUTHClaimsUser impose que IIS emprunte l’identité d’un compte précis.
  • AUTHDigest+ active l’authentification Digest avec un domaine précis.
  • AUTHFBA+ active l’authentification par formulaire.
  • AUTHWindows+ active l’authentification Windows.

Outils AppCmd IIS (Lettres B-C)

  • Backup sauvegarde la configuration IIS.
  • BackupList liste les sauvegardes existantes.
  • BackupNommée sauvegarde IIS avec un nom de sauvegarde imposé.
  • BackupRestaure restaure une sauvegarde nommée précise.
  • BackupSansConfirm sauvegarde la configuration IIS. Vous ne sauvegardez pas le contenu.
  • Compression+ active la compression HTTP du contenu statique.
  • CompressionParams configure les paramètres de compression de contenu statique.
  • Custerr ajoute un message d’erreur personnalisé pour l’erreur 401.2.
  • CustomHeaders ajoute un en-tête de réponse.

Outils AppCmd IIS (Lettres D à F)

  • DirectoryBrowse- désactive l’exploration de répertoire.
  • DirectoryBrowse+ active l’exploration de répertoire.
  • DocDefautFiles- supprime un fichier de la liste de documents par défaut.
  • DocDefautFiles+ ajoute un fichier à la liste de documents par défaut.
  • FilteringEtendus+ autorise les caractères étendus.
  • FilteringExtensions- supprime une règle applicable à une extension précise de nom de fichier.
  • FilteringExtensions+ ajoute une règle d’autorisation applicable à une extension précise de nom de fichier.
  • FilteringExtensionsUnlisted- refuse les extensions de nom de fichier non répertoriées.
  • FilteringExtensionsWebDav- n’applique pas le filtrage des extensions de nom de fichier aux demandes WebDAV.
  • FilteringMaxContenu spécifie une longueur maximale du contenu.
  • FilteringMaxEntete spécifie la taille maximale des en-têtes comportant une valeur précise.
  • FilteringMaxURL spécifie une longueur maximale d’une URL entrante.
  • FilteringURL- ne fait pas d’analyse des URL qui contiennent une séquence précise.
  • FilteringVerb+ autorise un verbe.
  • FilteringVerbUnlisted- refuse les verbes non répertoriés.
  • FilteringVerbUnlistedWebDav- n’applique pas le filtrage des verbes aux demandes WebDAV.

Outils AppCmd IIS (Lettres H à P)

  • Help affiche l’aide d’AppCmd.
  • IPSecAddress- crée une règle de refus pour une adresse IPv4.
  • IPSecAddress+ crée une règle d’autorisation pour une adresse IPv4.
  • ISAPI crée une restriction ISAPI qui active une extension ISAPI.
  • Log- désactive la journalisation.
  • Log+ active la journalisation.
  • MaxBandwidth limite la bande passante pour un site Web.
  • MaxConnexions limite le nombre de connexions.
  • MaxTimeout limite le timeout pour un site web.
  • MIME ajoute un type MIME.
  • PoolList identifie tous les pools d’applications en cours d’exécution.
  • PoolRecycle recycle tous les pools d’applications en cours d’exécution.

Outils AppCmd IIS (Lettre R)

  • Redirect- désactive la redirection.
  • Redirect+ active la redirection et redirige les utilisateurs vers un autre site web.
  • RedirectPermanent change le code d’état retourné pour la redirection (code réponse.
  • RedirectStandard change le code d’état retourné pour la redirection (code réponse.
  • RedirectTemporaire change le code d’état retourné pour la redirection (code réponse.
  • RequestsList affiche la liste des demandes en cours d’exécution.

Outils AppCmd IIS (Lettres S à W)

  • SecurityRule- crée une règle de refus pour les utilisateurs anonymes.
  • SecurityRule+ crée une règle d’autorisation pour tous les utilisateurs.
  • SecurityRuleComplex crée une règle d’autorisation pour les rôles Admin et Invité, ainsi que pour les utilisateurs Alice et Bob, puis applique cette règle aux verbes GET et POST.
  • SiteAdd ajoute un nouveau site Web.
  • SiteAutoStart affiche les sites arrêtés qui ne doivent pas s’exécuter automatiquement.
  • SiteConfig stocke la totalité de la configuration d’un site web dans un fichier au format XML.
  • SiteConfigEnregistre enregistre les informations de configuration d’un site dans un fichier.
  • SiteConfigRestaure restaure les informations de configuration d’un site à partir d’un fichier au format XML.
  • SiteDelete supprime un site web.
  • SiteList affiche les caractéristiques d’un site web.
  • SitesDeplacePool déplace toutes les applications d’un site vers un nouveau pool d’applications.
  • SiteSet modifie l’ID d’un site.
  • SitesList liste tous les sites Web.
  • SitesStartAll démarre tous les sites.
  • SiteStopped affiche les sites arrêtés.
  • SMTP+ configure le courrier électronique SMTP pour remettre immédiatement les courriels.
  • SSLPage exige SSL 128 bits pour un fichier HTML.
  • SSLSite exige SSL 128 bits pour le site Web.
  • Trace+ active la journalisation du suivi des demandes ayant échoué au niveau du site.
  • WPList répertorie les processus de travail en cours d’exécution.

Grille de lecture

Par ailleurs, le nom de mes scripts respecte, peu ou prou, les règles suivantes.

Notamment, vous trouverez le prefix AppCmd- devant un script Appcmd IIS.

Ensuite, le mot qui suit désigne la catégorie concernée (AUTH: Authorisation, WP: Worker Process, Site, SSL, Backup, Max, etc.).

Puis, il y a éventuellement un complément (MaxTimeout).

Puis, le signe + à la fin désigne un ajout ou une activation.

Enfin, le signe – à la fin désigne un retrait ou une désactivation.

Aussi, vous pouvez utiliser ces scripts comme vous voulez. Notamment, c’est à à vos risques et périls car il n’y a aucune garantie.

AppCmd_V1_0_0.zip