Découvrir comment utiliser PowerShell avec SharePoint

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.

Comment utiliser PowerShell avec SharePoint

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.

SPDiagnosticConfigParams_V1_0_0.zip

Comment mettre à niveau les bases SharePoint systèmes et utilisateurs

Dans cet article, vous allez voir comment mettre à niveau les bases  SharePoint. La mise à niveau peut concerner les bases systèmes, mais aussi les bases de données utilisateurs. Il s’agit des bases avec le contenu des données des utilisateurs.

Généralement, vous êtes alerté d’un problème grâce au moniteur de santé de SharePoint. En effet, la console d’administration centrale affiche directement les éventuels défaillances ou améliorations détectées.

Vous avez l’avertissement « Databases running in compatibility range, upgrade recommended » qui s’affiche dans la console d’administration centrale de SharePoint.

Databases running in compatibility range, upgrade recommended
Dans cet exemple, vous devez mettre à niveau les bases de données systèmes. Si cela concerne, les bases de données de contenu : vous devrez les mettre à niveau en suivant la procédure indiquée ci-dessous.

En effet, l’application d’un correctif SharePoint peut entraîner la nécessité de modifier le schéma des bases de données. Généralement, SharePoint sait gérer des versions différentes du schéma des bases de données. Toutefois, vous devez procéder aux mises à niveaux dès que possible.

Si vous retardez les mises à niveaux, vous prenez le risque d’avoir des performances moindres et, éventuellement, des défaillances du fonctionnement de SharePoint.

Ce message s’est affiché après l’application d’un CU (Cumulative Update). Il aurait pu aussi apparaître à la suite d’un Hotfix pour SharePoint.

Mettre à niveau les bases SharePoint

L’avertissement concernant les bases de données systèmes, il a pu être supprimé grâce à la commande Psconfig.exe.

Dans une invite de commande, exécutée en tant qu’administrateur:

PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures

Mettre à niveau les bases SharePoint avec psconfig.exe

Bases de données utilisateur

Lorsque l’avertissement concerne les bases de données de contenu des utilisateurs, la commande PowerShell à utiliser est Upgrade-SPContentDatabase.

La commande à exécuter en tant qu’administrateur dans SharePoint 2010 Management Shell pour la base de données WSS_Content est :

$db = Get-SPDatabase | Where-Object {$_.Name -match « WSS_Content »}
Upgrade-SPContentDatabase -Identity $db

Comment mettre à niveau vers SharePoint 2010 votre version existante

Depuis que Microsoft a lancé officiellement SharePoint Foundation 2010 et SharePoint Server 2010, vous vous demandez comment mettre à niveau vers SharePoint 2010. Aussi, dans cet article, vous trouverez des critères de choix pour vous déterminer.

Comment mettre à niveau vers SharePoint 2010

Avant tout, sachez que SharePoint 2010 n’est disponible qu’en version 64 bits, y compris pour SQL Server. Par conséquent, la première étape consiste à prévoir la migration ou la mise à jour de votre infrastructure SharePoint vers 64 bits.

Tout d’abord, pour installer et utiliser SharePoint 2010, il est nécessaire de disposer d’une version 64 bits de Windows Server 2008 ou Windows Server 2008 R2. De même, il est impératif de disposer d’une version 64 bits de SQL Server 2008 ou de SQL Server 2005.

Enfin, afin de tirer au mieux parti des fonctionnalités de SharePoint 2010, il est conseillé que les postes clients fonctionnent sous Windows avec Internet Explorer 7 ou 8 en 32 bits.

Une autre stratégie consiste à patienter et attendre la sortie de SharePoint 2013. Cependant la migration sera inévitable. Il est préférable de procéder par version successive plutôt que de vouloir faire un « grand bond en avant ».

Stratégies de migration vers SharePoint 2010

Que faire si, en ce moment :

  • Vous n’avez rien mais vous hésitez entre SharePoint 2007 et SharePoint 2010 : quels sont les avantages et inconvénients des deux solutions ?
  • SharePoint 2007 est déjà présent chez vous, sur un système Windows 32 bits ou 64 bits, et vous vous interrogez sur la pertinence de migrer vers SharePoint 2010 ?
  • La version SharePoint Portal Server 2003 (SPS 2003) fonctionne toujours. Serez-vous obligé de faire une mise à niveau intermédiaire vers SharePoint 2007 pour passer à SharePoint 2010 ?

Autant de questions qui nécessitent des réponses différentiées. Voir aussi : Quels sont les Critères de choix entre SharePoint 2007 et SharePoint 2010 ?

Maintenant, la bonne question est de savoir comment mettre à niveau vers SharePoint 2010 votre version existante de SharePoint.

Afin d’être concret, la version existante est SharePoint 2007. Vous cherchez à la faire évoluer vers SharePoint 2010.

Comment mettre à niveau vers SharePoint 2010

Dans ce chapitre, nous présentons uniquement les grands principes de base d’une migration. Son objet est donner une idée de ce qu’il faudrait faire, sans chercher à être exhaustif.

  • Installer le Service Pack 2 de SharePoint 2007 avant la migration
  • Vérifier les pré-requis matériels: 64bits ; Windows 2008 ou Windows 2008 R2 (de préférence); SQL Server 2005 SP3 ou SQL Server 2008 SP1 (de préférence); séparation logs / datas; espace disque disponible au moins égal à 5 fois la taille de la mémoire physique
  • Vérifier les pré-requis logiciels: outre l’installation des composants pré-requis pour SharePoint 2010, il est préférable d’avoir accès à Internet pour télécharger les mises à jour
  • Préparer l’environnement avec la commande: stsadm.exe –o preupgradecheck
  • Identifier les personnalisations: pages maître (« master pages ») et gabarits (« layout »), css et thèmes, modèles de sites et listes, développements spécifiques, solutions, webparts, fonctionnalités (« features »), images (logos). Les modèles de sites et de listes SharePoint 2007 devront être recréés dans SharePoint 2010.
  • Supprimer les sites et espaces de travail obsolètes
  • Sauvegarder les bases de données de contenu SharePoint 2007 puis les restaurer sur SQL Server 2008
  • Tester les bases de données restaurées avec la commande PowerShell: test-spcontentdatabase –name <nom_base_de_donnees> –webapplication http://<nom_application_web>
  • Monter les bases de données restaurées avec la commande PowerShell: mount-spcontentdatabase –name <nom_base_de_donnees> –webapplication http://<nom_application_web>
  • Procéder à la Mise à niveau visuelle: nouvelle fonctionnalité de SharePoint 2010 qui permet de choisir l’apparence visuelle (ancienne apparence 2007, nouvelle apparence 2010)
  • Vérifier soigneusement les sites restaurés