Question Script de sauvegarde : envoi mail en cas d'erreur

Plus d'informations
il y a 10 ans 7 mois #20551 par Fred
Bonjour à tous,
Je fais suite à un précédent post ou grâce a l'aide et au soutient indéfectible d'un utilisateur de ce forum (merci Laurent Dardenne) j'ai finalement réussi a élaborer un script de sauvegarde des fichiers bureau/favoris/mes documents pour un utilisateur uniquement si cet utilisateur est bien sur le pc qui lui est dédié.
j’essaie de peaufiner le script et mon but est maintenant d'envoyer un mail aux administrateurs systèmes en cas de problème de la sauvegarde.
ma méthode : créer une fonction Email puis ajouter le contenu du mail en fonction du moment ou l'erreur apparait.
Dans la partie test réseau j'ai bypassé cette fonction puisque que si je n'ai pas de réseau, je ne pourrait envoyer de mail mais par contre j'ai creer une fonction \"Set-Popup\" qui informe l'utilisateur que le serveur n'est pas joignable.
idem dans la partie test comparaison user-computer.
Voici le script, n'hésitez pas à me dire ce que vous en pensez et si vous avez des modifications qui pourrait l'améliorer. Sachant que je suis encore en train de tester car je n'arrive pas a récupérer les codes erreurs pour les mettre dans le contenu du mail lol
[code:1]############################# Fonction Popup ###########################################

Function Set-Popup
{
$WshShell = New-Object -ComObject wscript.shell
$WshShell.Popup($args[0],0,'Avertissement')
Exit
}

############################# Fonction Email ############################################

Function Send-Email
{
$expediteur = $env:computername@mondomaine.fr
$destinataire = Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

send-mailmessage -To $destinataire -From $expediteur -Subject \"sauvegarde en erreur\" -SmtpServer smtp.mondomaine.fr
}


############## test de la connexion avec le serveur ou se situe la sauvegarde ###########################

$testcnx= Test-Connection XXX.XXX.XXX.XXX -Count 1
if (-Not($testcnx)) {Set-Popup \"Serveur de sauvegarde inaccessible\"}

############################# import du module AD et test si utilisateur et pc sont bien reliés dans AD #############################

Import-Module ActiveDirectory
$description= Get-ADComputer $env:computername -properties * | select -Expandproperty Description
$username= Get-ADUser $env:username -properties * | select -Expandproperty Name
$ismycomputer= $description.IndexOf($username, [System.StringComparison]::OrdinalIgnoreCase) -ne -1
if (-Not($ismycomputer)) {Set-Popup \"Sauvegarde impossible pour cet utilisateur\"}

############################# Message voulez vous sauvegarder ##########################################################

$YES=6
$shell=new-object -com wscript.shell
$ret=$shell.popup(\"Voulez-vous sauvegarder?\",0,\"Sauvegarde\",4+32)
if ($ret -ne $YES) {exit}

############################# creation du chemin de sauvegarde si il n'existe pas encore #############################

$localusername=$env:username
$destination=E:\Sauvegarde\$localusername\
if (-Not($destination)) {new-item -path E:\Sauvegarde\ -name $localusername -itemtype directory}

if (-not $?) {Send-Email -body \"probleme a la creation du chemin de sauvegarde\"}

############################# sauvegarde de bureau favoris et mes documents #############################

$source1=\"$env:HOMEPATH\Documents\"
$destination1=\"E:\Sauvegarde\$localusername\Documents\"

robocopy $source1 $destination1 /MIR /COPYALL

if (-not $?) {Send-Email -body \"probleme avec la sauvegarde du repertoir MES DOCUMENTS\"}

$source2=\"$env:HOMEPATH\Favorites\"
$destination2=\"E:\Sauvegarde\$localusername\Favorites\"

robocopy $source2 $destination2 /MIR /COPYALL

if (-not $?) {Send-Email -body \"probleme avec la sauvegarde du repertoir FAVORIS\"}

$source3=\"$env:HOMEPATH\Desktop\"
$destination3=\"E:\Sauvegarde\$localusername\Desktop\"

robocopy $source3 $destination3 /MIR /COPYALL

if (-not $?) {Send-Email -body \&quot;probleme avec la sauvegarde du repertoir BUREAU\&quot;}[/code:1]<br><br>Message édité par: fred31200, à: 28/07/15 16:00

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

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