Dans cet article, vous allez découvrir comment utiliser PowerShell avec SharePoint. Les commandes Windows PowerShell permettent d’automatiser tous les traitements à faire dans SharePoint.
Même si au début, cela réclame un petit investissement intellectuel, cela en vaut vraiment la peine.

Avant de les utiliser, allez dans Tous les programmes > Microsoft SharePoint 2010 Products > SharePoint 2010 Management Shell (à exécuter en tant qu’administrateur).
Toutefois, vous pourriez aussi lancer la commande PowerShell de Windows et tapez Add-PSSnapin Microsoft.SharePoint.PowerShell pour récupérer les cmdlets SharePoint.
Par ailleurs, dans le modèle objet de SharePoint, faites attention car SPSite est une collection de sites, tandis que SPWeb représente un site (ou un sous-site).
Tout d’abord, la première cmdlet à connaître est celle qui donne l’aide sur l’aide: Get-Help Get-Help. Les fichiers d’aide sont au format XML. Ils se trouvent dans le dossier C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/CONFIG/POWERSHELL/Help/fr-fr pour la version française.
D’autres exemples de cmdlet utiles pour savoir comment utiliser PowerShell avec SharePoint :
- Liste de toutes les cmdlets de SharePoint: Get-Command -PSSnapin Microsoft.SharePoint.PowerShell. Pour connaître leur nombre: @(Get-Command -PSSnapin Microsoft.SharePoint.PowerShell).count.
- Liste de toutes les méthodes et propriétés d’un objet du Modèle Objet de SharePoint (par exemple Get-SPSite): Get-SPSite | Get-Member. La même commande pour Get-SPWeb: Get-SPSite | Get-SPWeb | Get-Member.
- Affiche toute l’aide d’une commande (par exemple Get-SPSite): Get-Help Get-SPSite -Full. Pour avoir uniquement les exemples: Get-Help Get-SPSite -Examples
- Services SharePoint avec leurs états: Get-SPServiceInstance
- Bases de données: Get-SPDatabase
- Collections de sites et de leurs bases de données respectives: Get-SPSite -Limit All | select url, contentdatabase. Si vous omettez -Limit All, la requête ne renvoie que les 200 premiers objets.
- Volume de stockage d’une collection de sites: Get-SPSite | select url, @{Expression={$_.Usage.Storage}}
- Liste des sites basés sur un certain modèle de site (par exemple un site d’équipe): Get-SPSite -Limit All | Get-SPWeb -Filter {$_.Template -eq « STS#00 »}
- Liste des modèles de sites de la ferme: Get-SPWebTemplate
Il existe bien d’autres cmdlets intéressantes.
Comment utiliser PowerShell avec SharePoint
Les cmdlets sont susceptibles d’utiliser une très grande quantité de mémoire. Aussi, afin d’éviter une fuite mémoire, vous pouvez utiliser les cmdlets Start-SPAssignment et Stop-SPAssignment. Ces cmdlets implémentent l’interface IDisposable afin de libérer la mémoire qui n’est plus utile. Voici deux exemples tirés de l’aide de la commande Get-SPSite qui utilisent la méthode d’affectation de collection :
Start-SPAssignment -Global $s = Get-SPSite $s.url Stop-SPAssignment -Global
L’exemple ci-dessous utilise une méthode moins consommatrice de mémoire que la précédente grâce à des variables nommées :
$o = Start-SPAssignment $s = $o | Get-SPSite $s.url Stop-SPAssignment $o
Lorsqu’on débute en PowerShell, et même après, le paramètre -WhatIf est précieux car il simule l’exécution de la cmdlet. Par exemple, la commande Get-SPSite | Remove-SPSite -WhatIf vous retournera WhatIf : Opération « Remove-SPSite » en cours sur la cible « http://mw41 », sans supprimer la collection de site. La difficulté est de savoir où positionner le paramètre -WhatIf quand les commandes sont imbriquées.
Vous trouverez ci-dessous, un programme en téléchargement libre qui:
- Stocke les paramétres de configurations des fichiers journaux SharePoint dans un premier fichier texte,
- Modifie la durée de conservation des journaux, ainsi que d’autres paramétres,
- Stocke à nouveau les paramétres de configurations des fichiers journaux dans un nouveau fichier texte,
- Compare avec une commande PowerShell les deux fichiers.
Téléchargez le fichier zip suivant, qui contient le programme : SPDiagnosticConfigParams_V1_0_0.zip
Laisser un commentaire