[OnPremise] Powershell : commandes utiles pour Sharepoint

[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 :

Get-Counter -Counter "\Service web(*)\connexions actives"

Sur un serveur Installé en anglais :

Get-Counter -Counter "\Web Service(*)\Current Connections"

 

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…):

Add-PSSnapin Microsoft.SharePoint.PowerShell
#Configuration Parameters
$SiteURL="https://monsitesharepoint.com/ "
$Email = "monadressemail@mondomaine.fr"
$Subject = "Email de test à partir de SharePoint"
$Body = "Mail de test envoyé de la collection de site Sharepoint via powershell"

#Get the Web
$Web = Get-SPWeb $SiteURL

#Send Email using SPUtility SendEmail method
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($Web ,0,0,$Email,$Subject,$Body)

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 :

Add-PSSnapin microsoft.sharepoint.powershell
Backup-SPSite –Identity http://Servername/sites/site1 –Path "D:\Site1.bak"

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 :

Add-PSSnapin microsoft.sharepoint.powershell
Restore-SPSite http://Servername/sites/site1 -Path "D:\Site1.bak" -Force -Confirm:$false

Sauvegarde d’un sous site

Add-PSSnapin microsoft.sharepoint.powershell
Export-SPWeb http://Servername/sites/site1/subsite1 –Path "D:\Export.cmp"

Restauration d’un sous site

Add-PSSnapin microsoft.sharepoint.powershell
Import-SPWeb http://Servername/sites/site1/subsite12 –Path "D:\Export.cmp"

Sauvegarde d’une liste

Le code doit être adapté pour pointer sur la liste source.

Add-PSSnapin microsoft.sharepoint.powershell
Export-SPWeb –Identity http://servername/sites/site1 –Path "D:\library.cmp" –ItemURL "http://servername/sites/site1/library.aspx"

Restauration d’une liste

Il faut bien sur adapter le code pour pointer vers la liste de destination.

Add-PSSnapin microsoft.sharepoint.powershell
Import-SPWeb –Identity http://Servername/sites/site2 –Path "D:\library.cmp"

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.

Add-PSSnapin microsoft.sharepoint.powershell
$siteSP = Get-SPSite https://monsitesharepoint.com
$siteSP.RecalculateStorageMetrics()
$siteSP.RecalculateStorageUsed()

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.

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue

write-host "This will delete data, type YES to continue"
$retval = read-host
if ($retval -ne "YES")
{
    write-host "exiting - you did not type yes" -foregroundcolor green
    exit
}
write-host "continuing"
 
# Remplacer l'adresse du site et le nom de la liste.
# L'utilisateur Shell doit être administrateur de la collection de sites.

$web = get-spweb "https://mysite/mysubsite/"
$list = $web.lists | where {$_.title -eq "MyList"}
Write-host "List $($list.title) has $($list.items.count) entries"
$items = $list.items
foreach ($item in $items)
{
    Write-host "  Say Goodbye to $($item.id)" -foregroundcolor red
    $list.getitembyid($Item.id).Delete()
}

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.

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue

$Site = Get-SPSite https://monsitesharepoint.com

$DeletedItems = $Site.RecycleBin

$date = (Get-Date).AddHours(-36)

$elemtnsatraiteer = $DeletedItems | ?{($_.DeletedDate -gt $date) -and ($_.DeletedByName -eq "Compte système")}|sort Deleteddate

$elemtnsatraiteer | %{$Site.RecycleBin.restore($elemtnsatraiteer.ID)}

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.

Partager cette publication

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *