2 de junio de 2011

Script de Automatización de Backup para SharePoint 2010

El siguiente Script de Powershell les permitirá realizar en forma automática los Backups de SharePoint 2010 y al finalizar envía un mail a la cuenta que ustedes definan, validen los parámetros de Direcciones de correo, dirección IP del Servidor SMTP (No olviden permitir en el SMTP el Relay del Servidor de SharePoint).

USO BAJO SU PROPIO RIESGO, Valídenlo antes en sus plataformas.

# ==============================================================================================
# Nombre: SP2010_Farm_Backup_con_Notificacion.ps1
# Autor: Hector Insua
# Fecha: 02/06/2011
# Comentario: Script de automatización de Backup de Granja de SharePoint 2010 notificacion
# Website: http://hinsua.blogspot.com
# ==============================================================================================
Add-PsSnapin Microsoft.SharePoint.Powershell –ErrorAction SilentlyContinue
try
{
$today = (Get-Date -Format dd-MM-yyyy)
# Ubicación de la Carpeta de Respaldos
[IO.Directory]::CreateDirectory("E:\Backup\BackupDiarioSP\$today")
# Inicia el Backup de la Granja de SharePoint 2010.
Backup-SPFarm -Directory E:\Backup\BackupDiarioSP\$today -BackupMethod full
# Cuenta de Envio de Correo electrónico.
$emailFrom = "Administrador@dominio.com"
# Cuenta de Destino de Correo.
$emailTo = "Usuario@dominio.com"
# Mensaje de Notificación del Correo. El segmento + “$today” Agrega la fecha del Backup.
$subject = "El Backup de SharePoint se realizó con Exito el día "+"$today"
# Cuerpo del Mail. El Segmento + “$today” Agrega la Fecha en el cuerpo del Mail.
$body = "El Backup de SharePoint se realizó con Exito el día "+"$today"
# Direccion IP del Servidor SMTP. Recordar Habilitar el Relay
$smtpServer = "192.168.0.0"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
}
Catch
{
$ErrorMessage = $_.Exception.Message
# Configurar los Siguientes Parámetros Nuevamente para Errores.
$emailFrom = "Administrador@dominio.com"
$emailTo = "Usuario@dominio.Com"
$subject = "El Backup de SharePoint contiene Errores "+"$today"
$body = "El Backup de SharePoint contiene errores para la fecha "+"$today y el Error es $ErrorMessage."
$smtpServer = "192.168.0.0"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
}

3 comentarios:

Jonathan dijo...

Hola Hector,

Te hago una pregunta:

Estoy realizando un backup del sitio de la intranet de la empresa por medio de powershell y el programador de tareas de Windows, pero se me presenta un problema.

Export-SPWeb -Identity http://urlsitio/ -Path "C:\BackupIntranet\Cpk.bak" -IncludeUserSecurity -Compression 1024 -IncludeVersions 4

Como hago para que el nombre del backup me cambie la fecha del día en que se genera.

"C:\BackupIntranet\Cpk.bak" este es el nombre del backup

Sin embargo cuando se hace la segunda vez dice que ya existe ?

me puedes colaborar

Gracias,

Anónimo dijo...

$today = (Get-Date -Format dd-MM-yyyy)
"C:\BackupIntranet\Cpk" + $today + ".bak"

R0/V\A dijo...

Hola Hector, buenos dias. Dejo esta consulta a ver si alguien conoce el motivo de mi caso.
Habia lanzado la ejecucion de la tarea, pero al darme cuenta que algo me habia faltado configurar la finalize (desde el administador de tareas mate al powershell.exe asociado). Evidentemente esto no fue adecuado, ya que me afecto la DB de sharepoint (dejo de mostrar documentos de algunas bibliotecas y elimino los permisos de todos los usuarios) inclusive ni con el administrador pude restablecer los permisos. Tuve que levantar un respaldo que tenia de la semana anterior.

Si alguien se imagina porque puede ser, agradecia la informacion.
Gracias

Román