Remote stsadm ou comment exécuter des commandes stsadm à distance 

Admin, Sharepoint, Developpement

[EDIT]

La version 2 est disponible, le web service étant remplacé par un service WCF.

[/EDIT]

 

Pour les besoins d'un article qui devrait paraitre très prochainement, j'ai cherché une solution qui me permettrait d'exécuter à distance des commandes stsadm. N'ayant rien trouvé de concluant (malgré le fait que PowerShell pointe le bout de son nez), j'ai développé une petite application me permettant d'encapsuler une commande stsadm et de l'envoyer sur un serveur SharePoint pour exécution.

 

L'installation est simple :

 

  1. Ajouter un site IIS sur un des serveurs de la ferme SharePoint qui va servir à héberger le Web Service (pour le pool d'application de ce site, utilisez celui de la console centrale d'administration pour que vous ayez les droits nécessaires, ou créez en un nouveau avec un compte ayant suffisamment de droits)
  2. Utiliser l'application cliente NetStsAdm.exe prenant en paramètre l'url précédemment créée, les credentials qui vont bien et bien entendu le reste de la commande stsadm.

 

Donc concrètement, le commande suivante que vous exécuteriez directement sur le serveur :

stsadm -o enumssp -all

 

deviendra depuis une autre machine:

NetStsAdm –TargetURL http://SharePoint –TargetLogin Admin –TargetPwd Pwd –o enumssp –all

 

On ajoute les 3 paramètres TargetURL, TargetLogin et TargetPwd avec les bonnes valeurs, et on tape la commande stsadm désirée. Dans un environnement cross-domain, le TargetLogin peut être de la forme Domain\UserName.

 

Petite parenthèse, si votre commande stsadm fait appel à l'opération AddSolution, pas de soucis. En effet, le paramètre FileName prendra le chemin en local vers le package, et NetStsAdm enverra dans un premier temps le package vers le serveur cible dans un répertoire temporaire, et bien entendu transformera la commande stsadm en conséquent.

 

Supposons que votre package se trouve en local sur d:\dev\SharePoint\solution.wsp, vous exécuterez la commande:

NetStsAdm –TargetURL http://SharePoint –TargetLogin Admin –TargetPwd Pwd –o addsolution -filename d:\dev\SharePoint\solution.wsp

 

Le fichier wsp sera dans un premier temps transférer sur le serveur cible dans l'emplacement c:\Windows\temp (ou tout autre emplacement revoyé par le code System.IO.Path.GetTempPath())

 

Puis la commande suivante sera exécutée sur le serveur:

stsadm -o addsolution -filename c:\windows\temp\solution.wsp

 

Vous pouvez télécharger cet utilitaire ici. Attention, il est fourni "AS IS" donc testez bien avant utilisation sur un environnement autre que développement.

 

L'article nécessitant ce petit utilitaire proposera une solution pour pouvoir développer des applications SharePoint depuis une workstation XP ou Vista.

 
Posté le 22 Oct 08
Commentaire (0)  |  Url de Trackback  | Lien vers ce message (0) | Marquez ce billet avec:        
 

Liens vers ce message

Commentaires


Nom *:
URL:
Email:
Commentaires:

© 2011 Julien Chomarat - Design based on Blue World