Principe : On boucle en PowerShell sur toutes les WebApps puis sur toutes les collections de sites
(Pensez à mettre à jour les 2 variables $dns (url de votre serveur sharepoint), $destination (dossier où sauvegarder le backup)
Résultat : Un fichier de backup par collection de sites. Le fichier .bak est nommé correctement et préfixé par le numéro de port de la WebApp.
#
# Script de sauvegarde des collections de sites
# Environnement : PROD
#
########################################################
$prefix = "prod"
$dns = "http://monserveur"
$destination = "\\srvbkp\shrpnt_bak\"
########################################################
$allSPWebApps = Get-SPWebApplication | Select ID, Url;
foreach ($webapp in $allSPWebApps)
{
write-host "Application Web :" $webapp.URL
$allSPSites = get-spsite –webapplication $webapp.URL | Select ID, Url;
foreach ($site in $allSPSites)
{
$bakName = $site.URL.ToLower().Replace($dns,"-")
$bakName = $bakName.Replace("/","_")
if ($bakName.StartsWith("-_")) { $bakName = "80"+ $bakName }
if ($bakName.Equals("-")) { $bakName = "80" }
$bakName = $bakName.Replace("-_","_")
$bakName = $bakName.Replace("-:","")
write-host "--> Backup de la Collection : $prefix$bakName"
$filebackup = "$destination\$prefix$bakName.bak"
Backup-SPSite $site.URL -Path $filebackup -Force
}
}
==> Télécharger ce script PowerShell (.ps1) <==
Est-ce qu'il ne manque pas la ligne $site.Dispose() à la fin de ta boucle ?
RépondreSupprimer