Question script sauvegarde avec rapport email

Plus d'informations
il y a 4 ans 4 mois #21766 par kevin27930
J'utilise le script de sauvegarde de fichier trouvé ici mais je dois passer par un serveur smtp sécurisé.
Etant donné mon faible niveau en powerShell, je flanche depuis quelques jours.

J'utilise pour mes rapports de sauvegarde windows un petit script d'envoie d'email via mon serveur authentifié qui fonctionne bien mais je n'arrive pas a adapter celui là pour qu'il me permette de le faire automatiquement.

Merci d'avance pour votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 4 mois #21767 par kevin27930
Mon script :
[code:1]$TimesStart = Get-date -Format 'dddd dd MMM yyyy'
$HourStart = Get-Date -Format 'HH\"h\"mm'

$favorisLog = \"C:\Users\KM.INTUITION\favoris\"+\"favoris\"+\" {0:dddd dd MMM yyyy' - 'HH'h'mm}.log\" -f (Get-Date)
robocopy \"C:\Users\KM.INTUITION\Favorites\" \"S:\sauvegardes\favoris\" /MIR /R:3 /W:2 > $favorisLog
$EeeExitCode = $LASTEXITCODE

$ImagesLog = \"C:\Users\KM.INTUITION\images\"+\"Images\"+\" {0:dddd dd MMM yyyy' - 'HH'h'mm}.log\" -f (Get-Date)
robocopy \"C:\Users\KM.INTUITION\Pictures\" \"S:\sauvegardes\images\" /MIR /R:3 /W:2 > $ImagesLog
$AaaExitCode = $LASTEXITCODE

$TimesEnd = Get-date -Format 'dddd dd MMM yyyy'
$HourEnd = Get-Date -Format 'HH\"h\"mm'

$ExitCode = @{
\"16\"=\"Erreur fatale lors de l'opération. Voir fichier de Log\"
\"15\"=\"Echec de la copie. Voir le fichier de Log.\"
\"14\"=\"Echec de la copie. Voir le fichier de Log.\"
\"13\"=\"Echec de la copie. Voir le fichier de Log.\"
\"12\"=\"Echec de la copie. Voir le fichier de Log.\"
\"11\"=\"Echec de la copie. Voir le fichier de Log.\"
\"10\"=\"Echec de la copie. Voir le fichier de Log.\"
\"9\"=\"Echec de la copie. Voir le fichier de Log.\"
\"8\"=\"Echec de la copie. Plisieurs fichiers n'ont pas été copiés. Voir le fichier de Log.\"
\"7\"=\"Copie OK. Certains fichiers présents et supplémentaires on générés une incohérence entre la source
et la destination. Voir le fichier de Log.\"
\"6\"=\"Copie OK. Certains fichiers et dossiers suplémentaires ont génété une incohérence entre la source
et la destination. Voir le fichier de Log.\"
\"5\"=\"Copie OK. Certains fichiers ont été copiés et d'autres ont généré une incohérence entre la source
et la destination. Voir le fichier de Log.\"
\"4\"=\"Copie OK. Une incohérence entre la source et la destination de la sauvegarde a été détectée. Voir
le fichier de Log.\"
\"3\"=\"Copie OK. Certains fichiers supplémentaires ont été copiés avec succès.\"
\"2\"=\"Copie OK. Certains fichiers ou répertoires supplémentaires ont été détectés et copiés avec succès.\"
\"1\"=\"Copie OK. Un ou plusieurs fichiers ont été copiés avec succès du répertoire source au répertoire
de destination.\"
\"0\"=\"Copie OK. Aucun changement. Le répertoire source était identique au répertoire de destination.\"
}

$TimesEnd = Get-date -Format 'dddd dd MMM yyyy'
$HourEnd = Get-Date -Format 'HH\"h\"mm'

$MailAaaKO = \"Echec de la sauvegarde \"\"Aaa\"\" du $TimesStart. Succès de la sauvegarde \"\"Eee\"\" \"
$MailEeeKO = \"Echec de la sauvegarde \"\"Eee\"\" du $TimesStart. Succès de la sauvegarde \"\"Aaa\"\" \"
$MailEeeAaaKO = \"Echec de la sauvegarde \"\"Eee\"\" et \"\"Aaa\"\" du $TimesStart\"
$MailEeeAaaOK = \"Succès de la sauvegarde \"\"Eee\"\" et \"\"Aaa\"\" du $TimesStart\"


