Lo script riportato esegue il backup del system state su un discco VHDx raggiungibile tramite share
i passi seguiti per il salvataggio sono i seguenti
-
montaggio del disco virtuale, creato in precedenza, a cui è stata assegnata l’unita Z:
-
esecuzione della copia del systemstate mediante Windows Server Backup
-
verifica dello stato di esecuzione della copia tramite lo stato di ritorno dello script
-
invio di una mail con l’indicazione dello stato di esecuzione della procedura
-
smontaggio del disco
Una volta terminato il processo, il file VHDX contenente il backup del System State può essere copiato e salvato per sicurezza
#4 ottobre 2013 R.Massa
#Esecuzione backup systemstate ed invio mail di notifica sullo stato finale del processo
#funzione per invio Mail viene passato il parametro contenente la stringa del corpo messaggio
function SendMail ($a)
{
# Costanti
#Server Mail
$smtpServer = “1.2.3.4”
#Creazione dell’oggetto MAIl
$MailMessage = new-object Net.Mail.MailMessage
#Crezione dell’oggetto MAIL Server
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
#Composizione della Mail
$MailMessage.From = mittente@dominio.it
$MailMessage.ReplyTo = mittente@dominio.it
$MailMessage.To.Add(destinatario1@dominio.it,destinatario2@dominio.it)
$MailMessage.subject = “Backup SystemState”
$MailMessage.body = $a
#invio del messaggio
$smtp.Send($MailMessage)
}
# mount del disco VHDX dedicato alla copia del Systemstate
Mount-DiskImage \SRV01backupsystemstatesrv02.vhdx
# avvio del backup systemstate su Z:
wbadmin start systemstatebackup -backupTarget:z: -quiet
# Dismount del volume utilizzato dal backup
disMount-DiskImage \SRV01backupsystemstatesrv02.vhdx
#
#echo $LastExitCode
#test della condizione in $LASTEXITCODE “0” exit normale “-2” con errori
#se 0 invio mail con messaggio OK altrimenti messaggio di attenzione
if ($LastExitCode -eq “0” ) {
$CorpoMail = “Backup systemstate eseguito correttamente ”
SendMail $CorpoMail
}
else {
$CorpoMail = “Backup systemstate eseguito con errori controllare ”
SendMail $CorpoMail
exit
}