Taille d’un site SharePoint en powershell


Dans le cadre d’une migration j’ai eu à analyser le contenu d’une collection de site SharePoint afin d’avoir du détail sur la répartition du volume de données à travers les différents sites.

Un petit script powershell permettant de connaitre la taille d’une collection et de ses sous sites. Celui-ci prend en compte l’ensemble des fichiers et leurs versions. Cela reste approximatif car les listitems ne sont pas pris en compte et, s’ils sont nombreux, peuvent représenter un volume non  négligeable.

Pensez également à regarder la taille de vos corbeilles.
A exécuter avec le compte admin de la ferme bien évidemment 🙂


function GetWebSize ($Web)
{
[long]$subtotal = 0
foreach ($folder in $Web.Folders)
{
$subtotal += GetFolderSize -Folder $folder
}
$dispValue = "{0:N2}" -f (($subtotal/1024)/1024)
write-host "Site::" $Web.Title "::"  $Web.Url "::" $dispValue "MB"
return $subtotal
} 

function GetSubWebSizes ($Web)
{
[long]$subtotal = 0
foreach ($subweb in $Web.GetSubwebsForCurrentUser())
{
[long]$webtotal = 0
foreach ($folder in $subweb.Folders)
{
$webtotal += GetFolderSize -Folder $folder
}
$dispValue = "{0:N2}" -f (($webtotal/1024)/1024)
write-host "SubWeb::" $subweb.Title "::" $subweb.Url "::" $dispValue "MB"
$subtotal += $webtotal
$subtotal += GetSubWebSizes -Web $subweb
}
return $subtotal
} 


function GetFolderSize ($Folder)
{
[long]$folderSize = 0 
foreach ($file in $Folder.Files)
{
if ($file.Versions -ne $NULL -and $file.Versions.Count -gt 1) {
foreach ($version in $file.Versions)
{
$folderSize += $version.Size;
}
}
else {
$folderSize += $file.Length;
}
}
foreach ($fd in $Folder.SubFolders)
{
$folderSize += GetFolderSize -Folder $fd
}
return $folderSize
}

start-transcript -path E:\Scripts\PowerShell\transcript1.txt 

$web = Get-SPWeb http://yoururl
[long]$total = 0
$total += GetWebSize -Web $web
$total += GetSubWebSizes -Web $web
$totalInMb = ($total/1024)/1024
$totalInMb = "{0:N2}" -f $totalInMb
$totalInGb = (($total/1024)/1024)/1024
$totalInGb = "{0:N2}" -f $totalInGb
write-host "Total size of all sites below" $StartWeb "is" $total "Bytes,"
write-host "which is" $totalInMb "MB or" $totalInGb "GB"
$web.Dispose()

stop-transcript

Publicités

Une réflexion au sujet de « Taille d’un site SharePoint en powershell »

  1. Ping : Analyse sur l’utilisation des types de contenus en powershell | SharePoint 2013 – Blog technique d'Alexandre DAVID

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s