Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Blog Technique de Romelard Fabrice

Les dernières Actualités de Romelard Fabrice (Alias fabrice69 ou F___) principalement autour des technologies Microsoft

Actualités

  • Toutes les actualités et informations sur les technologies Microsoft principalement autour de .NET et SQL Server

Archives

SharePoint 2007: Script PowerShell permettant le backup de toutes les collections de sites d’une application Web

En tant qu’archéologue, il est indispensable de conserver un processus de sauvegarde valide et simple:

  • La sauvegarde des Bases de données est simple, mais exige un niveau technique important en cas de besoin de restauration
  • La sauvegarde de base de WSS est “simple”, mais complexe si on souhaite remonter une unique collection de site, de plus elle n’est pas adaptée pour de gros volumes
  • La sauvegarde de chaque collection de site est simple à sauver et restaurer puisqu’on peut remonter une unique collection

Pour effectuer cette troisième option, il existe différentes solutions, dont des script VBS qui peuvent être complexes à maintenir. PowerShell permet d’avoir un script court et rapide pour effectuer simplement une sauvegarde STSADM pour chaque collection de sites en placant de fichier de sauvegarde dans le répertoire voulu.


# Shared Variables
$BackupPath = “\\MyFileServer\SHAREPOINT_BACKUP\MyFarmTOSave”
$StsAdmPath = "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN"

function Start-Executable {
   param(
     [String] $FilePath,
     [String[]] $ArgumentList
   )
   #source:
http://windowsitpro.com/powershell/running-executables-powershell
   $OFS = " "
   $process = New-Object System.Diagnostics.Process
   $process.StartInfo.FileName = $FilePath
   $process.StartInfo.Arguments = $ArgumentList
   $process.StartInfo.UseShellExecute = $false
   $process.StartInfo.RedirectStandardOutput = $true
   if ( $process.Start() ) {
     $output = $process.StandardOutput.ReadToEnd() `
       -replace "\r\n$",""
     if ( $output ) {
       if ( $output.Contains("`r`n") ) {
         $output -split "`r`n"
       }
       elseif ( $output.Contains("`n") ) {
         $output -split "`n"
       }
       else {
         $output
       }
     }
     $process.WaitForExit()
     & "$Env:SystemRoot\system32\cmd.exe" `
       /c exit $process.ExitCode
   }
}

function BackUp-All-SiteCollections([string]$WebAppURL, [string]$webAppName)
{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
    $Thesite = new-object Microsoft.SharePoint.SPSite($WebAppURL)
    $oApp = $Thesite.WebApplication

    $stsadmPath =  $StsAdmPath +"\stsadm.exe"

    foreach ($Sites in $oApp.Sites)
    {
        $UrlSplitted = $Sites.URL.split("/")
        Write-Host "Site URL", $Sites.URL, $UrlSplitted.length
       
        if($UrlSplitted.length -gt 0)
        {
            if($UrlSplitted.length -eq 3)
            {
                $RunstsadmParam = "-o backup -url "+  $Sites.URL +" -filename "+ $BackupPath +"\" + $webAppName + "\rootcollection.dat -overwrite "
            }
            else
            {
                $RunstsadmParam = "-o backup -url "+  $Sites.URL +" -filename "+ $BackupPath +"\" + $webAppName + "\" + $UrlSplitted[3] +"\"+ $UrlSplitted[4] +".dat -overwrite "
            }
        }
        Write-Host " ----------------------------------------------- "
        Write-Host "Start the process"
        Write-Host $stsadmPath, $RunstsadmParam

        Start-Executable $stsadmPath $RunstsadmParam

        Write-Host " ----------------------------------------------- "
    }
    $Thesite.Dispose()
}

cls
BackUp-All-SiteCollections “http://MyWebApp01” "MyWebApp01"
BackUp-All-SiteCollections “http://MyWebApp02” "MyWebApp02"


Une fois ce script planifié quotidiennement, vous aurez dans le répertoire fourni, un fichier DAT pour chaque collection se sites en utilisant le nom de celle-ci pour nom du fichier.

Romelard Fabrice [MBA]

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 2 décembre 2014 10:00 par ROMELARD Fabrice

Commentaires

ROMELARD Fabrice a dit :

Script posté sur le projet CodePlex :

- https://sharepointpsscripts.codeplex.com/releases/view/21675

Fabrice

# décembre 2, 2014 16:41
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01