PowerShell et SharePoint 2010, tout le monde en parle. Qu’en est-il du “Remote” PowerShell … 

Admin, PowerShell, SharePoint2010

Il y a quelque mois de cela, j’avais mis à disposition sur CodePlex un petit outil, netstsadm permettant d’exécuter des commandes stsadm à distance, depuis une station de travail vers un serveur de la ferme SharePoint. Cet outil entrait dans le cadre d’une méthodologie de développement SharePoint que je proposais. Bref, ce n’est plus s’actualité, car avec l’arrivée de cette vague 2010 (SharePoint, Visual Studio et consort), la donne a changé !

 

Le principe de cet outil est simple : un service WCF écoute sur un serveur de la ferme SharePoint, et une application cliente lance des requêtes, sous la forme :

 

Netstadm –TargetURL http://SharePoint –o enumssp –all

 

Cette commande est lancée sur le serveur, convertie en “stsadm”, exécutée puis le résultat est renvoyé vers l’application cliente.

 

Dans SharePoint 2010, stsadm est conservé, donc cet outil fonctionnera parfaitement. Cependant, LA nouveauté associée à SharePoint 2010 en matière d’administration est l’utilisation de PowerShell. PowerShell est une interface en ligne de commandes et un langage de script puissant permettant de gérer et d’administrer des machines de façon efficace. Dans SharePoint 2007, stsadm comptait 182 commandes, SharePoint 2010 compte plus de 500 commandes PowerShell, appelées « cmdlets ».

 

Je ne suis pas ici pour parler de PowerShell, vous trouverez d’autres ressources sur Internet. En revanche, je voudrais parler de la notion de PowerShell à distance, ou Remote PowerShell. L’idée est tout simplement d’activer un service d’écoute sur une machine, et de lancer des requêtes depuis une autre machine. Trêve de blabla …

 

Depuis le serveur qui doit recevoir les commandes (dans ce billet, SPDEMO), ouvrez l’outil PowerShell (en mode administrateur) et tapez

 

Enable-PSRemoting

 

Ceci lancera tous les services d’écoutes nécessaires.

 

Depuis maintenant la machine qui doit lancer des commandes, ouvrez l’outil en ligne de commandes DOS (en tant qu’administrateur), et taper

 

winrm set winrm/config/client @{TrustedHosts="SPDEMO"}

 

Winrm est un outil Windows (Windows Remote Management) qui est mis sur écoute par la commande lancée depuis le serveur SPDEMO. La commande précédente indique au client que le serveur SPDEMO est sûr. Testons maintenant la connexion.

 

Toujours depuis la machine cliente, lancez PowerShell, puis entrez

 

Enter-PSSession -ComputerName SPDEMO -Credential DOMAIN\USER

 

Nous créons ici une session vers SPDEMO. Le fait de préciser l’option « Credential » ouvrira une pop-up vous demandant d’enter le mot de passe associé. Une fois la connexion effectuée, vous vous retrouvez avec :

 

clip_image002[4]

 

Vous pouvez dès à présent lancer des commandes qui seront exécutées sur le serveur SPDEMO (comme hostname dans la capture précédente).

 

Pour exécuter des commandes SharePoint, il faudra d’abord enregistrer les « cmdlets » SharePoint

Add-PSSnapin Microsoft.SharePoint.PowerShell

 

Nous pouvons maintenant récupérer la liste de toutes les applications web présentes sur la ferme

 

Get-SPWebApplication

 

A la fin, ne pas oublier de quitter la session

 

Exit-PSSession

 

Donc comme vous venez de le constater, les possibilités sont immenses. Netstsadm ne restera que pour stsadm, PowerShell étant bien plus puissant ….

 

- Julien, qui souhaite une excellente année 2010 …

 
Posté le 4 Jan 10
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