SharePoint et les outils de gestion et de configuration
Date de publication : 30/05/2009
L'administration de SharePoint est un vaste sujet. Dans cet article, nous allons parcourir la liste des outils
existants et voir comment on peut étendre les outils de configuration via stsadm et powershell.
I. SharePoint et ses outils standards
II. SharePoint et les outils communautaires
III. Quels outils pour personnaliser et faciliter l'administration?
III-A. PowserShell
III-B. Commandes stsadm personnelles
III-B-1. Création du projet Visual Studio
III-B-1-a. Déployer la commande
III-B-1-b. Debugger une commande stsadm
IV. Conclusion
V. Téléchargement
I. SharePoint et ses outils standards
Out of the box, SharePoint propose trois outils principaux permettant d'administrer et de gérer une ferme
au quotidien. Ces outils sont :
- la centrale d'administration
- stsadm
- psconfig
La centrale d'administration permet de gérer de manière interactive toute une série d'éléments permettant à une ferme
SharePoint de fonctionner. On y retrouve principalement trois grandes sections :
- L'onglet Applications : il permet de gérer tout ce qui est relatif aux applications SharePoint, à savoir les collections de sites, la sécurité, les fonctionnalités d'application, forms server...
- L'onglet Operations : il permet de gérer toutes les fonctionnalités transversales (ayant un scope de ferme) comme par exemple les serveurs, les services, les jobs, les logs etc...
- Les centres de services partagés : ils permettent de gérer tous les composants tels que Excel Services, le moteur de recherche, les profils utilisateurs, les audiences....
En plus de pouvoir effectuer des opérations ayant un impact direct, la centrale permet de définir des tâches programmées devant s'exécuter
de manière répétée et automatique.
stsadm permet de gérer en ligne de commande quasiment tout ce que l'on peut faire depuis la centrale. Simplement, étant donné qu'il s'agit d'une
ligne de commande, il est possible de l'encapsuler dans un fichier batch et de scripter toute une série d'opérations. En outre, certaines tâches telles que
l'ajout d'une solution (stsadm -o addsolution) ne sont pas réalisables depuis la centrale.
psconfig permet de gérer en ligne de commande ce que l'assistant graphique de configuration post-installation fait.
II. SharePoint et les outils communautaires
En complément des outils standards, il existe toute une série d'outils communautaires permettant de gérer
une ferme et de comprendre comment celle-ci fonctionne. Pour certains d'entre eux, l'objectif est d'ailleurs plus
d'outiller les développeurs que d'être réellement un outil utilisé dans le cadre d'une gestion classique de ferme.
Voici une liste non exhaustive des plus connus :
| SharePoint Manager |
http://spm.codeplex.com/ |
Un outil permettant de visualiser/gérer à peu près tous les objets présents dans une ferme SharePoint. C'est une application Windows. |
| SharePoint SUSHI |
http://sushi.codeplex.com/ |
Un outil permettant de gérer la création multiple de listes, de visualiser des rapports relatifs à la sécurité etc.. |
| stsadm extensions de Gary Lapointe |
http://stsadm.blogspot.com/ |
Un outil permettant proposant une longue série d'opérations additionnelles pour stsadm. |
III. Quels outils pour personnaliser et faciliter l'administration?
III-A. PowserShell
PowerShell remplace avantageusement les traditionnels fichiers batch DOS. Même si ceux-ci restent encore utilisables, ils font
pâle figure face à PowerShell. Je vous invite à lire l'excellent
article de Fabrice Romelard sur le sujet où il décrit comment exploiter
PowerShell avec SharePoint.
Par ailleurs, il a également créé un projet sur CodePlex où il a déposé
toute une série de scripts pouvant servir au plus grand nombre.
III-B. Commandes stsadm personnelles
SharePoint étant une plate-forme totalement ouverte, il est possible de créer ses propres opérations stsadm. Voici la marche à suivre :
III-B-1. Création du projet Visual Studio
Créez simplement un projet de type Class Library avec Visual Studio :
Renommez class1.cs en DvpOperation.cs
Signez le projet :
Ajoutez ensuite une référence à la DLL Microsoft.SharePoint en cliquant sur References => Add Reference => Windows SharePoint Services
Structurez votre projet comme suit en créant les répertoires 12 et 12\CONFIG et en ajoutant un fichier XML stsadmcommands.dvp.xml au répertoire CONFIG:
Implémentez ensuite l'interface ISPStsadmCommand :
Deux méthodes doivent être écrites :
- GetHelpMessage : permet de retourner un message d'aide destiné à l'utilisateur
- Run : exécute les instructions de l'opération en cours. Cette méthode retourne le status au processus appelant. Ce status est classiquement 0 quand tout va bien et -1 ou -2 en cas d'erreur
Il ne nous reste désormais plus qu'à imaginer un scénario. Disons que l'on va prendre en paramètre une URL ciblant un site et que l'on va lister toutes les listes cachées
que ce site contient. On appellera donc cette opération showhiddenlists.
Avant d'implémenter le code, nous allons rendre cette commande connue par le système. Pour ce faire, ouvrez votre fichier xml stsadmcommands.dvp.xml préalablement
créé et insérez-y ceci :
<?xml version="1.0" encoding="utf-8" ?>
<commands>
<command
name="showhiddenlists"
class="DVP.StsAdmExtensions.DvpOperation, DVP.StsAdmExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=391fd2089473022a"/>
</commands>
|
Vous pouvez décrire une ou plusieurs commandes. Les attributs sont
name qui correspond au nom de la commande, en l'occurrence
showhiddenlists et
class qui pointe vers la classe de l'assemblage que nous sommes en train de réaliser. Pour récupérer votre signature, utilisez
.NET Reflector.
Le fichier sera déployé dans le répertoire 12\CONFIG de SharePoint. Il doit impérativement s'appeler stsadmcommands.<ce que vous voulez>.xml
Passons à présent au code, implémentez les deux méthodes comme suit:
string ISPStsadmCommand.GetHelpMessage(string command)
{
return "usage : stsadm -o showhiddenlists -url <votre url>";
}
int ISPStsadmCommand.Run(string command, System.Collections.Specialized.StringDictionary keyValues, out string output)
{
StringBuilder CommandOutput = new StringBuilder();
output = string.Empty;
if (!keyValues.ContainsKey("url"))
return -2;
try
{
using (SPSite Site = new SPSite(keyValues["url"]))
{
using (SPWeb Web = Site.OpenWeb())
{
SPListCollection Lists = Web.Lists;
foreach (SPList List in Lists)
{
if (List.Hidden)
CommandOutput.AppendFormat(
"List : {0}\r\nGuid : {1}\r\n Items : {2}\r\n\r\n-------------------------------------\r\n",
List.Title,
List.ID.ToString(),
List.ItemCount.ToString());
}
}
}
output = CommandOutput.ToString();
}
catch (Exception Ex)
{
output = Ex.Message;
return -2;
}
return 0;
}
|
III-B-1-a. Déployer la commande
Pour la belle méthode :
Utilisez
WSPBuilder pour générer et déployer votre solution :
Sur un serveur de dev
Copiez le fichier stsadmcommands.dvp.xml dans le 12\CONFIG de SharePoint et faites un glisser-déplacer de votre DLL vers c:\windows\assembly. Il n'est bien sûr pas nécessaire de redémarrer IIS puisqu'il n'
intervient pas dans l'exécution d'une commande stsadm.
III-B-1-b. Debugger une commande stsadm
Ajoutez simplement le code :
System.Diagnostics.Debugger.Launch();
|
à l'endroit où vous souhaitez intercepter l'exécution de votre code.
IV. Conclusion
PowerShell et la possibilité d'étendre stsadm offrent d'innombrables perspectives en terme d'automatisation de tâches administrative et de flexibilité.
V. Téléchargement
Vous pouvez télécharger l'exemple proposé
ici


Copyright © 2009 stephane eyskens. Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 €
de dommages et intérêts.
Cette page est déposée.