Réaliser une copie de secours du fichier PST d'Outlook pour les utilisateurs équipés d'un ordinateur portable ayant tout de même une connexion réseau à leur bureau.
D'abord on fait un test pour savoir si l'on se trouve ou non connecté au réseau local (utilisation du Ping et verification de sa sortie sur la console).
Le script fait ensuite une copie en .old du fichier distant (cela peut peut-être servir en cas de souci ???). Enfin on copie le fichier local vers le serveur. Avec cela il reside, sur le serveur, 2 versions de la sauvegarde (la copie normale et son .old).
Une ou deux popup pour les messages et hop on démarre Outlook !
Ce script doit être executé à l'ouverture de la sessione Windows. Si l'utilsateur est hors ligne (en déplacement) rien ne se passe. Il vaut mieux veiller à garder un PST pas trop gros pour éviter des copie qui n'en terminent pas ! Pour cela, utilisez la fonction d'archivage du logiciel (les itinérants n'ont pas besoin de partir avec tous leurs mails depuis X années !!).
'----------------------------------------------------------------------------------------
' Objectifs : faire une sauvegarde du PST principal d'outlook à travers le réseau
' à l'ouverture de session de Windows. Cas typique du commercial
' qui rentre à son bureau et se connecte au réseau.
'----------------------------------------------------------------------------------------
' -> Prévenir l'utilisateur qu'une sauvegared va démarrer, Outlook
' sera ouvert automatiquement à la fin.
' -> Faire la copie des PST du portable (c:\) vers un lecteur réseau protégé (y:\)
' -> Lancer Outlook
' -> Ne rien faire si utilisateur en déplacement
'----------------------------------------------------------------------------------------
' **** DECLARATION DES INSTANCES UTILES *****
'----------------------------------------------------------------------------------------
set shell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'----------------------------------------------------------------------------------------
' **** PARAMETRES DU CLIENT ET DU SERVEUR *****
'----------------------------------------------------------------------------------------
serveur = "172.16.87.6" ' IP du serveur de backup
dir_source = "c:\windows\bureau\" ' Chemin pour le PST source (local)
dir_copie = "y:\ftricard\" ' Chemin vers le serveur (distant)
nom_pst = "TODO.TXT" ' Nom du PST à traiter
ext_copie = ".old" ' Extension pour la copie de sauvegarde
if not (objFSO.FileExists(dir_source & nom_pst)) then
' On quitte si PST introuvable
shell.Popup "Fichier source introuvable", 4, "Annulation", 64 + 7
WScript.Quit -1
end if
'----------------------------------------------------------------------------------------
' **** VERIFIER QU'ON EST CONNECTE AU RESEAU *****
'----------------------------------------------------------------------------------------
Function IsConnectable(sHost,iPings,iTO)
' sHost is a hostname or IP
' iPings is number of ping attempts
' iTO is timeout in milliseconds
' if values are set to "", then defaults below used
If iPings = "" Then iPings = 2
If iTO = "" Then iTO = 750
Set ExCmd = shell.Exec("ping -n " & iPings & " -w " & iTO & " " & sHost)
Select Case InStr(ExCmd.StdOut.Readall,"perte 0%")
Case 0 IsConnectable = False
Case Else IsConnectable = True
End Select
End Function
if IsConnectable(serveur,"","") = False then
' On quitte si on est hors du réseau interne
shell.Popup "Vous êtes en déplacement", 1, "Hors Ligne", 64 + 7
WScript.Quit -1
end if
'----------------------------------------------------------------------------------------
' **** POPUP AVERTISSEMENT *****
'----------------------------------------------------------------------------------------
shell.Popup "Sauvegarde de vos mailS en cours, Outlook sera ouvert automatiquement à " &_
" la fin de la savegarde", 4, "Patienter SVP...", 64 + 7
'----------------------------------------------------------------------------------------
' **** COPIE PST EN BACKUP SUR SERVEUR ****
'----------------------------------------------------------------------------------------
' Supprimer l'ancien .old
if (objFSO.FileExists(dir_copie & nom_pst & ext_copie)) then
objFSO.DeleteFile dir_copie & nom_pst & ext_copie, true
end if
' Renomme l'ancien PST en .old sur le serveur
if (objFSO.FileExists(dir_copie & nom_pst)) then
objFSO.MoveFile dir_copie & nom_pst , dir_copie & nom_pst & ext_copie
end if
' Copie du PST local sur le serveur
objFSO.CopyFile dir_source & nom_pst , dir_copie
'----------------------------------------------------------------------------------------
' **** OUVRIR OUTLOOK ****
'----------------------------------------------------------------------------------------
shell.Popup "Ouverture d'Outlook en cours", 2, "Patienter...", 64 + 7
RegBase = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Outlook.exe\"
AppExe = shell.RegRead(RegBase)
shell.run chr(34) & AppExe & chr(34)
set shell = Nothing
Set objFSO = Nothing