Вот такой скрипт на PowerShell я накреативил для бэкапа своей фермы Sharepointа и файлов IIS, слегка переработав вот этот. Он создаёт бэкапы встроенной утилитой stsadm, удаляет старые (количество бэкапов для сохранения задаётся в переменной $days), копирует содержимое папок узлов Sharepoint в IIS и сохраняет конфиг IISа, после чего пишет в Event Log.
#path where the backups will be
$path = "\\backup-server\Sharepoint\"
#how many days of backup should there be
$days = 1
#path to stsadm utility
$stsadm = "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\STSADM.EXE"
#run stsadm.exe with necessary parameters
#&$stsadm -o backup -directory $path -backupmethod full -quiet -overwrite
# copy contents of Inetpub
Copy-Item "C:\Inetpub\wwwroot\wss\VirtualDirectories" $path -Recurse -Force
#copy IIS configuration files
Copy-Item "C:\WINDOWS\system32\inetsrv\MBSchema.xml" $path -Force
Copy-Item "C:\WINDOWS\system32\inetsrv\MetaBase.xml" $path -Force
# CLEANING OLD BACKUPS
# get contents of the spbrtoc.xml
[xml]$spbrtoc = gc ($path + "spbrtoc.xml") -Encoding UTF8
# find info about the old backups
$oldBackups = $spbrtoc.SPBackupRestoreHistory.SPHistoryObject | ? { $_.SPStartTime -lt ((get-date).adddays(-$days)) }
$oldBackups.Count
if ($oldBackups -eq $Null) {
#Application Log event details
$eventdetails = "Backup and cleanup info from sharepoint_backup.ps1: no old backups for removal"
} else {
#Application Log event details
$eventdetails = "Backup and cleanup info from sharepoint_backup.ps1: removed " + $oldBackups.Count + " old backups";
# remove them from the xml
$oldBackups | % { $spbrtoc.SPBackupRestoreHistory.RemoveChild($_) }
# remove their folders from the backup location
$oldBackups | % { Remove-Item $_.SPBackupDirectory -Recurse }
# Save the modified xml
$spbrtoc.Save($path + "spbrtoc.xml")
}
# Write to Application Log
$event=new-object System.Diagnostics.EventLog("Application")
$event.Source="Sharepoint Backups"
$eventtype=[System.Diagnostics.EventLogEntryType]::Information
$event.WriteEntry($eventdetails,$eventtype,1337)