Bonjour Developpez.com !

Etant nouveau sur ce forum, veuillez me pardonner si je poste cette demande dans la mauvaise catégorie.

Bon rentrons dans le vif du sujet et je vais essayer d'être le plus détaillé possible dans ma demande.

Besoin d'une modification sur un script en batch afin de pouvoir sauvegarder le fichier archive.pst d'un emplacement spécifique vers un emplacement d'un partage nas.

Nous avons développé dans ma boîte ce script mais il y a des bugs que nous n'arrivons pas à déterminer et donc à résoudre.

N'étant pas expert en commande et en batch, je fais appel à vos services.
Au préalable j'ai déjà cherché sur internet sans trouver de réponse adéquate.


Le but :

Tout les utilisateurs utilisent une boite de messagerie sous le logiciel Outlook avec un serveur exchange. 200 BAL environ.

On nous a demandé de créer une archive.pst en local sur chaque pc où se trouve une messagerie outlook afin de décharger (alléger) le serveur exchange situé à distance.

Le fichier.pst doit se trouver dans %USERPROFILE%\Documents\"Fichiers Outlook" obligatoirement même si ce n'est pas l'OS seven.

Ensuite nous avons créer un archivage automatique sur les deux versions d'Outlook (2007 et 2010) pointant sur ce fichier archive.pst tout les 7 jours.

Puis grâce au script (que je vais vous dévoiler un peu plus bas), la sauvegarde s'effectue.

En gros, si outlook est ouvert, il le ferme, le copie en fichier temporaire dans le répertoire %USERPROFILE%\Documents\"Fichiers Outlook" puis fait une sauvegarde du fichier temp vers le partage du nas. Ensuite, il réouvre Outlook et puis continue la sauvegarde.

Pour vous aider à comprendre, nous avons dans notre parc les systèmes et versions d'outlook suivants :

_ XP Pro SP3 + Outlook 2007
_ XP Pro SP3 + Outlook 2010
_ Vista Pro SP2 + Outlook 2007
_ Vista Pro SP2 + Outlook 2010
_ Seven Pro SP1 + Outlook 2007
_ Seven Pro SP1 + Outlook 2010
_ Seven Pro SP1 x64 + Outlook 2010

Note : Oui vista c'est de la daube mais nous ne pouvons remplacer ces os par du seven ou autre car les moyens sont manquants.


Le répertoire du nas est : Sauvegarde_PST.


COPIE DU SCRIPT UTILISE

@echo off
set CHEMIN=%USERPROFILE%\Documents\"Fichiers Outlook"
set DRIVE=k:
set BACKUPDIR=Sauvegarde_PST

:verifarchive
if not exist %CHEMIN%\archive.pst (
echo Archive absente de %CHEMIN%
echo:
pause
goto fin
)
) else (
goto killoutlook
)

:killoutlook
cls
taskkill /F /IM outlook.exe

:debut
cls
if exist %CHEMIN%\*.tmp (
echo Outlook est en cours de fermeture. Si ce message persiste :
echo:
echo - Lancer et Fermer Outlook -
timeout /T 5 /NOBREAK
goto debut
)
) else (

cls
echo *****************************************
echo * *
echo * NE PAS DEMARRER OUTLOOK *
echo * il redemarrera automatiquement. *
echo * *
echo *****************************************
echo:
echo Veuillez patienter. Copie locale en cours...
echo:
cd \
copy %CHEMIN%\archive.pst %CHEMIN%\copy_archive.pst

if exist "C:\Program Files\Microsoft Office\Office12" C:\script_bck_pst\"Microsoft Office Outlook 2007.lnk"
if exist "c:\Program Files (x86)\Microsoft Office\Office14" C:\script_bck_pst\"Microsoft Office Outlook 2010.lnk"
cls
timeout /T 5

if not exist %DRIVE% (
cls
echo Il n'y a pas de lecteur %DRIVE% pour recevoir votre archive.
echo PAS de sauvegarde.
echo:
pause
goto fin
)
:crearep
if not exist %DRIVE%\%BACKUPDIR%\%COMPUTERNAME% (
cls
echo Le dossier %COMPUTERNAME% n'existe pas.
echo Creation du dossier %COMPUTERNAME%...
echo:
%drive%
cd %BACKUPDIR%
md %COMPUTERNAME%
echo Creation du dossier %USERNAME%...
cd %COMPUTERNAME%
md %USERNAME%
echo Le dossier à correctement ete cree.
pause
goto copy
)
if not exist %DRIVE%\%BACKUPDIR%\%COMPUTERNAME%\%USERNAME% (
cls
echo Le dossier %USERNAME% n'existe pas.
echo Creation du dossier %USERNAME%
echo:
%drive%
cd %BACKUPDIR%\%COMPUTERNAME%
md %USERNAME%
echo Le dossier %USERNAME% a correctement ete cree.
pause
goto copy
)
:copy
cls

echo Copie en cours de votre archive vers le NAS. Ne pas fermer cette fenetre.
echo:
copy %CHEMIN%\copy_archive.pst %DRIVE%\%BACKUPDIR%\%COMPUTERNAME%\%USERNAME%\archive.pst
del %CHEMIN%\copy_archive.pst /S /Q
)
:fin
exit


Nous rencontrons trois gros problèmes :

1) Le script ne fonctionne pas sur XP à cause du chemin pour trouver microsoft office 2007 et/ou 2010.

2) Sous vista et certaines fois sous seven, le script n'arrive pas à lancer la sauvegarde, s'arrête sur le timeout /T5 /Nobreak et relance le timeout sans arrêt. Seule solution trouvée actuellement, on supprime la ligne suivante cls
if exist %CHEMIN%\*.tmp (
echo Outlook est en cours de fermeture. Si ce message persiste :
echo:
echo - Lancer et Fermer Outlook -
timeout /T 5 /NOBREAK
goto debut
)
) else (
et on ferme manuellement outlook.

3) Le script ne fonctionne pas quand il y a deux profils de messagerie (donc deux messageries exchange) sur une session unique d'un pc.



Mesdemoiselles, Mesdames et Messieurs, pourriez vous nous aider ?

Merci d'avance.

Cordialement,

Bryce37.