$mail = New-Object System.Net.Mail.MailMessage

if ($EeeExitCode -lt 1 -and $AaaExitCode -lt 1)
{
$mail.Body = \"Ceci est un message de confirmation du bon déroulement des sauvegardes \"\"Aaa\"\" et \"\"Eee\"\"
démarrées le $TimesStart à $HourStart et terminées le $TimesEnd à $HourEnd.`n`nLes résultats de
sauvegardes ont été les suivants :`n`nAaa`n\"+$ExitCode[\"$AaaExitCode\"]+\" `n`nEee `n\"+$ExitCode[\"$EeeExitCode\"]
$mail.Subject = $MailEeeAaaOK
$mail.priority = 'Normal'
$mail.Attachments.Clear()
}

ElseIf ($EeeExitCode -lt 1 -and $AaaExitCode -gt 0)
{
$mail.Body = \"Ceci est un message d'alerte concernant un problème survenu lors de la sauvegarde \"\"Aaa\"\"
démarrée le $TimesStart à $HourStart et terminée le $TimesEnd à $HourEnd.`n`nLes résultats de
sauvegardes ont été les suivants :`n`nAaa`n\"+$ExitCode[\"$AaaExitCode\"]+\" `n`nEee `n\"+$ExitCode[\"$EeeExitCode\"]+\"`n`
Pour de plus amples détails, consultez le fichier log en pièce jointe\"
$mail.Subject = $MailAaaKO
$mail.priority = 'High'
$mail.Attachments.Add(\"$favorisLog\"«»)
}

ElseIf ($AaaExitCode -lt 1 -and $EeeExitCode -gt 0)
{
$mail.Body = \"Ceci est un message d'alerte concernant un problème survenu lors de la sauvegarde \"\"Eee\"\" démarrée
le $TimesStart à $HourStart et terminée le $TimesEnd à $HourEnd.`n`nLes résultats de sauvegardes
ont été les suivants :`n`nAaa`n\"+$ExitCode[\"$AaaExitCode\"]+\" `n`nEee `n\"+$ExitCode[\"$EeeExitCode\"]+\"`n`
Pour de plus amples détails, consultez le fichier log en pièce jointe\"
$mail.Subject = $MailEeeKO
$mail.priority = 'High'
$mail.Attachments.Add(\"$imagesLog\"«»)
}

Else
{
$mail.Body = \"Ceci est un message d'alerte concernant un problème survenu lors des sauvegardes \"\"Aaa\"\" et \"\"Eee\"\"
démarrées le $TimesStart à $HourStart et terminées le $TimesEnd à $HourEnd. `n`nLes résultats de
sauvegardes ont été les suivants :`n`nAaa`n\"+$ExitCode[\"$AaaExitCode\"]+\" `n`nEee `n\"+$ExitCode[\"$EeeExitCode\"]+\"`n`
Pour de plus amples détails, consultez les fichiers log en pièces jointe\"
$mail.Subject = $MailEeeAaaKO
$mail.priority = 'High'
$mail.Attachments.Add(\"$favorisLog\"«»)
$mail.Attachments.Add(\"$imagesLog\"«»)
}

$mail.From = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'
$mail.To.Add('Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.')
$mail.CC.Add('=?iso-8859-1?Q?D=E9D=E9_T=F4t=F4?= <jmb@intuition.email>')
$mail.Bcc.Add('Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.')
$smtpServer = 'smtp.test.fr'
$smtpUserName = 'smtp@test.fr# This could be also in e-mail address format
$smtpPassword = 'Password'
$smtpClient = new-object system.net.mail.SmtpClient($SmtpServer)
$smtpClient.Port = 58
$smtpClient.Credentials = New-Object System.Net.NetworkCredential($smtpServer,$smtpPassword)
$mailCredentials.UserName = $smtpUserName
$mailCredentials.Password = $smtpPassword
$smtpClient.Send($mail)
$mail.Attachments.Dispose()
$mail = $null
$smtpClient = $null
#$EeeExitCode
#$AaaExitcode
[/code:1]

Message édité par: kevin27930, à: 27/04/16 11:50<br><br>Message édité par: kevin27930, à: 27/04/16 11:51

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.298 secondes
Propulsé par Kunena