[OnPremise] Powershell : commandes utiles pour Sharepoint
Bien que beaucoup de choses puissent se faire par l’interface graphique sous Sharepoint, il peut s’avérer utile de faire du Powershell, soit pour automatiser, soit pour combler des manques de l’interface utilisateurs. Voici quelques commandes qui peuvent être utiles….
Mesurer l’activité d’une ferme Sharepoint
Il est parfois nécessaire (avant de faire des mises à jour par exemple) de connaitre le nombre de connexions actives sur une ferme Sharepoint. Cela se fait sous Powershell sur le serveur. Sur un serveur installé en français :
[pastacode lang= »bash » manual= »Get-Counter%20-Counter%20%22%5CService%20web(*)%5Cconnexions%20actives%22″ message= » » highlight= » » provider= »manual »/]
Sur un serveur Installé en anglais :
[pastacode lang= »bash » manual= »Get-Counter%20-Counter%20%22%5CWeb%20Service(*)%5CCurrent%20Connections%22″ message= » » highlight= » » provider= »manual »/]
Tester l’envoi de mails par Sharepoint :
Après avoir configuré un serveur SMTP dans Sharepoint (ou installé un serveur SMTP local) il peut s’avérer utilie de tester l’envoi de mail.
On peut demander à un site Sharepoint de le faire pour nous sous PowerShell (remplacer $SiteURL et $Email par vos paramètres…):
[pastacode lang= »bash » manual= »Add-PSSnapin%20Microsoft.SharePoint.PowerShell%0A%23Configuration%20Parameters%0A%24SiteURL%3D%22https%3A%2F%2Fmonsitesharepoint.com%2F%20%22%0A%24Email%20%3D%20%22monadressemail%40mondomaine.fr%22%0A%24Subject%20%3D%20%22Email%20de%20test%20%C3%A0%20partir%20de%20SharePoint%22%0A%24Body%20%3D%20%22Mail%20de%20test%20envoy%C3%A9%20de%20la%20collection%20de%20site%20Sharepoint%20via%20powershell%22%0A%0A%23Get%20the%20Web%0A%24Web%20%3D%20Get-SPWeb%20%24SiteURL%0A%0A%23Send%20Email%20using%20SPUtility%20SendEmail%20method%0A%5BMicrosoft.SharePoint.Utilities.SPUtility%5D%3A%3ASendEmail(%24Web%20%2C0%2C0%2C%24Email%2C%24Subject%2C%24Body) » message= » » highlight= » » provider= »manual »/]
Sauvegarde complète d’une collection de site
A noter que pour cette solution et pour toutes les suivantes, la version de Sharepoint doit être rigoureusement identique, aux CU près (Cumulative Updates de Microsoft) . On peut vérifier le niveau de mises à jour dans la console d’administration Sharepoint Server onglet « Mise à niveau et migration », / « Vérifier l’état d’installation du produit et du correctif ». Il est également très recommandé que les bases de données soient à jour, ce qui peut se vérifier dans « Mise à niveau et migration », « Examiner l’état de la base de données ». Toutes les bases doivent être dans l’état « Aucune action requise ».
A noter que si la restauration échoue, il faut comparer les solutions activées sur le site source et le site de destination, et faire en sorte que le site de destination ait toutes les fonctionnalités du site source activées. Il suffit pour cela d’aller dans la racine du site en administrateur de la collection de site et faire « Administration de la collection de sites » / « Fonctionnalités de la collection de sites » pour accéder à la liste des solutions.
Il est ensuite aisé de sauvegarder une collection de site en ligne de commande. Celle ci contiendra toutes les solutions et applications de la collection de site :
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0ABackup-SPSite%20%E2%80%93Identity%20http%3A%2F%2FServername%2Fsites%2Fsite1%20%E2%80%93Path%20%22D%3A%5CSite1.bak%22″ message= » » highlight= » » provider= »manual »/]
Restauration complète d’une collection de site
Il est également aisé de restaurer une collection de site d’après son fichier de sauvegarder généré ci dessus :
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0ARestore-SPSite%20http%3A%2F%2FServername%2Fsites%2Fsite1%20-Path%20%22D%3A%5CSite1.bak%22%20-Force%20-Confirm%3A%24false%0A » message= » » highlight= » » provider= »manual »/]
Sauvegarde d’un sous site
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0AExport-SPWeb%20http%3A%2F%2FServername%2Fsites%2Fsite1%2Fsubsite1%20%E2%80%93Path%20%22D%3A%5CExport.cmp%22″ message= » » highlight= » » provider= »manual »/]
Restauration d’un sous site
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0AImport-SPWeb%20http%3A%2F%2FServername%2Fsites%2Fsite1%2Fsubsite12%20%E2%80%93Path%20%22D%3A%5CExport.cmp%22″ message= » » highlight= » » provider= »manual »/]
Sauvegarde d’une liste
Le code doit être adapté pour pointer sur la liste source.
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0AExport-SPWeb%20%E2%80%93Identity%20http%3A%2F%2Fservername%2Fsites%2Fsite1%20%E2%80%93Path%20%22D%3A%5Clibrary.cmp%22%20%E2%80%93ItemURL%20%22http%3A%2F%2Fservername%2Fsites%2Fsite1%2Flibrary.aspx%22″ message= » » highlight= » » provider= »manual »/]
Restauration d’une liste
Il faut bien sur adapter le code pour pointer vers la liste de destination.
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0AImport-SPWeb%20%E2%80%93Identity%20http%3A%2F%2FServername%2Fsites%2Fsite2%20%E2%80%93Path%20%22D%3A%5Clibrary.cmp%22″ message= » » highlight= » » provider= »manual »/]
Recalculer les métriques de stockage Sharepoint
Si les métriques (fonction Administration de la collection de site / Métriques de stockage) ne sont pas bon, il est possible de forcer le calcul dans Powershell, idéalement après avoir vidé les corbeilles et notamment celle de l’administrateur de la collection de site. Cela prend jusqu’à 15 minutes à s’exécuter.
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%0A%24siteSP%20%3D%20Get-SPSite%20https%3A%2F%2Fmonsitesharepoint.com%0A%24siteSP.RecalculateStorageMetrics()%0A%24siteSP.RecalculateStorageUsed() » message= » » highlight= » » provider= »manual »/]
Vider une liste sous PowerShell
Il est parfois utile de vider une grosse liste sous PowerShell. L’utilsiateur Powershell doit être administrateur de la collection de sites.
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%20-ErrorAction%20SilentlyContinue%0A%0Awrite-host%20%22This%20will%20delete%20data%2C%20type%20YES%20to%20continue%22%0A%24retval%20%3D%20read-host%0Aif%20(%24retval%20-ne%20%22YES%22)%0A%7B%0A%C2%A0%C2%A0%C2%A0%20write-host%20%22exiting%20-%20you%20did%20not%20type%20yes%22%20-foregroundcolor%20green%0A%C2%A0%C2%A0%C2%A0%20exit%0A%7D%0Awrite-host%20%22continuing%22%0A%C2%A0%0A%23%20Remplacer%20l’adresse%20du%20site%20et%20le%20nom%20de%20la%20liste.%0A%23%20L’utilisateur%20Shell%20doit%20%C3%AAtre%20administrateur%20de%20la%20collection%20de%20sites.%0A%0A%24web%20%3D%20get-spweb%20%22https%3A%2F%2Fmysite%2Fmysubsite%2F%22%0A%24list%20%3D%20%24web.lists%20%7C%20where%20%7B%24_.title%20-eq%20%22MyList%22%7D%0AWrite-host%20%22List%20%24(%24list.title)%20has%20%24(%24list.items.count)%20entries%22%0A%24items%20%3D%20%24list.items%0Aforeach%20(%24item%20in%20%24items)%0A%7B%0A%C2%A0%C2%A0%C2%A0%20Write-host%20%22%C2%A0%20Say%20Goodbye%20to%20%24(%24item.id)%22%20-foregroundcolor%20red%0A%C2%A0%C2%A0%C2%A0%20%24list.getitembyid(%24Item.id).Delete()%0A%7D » message= » » highlight= » » provider= »manual »/]
Restaurer en nombre les éléments de la corbeille avec Powershell
Ici, nous allons restaurer tous les éléments supprimés il y a moins de 36 heures.
[pastacode lang= »bash » manual= »Add-PSSnapin%20microsoft.sharepoint.powershell%20-ErrorAction%20SilentlyContinue%0A%0A%24Site%20%3D%20Get-SPSite%20https%3A%2F%2Fmonsitesharepoint.com%0A%0A%24DeletedItems%20%3D%20%24Site.RecycleBin%0A%0A%24date%20%3D%20(Get-Date).AddHours(-36)%0A%0A%24elemtnsatraiteer%20%3D%20%24DeletedItems%20%7C%20%3F%7B(%24_.DeletedDate%20-gt%20%24date)%20-and%20(%24_.DeletedByName%20-eq%20%22Compte%20syst%C3%A8me%22)%7D%7Csort%20Deleteddate%0A%0A%24elemtnsatraiteer%20%7C%20%25%7B%24Site.RecycleBin.restore(%24elemtnsatraiteer.ID)%7D » message= » » highlight= » » provider= »manual »/]
Bien sur toute ceci n’est pas exhaustif, mais seulement une petite collection d’astuces visant à faciliter la vie des administrateurs Sharepoint sur leurs serveurs.
Laisser un commentaire