Accéder au contenu principal

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]

Commentaires

Posts les plus consultés de ce blog

Série de vidéos sur le montage d'une serre horticole ACD

 Episode 1: Préparation du terrain Episode 2: Montage de la serre en elle même Episode 3: Finalisation avec le montage électrique alimentant la serre Bon visionnage Fab

Présentation des outils utiles pour l'entretien de ses haies vives

Afin de gérer les haies vives, il est nécessaire d'avoir recourt à un matériel adapté. Les solutions à batteries sont bien adaptées pour un usage personnel avec des dimensions raisonnables. Ainsi dans mon cas précis, j'utilise les outils suivants de la Gamme Ryobi 18V ONE+ électroportatif: Petit taille-haies simple mais efficace -  RYOBI OHT1855R Un modèle plus puissant qui fonctionne très bien -  RYOBI RY18HTX60A Pour les parties hautes de vos haies, voici un outil très utile -  RYOBI OPT1845 Enfin lorsque vous devez élaguer certains arbres ou certaines partie hautes de vos haies, ce dernier outil est très utile -  RYOBI OPP1820 Ces outils font parti maintenant de mon arsenal de base pour maintenir notre maison chaque saison de taille. Fab

Série de Videos sur Home Assistant intégrant la production Photovoltaïque

 Un certain nombre de vidéos sont en ligne pour intégrer sa production photovoltaïque dans Home Assistant en partant de la base. Installation de Home Assistant: On peut ensuite intégrer les composant des Micro-Onduleurs Enphase, mais aussi les batteries Enphase: Ou encore le composant de contrôle Ecojoko: Ce qui permet alors de faire des comparaisons entre les valeurs capturées: Des videos seront encore publiés dans les prochaines semaines sur différents aspects de cette solution. Fab