Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ECHO off
- CLS
- rem #####################################################################
- rem # #
- rem # Sript de sauvegarde et de restauration d'un poste #
- rem # dans le cadre d'un échange de PC avec transfert des données. #
- rem # Auteur d'origine : LimDul du forum Hardware.fr #
- rem # Date de création : 17/09/2013 #
- rem # #
- rem #####################################################################
- rem But : sauvegarder sur le support depuis est exécuté le script les données des utilisateurs
- rem puis les rapatrier sur le nouveau pc en gardant l'ensemble des droits.
- rem Liste des répertoires sauvegardés :
- rem C:\Repertoire (ou tout autre répertoire voulu, il suffit de changer/ajouter les lignes qu'il faut)
- rem C:\Users\Username\repertoire (répertoire d'utilisateur, pour prendre par exemple les documents, le bureau)
- rem Suivis des versions :
- rem Merci d'indiquer la date année-mois-jour, la version, l'auteur et une description des modifications
- rem 2013-09-17, v1.0, LimDul, première version
- rem #################################################################################################################################
- rem ##################
- rem # Partie "debut" #
- rem ##################
- rem Vérification des paramètres
- IF "%1"=="/?" GOTO aide
- IF "%1"=="/s" GOTO sauvegarde
- IF "%1"=="/S" GOTO sauvegarde
- IF "%1"=="/r" GOTO restauration
- IF "%1"=="/R" GOTO restauration
- IF "%1"=="/p" GOTO transfert
- IF "%1"=="/P" GOTO transfert
- rem Choix du mode : sauvegarde ou restauration
- :choixmode
- CLS
- ECHO ###########################################################
- ECHO # Script de transfert de donnees entre deux pc #
- ECHO # #
- ECHO # ATTENTION : uniquement valable pour Windows Vista ! #
- ECHO # ATTENTION : Vous devez lancer le script depuis un #
- ECHO # compte avec les droits d'administration #
- ECHO # via la ligne de de commande avec des #
- ECHO # droits d'administration mais SURTOUT PAS #
- ECHO # via un clic-droit #
- ECHO # "Executer en tant qu'administrateur" #
- ECHO # depuis un compte sans droit d'admin #
- ECHO # #
- ECHO ###########################################################
- ECHO.
- ECHO.
- ECHO.
- ECHO Faites votre choix :
- ECHO (S) pour sauvegarder le PC
- ECHO (R) pour restaurer une sauvegarde
- ECHO (P) pour definir un lecteur source et destination particuliers
- ECHO (A) pour afficher l'aide
- ECHO (Enter ou Q pour quitter)
- ECHO.
- SET /p choix="Choix ? "
- If /I "%choix%"=="s" GOTO sauvegarde
- If /I "%choix%"=="S" GOTO sauvegarde
- If /I "%choix%"=="r" GOTO restauration
- If /I "%choix%"=="R" GOTO restauration
- If /I "%choix%"=="p" GOTO transfert
- If /I "%choix%"=="P" GOTO transfert
- If /I "%choix%"=="a" GOTO aide
- If /I "%choix%"=="A" GOTO aide
- If /I "%choix%"=="q" GOTO :eof
- If /I "%choix%"=="Q" GOTO :eof
- If /I "%choix%"=="" GOTO :eof
- SET choix=
- ECHO Erreur : votre choix n'est pas valide
- PAUSE
- GOTO choixmode
- rem Aide
- :aide
- ECHO ############################################################################
- ECHO # AVERTISSEMENT #
- ECHO ############################################################################
- ECHO Il ne faut pas lancer ce script via un clic-droit
- ECHO "Executer en tant qu'administrateur"
- ECHO Il faut le lancer depuis une ligne de commande avec les droits
- ECHO d'administrateur ou depuis un compte avec les droits d'administration
- ECHO ############################################################################
- ECHO.
- ECHO Ce script permet de sauvegarder les donnees des utilisateurs
- ECHO pour ensuite les restaurer sur un autre ordinateur.
- ECHO De base le script est concu pour etre executé depuis un
- ECHO support externe (clef ou disque dur USB).
- ECHO Le script sauvegarde les dossiers/fichiers suivants :
- ECHO (voir les commentaires en début de script)
- ECHO De base le script copie en gardant les droits vers le dossier :
- ECHO #:\Sauvegarde\nom_du_pc
- ECHO (avec # comme lettre du lecteur usb depuis lequel est execute le script)
- ECHO.
- ECHO Le script necessite des droits d'administrateur pour fonctionner correctement
- ECHO ainsi qu'un lecteur usb formate en NTFS pour la concervation des droits
- ECHO.
- ECHO Parametres :
- ECHO "/?" Affiche l'aide (sans les "")
- ECHO /s permet de lancer la sauvegarde
- ECHO /r sans precision permet de lancer la restauration
- ECHO /r nom_du_pc lance la restauration sur le nouveau PC du PC sauvegarde sous
- ECHO le nom nom_du_pc depuis la sauvegarde #:\Sauvegarde\nom_du_pc
- ECHO (avec # comme lettre du lecteur usb depuis lequel est
- ECHO execute le script)
- ECHO /p lance le transfert de fichier en mode particulier
- ECHO.
- GOTO :eof
- rem #################################################################################################################################
- :sauvegarde
- rem Sauvegarde d'un poste Vista
- ECHO ######################
- ECHO # #
- ECHO # Sauvegarde #
- ECHO # #
- ECHO ######################
- ECHO.
- ECHO Recuperation de la lettre du lecteur depuis ou est lance le script
- SET lettre=%cd:~0,1%
- ECHO.
- ECHO Le script est lance depuis le lecteur %lettre%
- ECHO.
- ECHO Recuperation de la liste des repertoires des utilisateurs
- ECHO.
- rem Récupération de la liste des répertoires
- DIR C:\users /AD/B > .\listreptemps.txt
- rem Exclusion du répertoire default
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "Default" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire public
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "Public" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire system
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "SYSTEM" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire All Users
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "All Users" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Suppression des lignes inutiles en début de fichier temporaire
- FOR /f "skip=8 delims=" %%i IN (listreptemps.txt) DO ECHO %%i>> FIC.TRA
- MD %lettre%:\Sauvegarde\%computername%\
- COPY FIC.TRA %lettre%:\Sauvegarde\%computername%\listreptemps.txt
- DEL FIC.TRA
- ECHO.
- ECHO Liste des repertoires des utilisateurs recuperee
- ECHO.
- ECHO Debut de la sauvegarde des fichiers du repertoire C:\Repertoire
- ECHO.
- rem L'usage de robocopy permet de sauvegarder les repertoire vides via /e et les droits via /copyall. /r:1 et /w:1 permetent de limiter le nombre de tentatives et le délais entre les tentatives
- robocopy C:\Repertoire %lettre%:\Sauvegarde\%computername%\Repertoire /e /copyall /r:1 /w:1
- rem Attention lors de tests avec le commutateur /create les droits ne sont pas copiés, il faut les sauvegarder manuellement, voir ci-dessous
- rem Sauvegarde des droits du répertoire C:\Repertoire
- icacls C:\Repertoire\* /save %lettre%:\Sauvegarde\%computername%\Repertoire.droit /C
- rem Cette sauvegarde des droits ne devrait pas être utile car la copie via robocopy avec le commutateur /copyall devrait copier les droits.
- rem Or les droits ne sont pas tous copiés.
- ECHO.
- ECHO Repertoire C:\Repertoire sauvegarde.
- ECHO.
- ECHO Debut de la sauvegarde des donnees des utilisateurs dans le repertoire C:\Users
- ECHO.
- FOR /F %%j IN (%lettre%:\Sauvegarde\%computername%\listreptemps.txt) DO (
- rem Copie des archives
- robocopy "C:\Users\%%j\AppData\Local\Microsoft\Outlook" "%lettre%:\Sauvegarde\%computername%\%%j\Outlook" /e /copyall /IF "*.pst"
- rem Copie des signatures Outlook
- robocopy "C:\Users\%%j\AppData\Roaming\Microsoft\Signatures" "%lettre%:\Sauvegarde\%computername%\%%j\Signatures" /e /copyall
- rem copie du répertoire "mes documents" si le profil est mal synchronisé
- IF EXIST "C:\Users\%%j\Documents" (
- robocopy "C:\Users\%%j\Documents" "%lettre%:\Sauvegarde\%computername%\%%j\Documents" /e /copyall
- robocopy "C:\Users\%%j\Desktop" "%lettre%:\Sauvegarde\%computername%\%%j\Desktop" /e /copyall
- robocopy "C:\Users\%%j\Favorites" "%lettre%:\Sauvegarde\%computername%\%%j\Favorites" /e /copyall
- )
- )
- rem Sauvegarde des droits des utilisateurs
- icacls C:\Users\* /save %lettre%:\Sauvegarde\%computername%\user.droit /C
- ECHO.
- ECHO Donnees des utilisateurs dans le repertoire C:\Users sauvegardees
- ECHO.
- rem DEL listreptemps.txt
- ECHO.
- ECHO #############################################
- ECHO # #
- ECHO # Le PC %computername% a ete sauvegarde #
- ECHO # #
- ECHO #############################################
- ECHO.
- PAUSE
- GOTO :eof
- rem #################################################################################################################################
- :restauration
- rem Restauration d'un poste Vista
- CLS
- ECHO ########################
- ECHO # #
- ECHO # Restauration #
- ECHO # #
- ECHO ########################
- ECHO.
- ECHO Recuperation de la lettre du lecteur depuis ou est lance le script
- SET lettre=%cd:~0,1%
- ECHO.
- ECHO Le script est lance depuis le lecteur %lettre%
- ECHO.
- ECHO.
- ECHO Quel est le nom de l'ancien poste a restaurer ?
- ECHO (Q ou echap pour quitter)
- ECHO.
- SET /p ancien=""
- If /I "%ancien%"=="q" GOTO :eof
- If /I "%ancien%"=="Q" GOTO :eof
- If /I "%ancien%"=="" GOTO :eof
- rem test de l'existance de la sauvegarde
- IF EXIST %lettre%:\Sauvegarde\%ancien%\ GOTO restaurationsuite
- ECHO.
- ECHO.
- ECHO ERREUR
- ECHO Erreur : la sauvegarde n'existe pas
- ECHO.
- SET /p ancien=
- PAUSE
- GOTO restauration
- :restaurationsuite
- ECHO.
- ECHO Debut de la restauration des fichiers du repertoire C:\Repertoire
- ECHO.
- robocopy %lettre%:\Sauvegarde\%ancien%\Repertoire C:\Repertoire /e /copyall
- rem Restauration des droits du répertoire C:\Repertoire
- icacls C:\Repertoire /restore %lettre%:\Sauvegarde\%ancien%\Repertoire.droit /C
- rem Cette sauvegarde/restauration des droits ne devrait pas être utile car la copie se fait déjà avec concervation des droits.
- rem Les tests ont été fait avec le commutateur /create de robocopy, à voir si sans le commutateur les droits sont vraiment copiés ou pas.
- ECHO.
- ECHO Repertoire C:\Repertoire restaure.
- ECHO.
- ECHO Debut de la restauration des donnees des utilisateurs dans le repertoire C:\Users
- ECHO.
- FOR /F %%j IN (%lettre%:\Sauvegarde\%ancien%\listreptemps.txt) DO (
- robocopy "%lettre%:\Sauvegarde\%ancien%\%%j\Outlook" "C:\Users\%%j\AppData\Local\Microsoft\Outlook" /e /copyall
- robocopy "%lettre%:\Sauvegarde\%ancien%\%%j\Signatures" "C:\Users\%%j\AppData\Roaming\Microsoft\Signatures" /e /copyall
- IF EXIST "%lettre%:\Sauvegarde\%computername%\%%j\Documents" (
- robocopy "%lettre%:\Sauvegarde\%computername%\%%j\Documents" "C:\Utilisateurs ancien poste %ancien%\%%j\Documents" /e /copyall
- robocopy "%lettre%:\Sauvegarde\%computername%\%%j\Desktop" "C:\Utilisateurs ancien poste %ancien%\%%j\Desktop" /e /copyall
- robocopy "%lettre%:\Sauvegarde\%computername%\%%j\Favorites" "C:\Utilisateurs ancien poste %ancien%\%%j\Favorites" /e /copyall
- )
- )
- rem Restauration des droits des utilisateurs
- icacls "C:\Utilisateurs ancien poste %ancien%" /restore %lettre%:\Sauvegarde\%ancien%\user.droit /C
- ECHO.
- ECHO Donnees des utilisateurs restaurees dans le repertoire C:\Utilisateurs ancien poste %ancien%
- ECHO.
- ECHO.
- ECHO #####################################
- ECHO # #
- ECHO # Le PC %ancien% a ete restaure #
- ECHO # sur le poste %computername% #
- ECHO # #
- ECHO #####################################
- ECHO.
- PAUSE
- GOTO :eof
- rem #################################################################################################################################
- :transfert
- rem Transfert direct entre deux disques de postes sous Vista
- CLS
- ECHO ###########################
- ECHO # #
- ECHO # Tranfert direct #
- ECHO # #
- ECHO ###########################
- ECHO.
- ECHO.
- ECHO.
- ECHO Indiquez la lettre du lecteur source des donnees
- ECHO.
- SET /p source="Lecteur source ? "
- ECHO.
- ECHO.
- ECHO.
- ECHO Indiquez la lettre du lecteur cible des donnees
- ECHO.
- SET /p cible="Lecteur cible ? "
- ECHO.
- ECHO.
- ECHO Quel est le nom de l'ancien poste ?
- ECHO.
- SET /p ancien="ancien poste ? "
- ECHO.
- ECHO.
- ECHO.
- ECHO ------------------------------------------------
- ECHO.
- ECHO.
- ECHO.
- ECHO Le lecteur d'origine des donnees est le lecteur %source%:
- ECHO Le lecteur de destination des donnees est le lecteur %cible%:
- ECHO L'ancien poste a transferer est le %ancien%
- ECHO.
- ECHO Est-ce correct ?
- ECHO (O/N, Q ou Enter pour quitter)
- SET /p test=
- If /I "%test%"=="n" GOTO transfert
- If /I "%test%"=="N" GOTO transfert
- If /I "%test%"=="o" GOTO transfertsuite
- If /I "%test%"=="O" GOTO transfertsuite
- If /I "%test%"=="q" GOTO :eof
- If /I "%test%"=="Q" GOTO :eof
- If /I "%test%"=="" GOTO :eof
- SET test=
- ECHO Erreur : votre choix n'est pas valide
- PAUSE
- GOTO transfert
- :transfertsuite
- ECHO.
- ECHO Recuperation de la liste des repertoires des utilisateurs
- ECHO.
- rem Récupération de la liste des répertoires
- DIR %source%:\users /AD/B > .\listreptemps.txt
- rem Exclusion du répertoire default
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "Default" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire public
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "Public" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire system
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "SYSTEM" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Exclusion du répertoire All Users
- COPY listreptemps.txt FIC.TRA
- FIND /V /I "All Users" .\FIC.TRA > listreptemps.txt
- DEL FIC.TRA
- rem Suppression des lignes inutiles en début de fichier temporaire
- FOR /f "skip=8 delims=" %%i IN (listreptemps.txt) DO ECHO %%i>> FIC.TRA
- MD %lettre%:\Sauvegarde\%ancien%\
- COPY FIC.TRA %lettre%:\Sauvegarde\%ancien%\listreptemps.txt
- DEL FIC.TRA
- ECHO.
- ECHO Liste des repertoires des utilisateurs recuperee
- ECHO.
- ECHO Debut de la sauvegarde des fichiers du repertoire C:\Fichiers
- ECHO.
- rem L'usage de robocopy permet de sauvegarder les repertoire vides via /e et les droits via /copyall. /r:1 et /w:1 permetent de limiter le nombre de tentatives et le délais entre les tentatives
- robocopy %source%:\Fichiers %cible%:\Fichiers /e /copyall /r:1 /w:1
- rem Attention lors de tests avec le commutateur /create les droits ne sont pas copiés, il faut les sauvegarder manuellement, voir ci-dessous
- rem Sauvegarde des droits du répertoire C:\Fichiers
- icacls %source%:\Fichiers\* /save %lettre%:\Sauvegarde\%ancien%\Fichiers.droit /C
- icacls %source%:\Fichiers\Outlook\* /save %lettre%:\Sauvegarde\%ancien%\Outlook.droit /C
- rem Cette sauvegarde des droits ne devrait pas être utile car la copie via robocopy avec le commutateur /copyall devrait copier les droits.
- rem Or les droits ne sont pas tous copiés.
- rem Restauration des droits du répertoire C:\Fichiers
- icacls %cible%:\Fichiers /restore %lettre%:\Sauvegarde\%ancien%\Fichiers.droit /C
- icacls %cible%:\Fichiers\Outlook /restore %lettre%:\Sauvegarde\%ancien%\Outlook.droit /C
- rem Cette sauvegarde/restauration des droits ne devrait pas être utile car la copie se fait déjà avec concervation des droits.
- rem Les tests ont été fait avec le commutateur /create de robocopy, à voir si sans le commutateur les droits sont vraiment copiés ou pas.
- ECHO.
- ECHO Repertoire C:\Fichiers transfere.
- ECHO.
- ECHO Debut de la copie des donnees des utilisateurs dans le repertoire C:\Users
- ECHO.
- FOR /F %%j IN (%lettre%:\Sauvegarde\%ancien%\listreptemps.txt) DO (
- rem Copie des archives
- robocopy "%source%:\Users\%%j\AppData\Local\Microsoft\Outlook" "%cible%:\Users\%%j\AppData\Local\Microsoft\Outlook" /e /copyall /IF "*.pst"
- rem Copie des signatures Outlook
- robocopy "%source%:\Users\%%j\AppData\Roaming\Microsoft\Signatures" "%cible%:\Users\%%j\AppData\Roaming\Microsoft\Signatures" /e /copyall
- rem copie du répertoire "mes documents" si le profil est mal synchronisé
- IF EXIST "%source%:\Users\%%j\Documents" (
- robocopy "%source%:\Users\%%j\Documents" "%cible%:\Fichiers\Utilisateurs ancien poste %ancien%\%%j\Documents" /e /copyall
- robocopy "%source%:\Users\%%j\Desktop" "%cible%:\Fichiers\Utilisateurs ancien poste %ancien%\%%j\Desktop" /e /copyall
- robocopy "%source%:\Users\%%j\Favorites" "%cible%:\Fichiers\Utilisateurs ancien poste %ancien%\%%j\Favorites" /e /copyall
- )
- )
- rem Sauvegarde des droits des utilisateurs
- icacls %source%:\Users\* /save %lettre%:\Sauvegarde\%ancien%\user.droit /C
- rem Restauration des droits des utilisateurs
- icacls %cible%:\Users /restore %lettre%:\Sauvegarde\%ancien%\user.droit /C
- ECHO.
- ECHO Donnees des utilisateurs dans le repertoire %source%:\Users transferee
- ECHO.
- rem DEL listreptemps.txt
- ECHO.
- ECHO ####################################################################
- ECHO # #
- ECHO # Le PC %ancien% a ete transfere vers le PC %computername% #
- ECHO # #
- ECHO ####################################################################
- ECHO.
- PAUSE
- GOTO :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement