SharePoint administrators need to run regular backups using PowerShell, the STSADM tool or in Central Administration. But taking these backups on a daily basis can be a tedious process, hence either we can sit back and take backup, waiting for it to get over or we can go home and sleep on the couch, while the PowerShell and Task Scheduler take cares of the rest.
So in this series we will see
- How to write a PowerShell script to take Backup. (Part 1)
- How to use windows scheduler to automate the Backup on a daily basis. (Part 2)
Creating PowerShell script to take Backup
I have included the whole script first which i have then explained below in phases
Add-PsSnapin Microsoft.SharePoint.Powershell –ErrorAction SilentlyContinue try { $today = (Get-Date -Format dd-MM-yyyy) $backupDirectory = "D:\Backup\DailySiteCollectionBackUp\$today" # Backup file Location $backupFile = "D:\Backup\DailySiteCollectionBackUp\$today\Backup.dat" # Log file location $logFile = "$backupDirectory\BackupLog.log" # Address of the Site Collection to backup $Site = "http://a4md03082:10000/" # Location of the Backup Folder if (-not (Test-Path $backupDirectory)) { [IO.Directory]::CreateDirectory($backupDirectory) #New-Item $logPath -type $backupDirectory } # Get backup start date and time $backupStart = Get-Date -format "MM-dd-yyyy HH.mm.ss" # creates a log file Start-Transcript -Path Start-Transcript -Path $logFile # This will actually initiate the backup process. Write-Host Write-Host Write-Host "Backup starting at $backupStart for $Site " Write-Host "******************************************" Backup-SPSite -Identity $Site -Path $backupFile -Force $backupComplete = Get-Date -format "MM-dd-yyyy HH.mm.ss" Write-Host Write-Host Write-Host "Backup Completed at $backupComplete for $Site " Write-Host "******************************************" Stop-Transcript } Catch { $ErrorMessage = $_.Exception.Message write "$today BackUp Failed $ErrorMessage ">>$logFile }
a) It will load the SharePoint snap IN
Including PowerShell SnapIN |
Creating BackUp Folder |
c) Then we will run the “Start Transcript/Stop-Transcript” block command. This will log all command that the user types and all output that appears on the console. Here we will require to pass the log file name. Between the “Start Transcript/Stop-Transcript” we will take the backup with the Backup-SPSite which will take the backup of the specified site
Note: Start Transcript/Stop-Transcript command does not runs on the PowerShell ISE, this will run only on the console, which is the way we are going to do while running it from windows task scheduler.
d) Now after the whole script is created save it with a .ps1 extension.
Now in the Part 2 we will understand on how to run this script at a particular time of the day automatically.
No comments:
Post a Comment