1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| @echo OFF
setlocal enabledelayedexpansion
rem ############## Declaration des variables et constantes ##############
@SET /P ADRESSE_IP=[Entrez l'adresse IP du poste distant : ]
@SET /P USER_ADMIN=[Entrez votre samaccountname : ]
@SET /P USER_MDP=[Entrez votre mot de passe : ]
SET CHEMIN_COMPLET_CLEF="\\%ADRESSE_IP%\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
SET NOM_VALEUR=ProfileImagePath
SET DONNEE_VALEUR_TEMP="C:\Users\Temp"
SET CHEMIN_REP_USER_TEMP=\\%ADRESSE_IP%\C$\Users\Temp
rem ############## Déclaration de permission de modification sur le pc distant ##############
sc \\%ADRESSE_IP% start remoteregistry
net use %REP_USER_TEMP% /user:%USER_ADMIN% %USER_MDP%
cls
rem ############## Début ##############
rem echo "TEST - Affiche l'adresse ip du user : "%ADRESSE_IP%
rem echo "TEST - Affichage de la clef de registre : "%CHEMIN_COMPLET_CLEF%
rem echo "TEST - Affichage repertoire Temp : " %CHEMIN_REP_USER_TEMP%
echo " -- Batch Correctif_ProfilBak -- "
echo " "
echo "###################### Suppression de la clef profil contenant C:\Users\Temp #####################"
echo " Veuillez patienter... "
echo " "
rem # Recuperation de tous les profils dans dans ProfileList
for /f "tokens=*" %%a in ('reg query %CHEMIN_COMPLET_CLEF%') do (
set PROFIL_EN_COURS="%%a"
rem echo "####### AFFICHAGE DES PROFILS EN COURS D'ANALYSE #######"
rem echo "TEST - Affichage du profil en cours d'analyse : " !PROFIL_EN_COURS!
rem # Les 3 valeurs qui composent ProfileImagePath son le nom, le type et la donnee
rem # Recupere la 3ème valeurs de ProfileImagePath NOM_VALEUR dans le Profil en cours
for /f "tokens=1-3" %%b in ('reg query !PROFIL_EN_COURS! /v %NOM_VALEUR%') do (
rem echo "####### VALLEUR DU PIP DANS LE PROFIL EN COURS #######"
set NOM_PIP="%%b"
rem echo "TEST - Nom du ProfileImagePath : " !NOM_PIP!
set TYPE_PIP="%%c"
rem echo "TEST - Type du ProfileImagePath : " !TYPE_PIP!
set DONNEE_PIP="%%d"
rem echo "TEST - Donnee du ProfileImagePath : " !DONNEE_PIP!
rem # Si la donnee du ProfileImagePath contient le userTemp
if !DONNEE_PIP! == %DONNEE_VALEUR_TEMP% (
rem echo "############## PROFIL CONTENANT C:\USERS\TEMP ##############"
rem echo "TEST - Clef_Profil contenant C:\Users\Temp trouve : " !PROFIL_EN_COURS!
rem # Alors suppression du profil en cours contenant DONNEE_PIP
reg delete !PROFIL_EN_COURS! /f
echo " "
echo " Profil contenant C:\Users\Temp dans la donnee de ProfileImagePath trouve et supprime! "
echo " "
) else (
echo " Pas de profil contenant C:\Users\Temp dans la donnee de ProfileImagePath trouve dans ce profil "
echo " Analyse du suivant... "
)
)
)
echo " "
pause
cls
echo "########################## Renommage de la clef_profil.bak en cle_profil #########################"
echo " Veuillez patienter... "
echo " "
rem Recuperation du profil ayant .bak dans dans ProfileList
for /f "tokens=*" %%a in ('reg query %CHEMIN_COMPLET_CLEF% ^| find "bak"') do (
set PROFIL_BAK="\\%ADRESSE_IP%\%%a"
rem echo "TEST - Affiche le profil.bak : "!PROFIL_BAK!
rem # Recuperation de \\X. X. X. X\Clef_registre\Profil sans .bak
for /f "tokens=1-5 delims=." %%b in (!PROFIL_BAK!) do (
set PROFIL_USER="%%b.%%c.%%d.%%e"
rem echo "############## CLEF PROFIL SANS .BAK ##############"
rem echo "TEST - Affiche le profil sans .bak : "!PROFIL_USER!
)
rem # Creation d'une nouvelle clef_profil comtenant Nom, Type et Donnees de la clef_profil.bak
reg add !PROFIL_USER!
rem echo "TEST - Ajout OK"
rem # Ajout du contenu de clef_profil.bak vers clef_profil en forcant
Reg save !PROFIL_BAK! ProfilBak.txt /y
rem echo "TEST - Sauvegarde OK"
Reg restore !PROFIL_USER! ProfilBak.txt
rem echo "TEST - Restauration OK"
rd ProfilBak.txt /s /q
rem # Suppression du profil.bak
reg delete !PROFIL_BAK! /f
rem echo "############## SUPPRESSION CLEF PROFIL.BAK ##############"
echo " Profil.bak supprime "
echo " Profil User renomme correctement "
echo " "
)
pause
cls
echo "######################### Suppression du repertoire Temp dans 'C:\Users' #########################"
echo " Veuillez patienter... "
echo " "
rem echo "TEST - Affichage du repertoire Temp sur le poste distant : " %CHEMIN_REP_USER_TEMP%
rem # Si le repertoire userTemp existe
if exist %CHEMIN_REP_USER_TEMP% (
rem # Alors suppresion du repertoire userTemp, ainsi que tous les sous-dossiers sans demander confirmation
rd %CHEMIN_REP_USER_TEMP% /s /q
echo " Repertoire Temp dans C:\Users trouve et supprime "
echo " "
)else (
echo " Pas de repertoire Temp trouve dans C:\Users "
echo " "
)
pause
rem ############## Fin de déclaration de permission de modification sur le pc distant ##############
rem # Fin de modification sur la base de registre
sc \\%ADRESSE_IP% stop remoteregistry
rem # Fin de modification sur des répertoires
net use c: /delete
cls
rem ############## Final ##############
echo " -- Batch Correctif_ProfilBak termine avec succes -- "
pause |
Partager