Bonjour tt le monde,
J'ai créé un batch pour le boulot pour permettre de chercher les profils fantôme sur toutes les machines du réseau: çà crée parfois des soucis poru l'ouverture de session.
Mon batch fait dans un 1er temps un net view pour récupérer la liste des machines connectées, puis connecte c$, va voir si le profil XXXX existe, et le cas échéant l'efface.
Le problème que je rencontre est la présence de clés dans la base de registre m'empêchant de totalement effacer le repertoire: certaines clés pointent dessus.
Il faut donc que je scanne la BDR en ligne de commande, puis que j'efface les clés qui posent problème.
Mais j'ai bcp de mal à utiliser la commande reg find, alors si qq'un pourrait me donner un coup de main çà serait pas de refus...
Je vous mets le code source de mon batch principal:
Citation :
@echo off
rem *****************************************
rem * Fait par ############################ *
rem *****************************************
title [Recherche d'un profil sur les postes du #####]
Rem
Rem Test des arguments
Rem
if MASC%1==MASC goto USAGE
Rem
Rem Déclaration du fichier par défaut
Rem
set CHEMIN=c:\outils\svp\test\
set FICHIER=%CHEMIN%listing.txt
Rem
Rem Récupération de la liste des machines connectées
Rem
net view | sort | find "\\" | cut -c 3-15 > %FICHIER%
Rem
Rem Initialisation des variables globales
Rem
set PROFIL=%1%
set SCRIPT=machine.bat
Rem
Rem Boucle for pour scanner le fichier
Rem
FOR /F "eol=; tokens=1" %%a IN (%FICHIER%) do %CHEMIN%%SCRIPT% %%a %PROFIL%
goto FIN
Rem
Rem Partie Usage
Rem
:USAGE
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Usage : %0% CompteNT º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
goto FIN
|
et voici le code du 2ième batch:
Citation :
@echo off
Rem *************************************
Rem Fait par ########################## *
Rem *************************************
Rem
Rem Test des arguments
Rem
if MASC%2==MASC goto USAGE
Rem
Rem Initialisation des variables globales
Rem
set MACHINE=%1%
set UNITE=y:
set LOGIN=########
set PASSWD=########
set PROFILE=%2%
set CHEMIN=%UNITE%\winnt\profiles\
set DOMAINE=######
Rem
Rem Connexion du lecteur réseau
Rem
if exist %UNITE%\nul net use %UNITE% /delete 1>nul
net use %UNITE% \\%MACHINE%\c$ %PASSWD% /USER:%DOMAINE%\%LOGIN% 1>nul
if errorlevel 2 goto FIN
Rem
Rem Vérification de la présence du profil
Rem
if exist %CHEMIN%%PROFILE% goto BON
goto PASBON
Rem
Rem Profil présent sur le poste
Rem
:BON
echo --------------------------------------------------------
echo Le profil "%PROFILE%" est present sur le poste %MACHINE%
echo --------------------------------------------------------
rmdir /s /q %CHEMIN%%PROFILE%
echo -------------
echo Profil efface
echo -------------
if exist %UNITE%\nul net use %UNITE% /delete 1>nul
goto FIN
Rem
Rem Profil absent du poste
Rem
ASBON
echo --------------------------------------------------------------
echo Le profil "%PROFILE%" n'est pas present sur le poste %MACHINE%
echo --------------------------------------------------------------
if exist %UNITE%\nul net use %UNITE% /delete 1>nul
goto FIN
Rem
Rem Usage
Rem
:USAGE
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Syntaxe de la commande: º
echo º %0% PosteNT CompteNT º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
goto FIN
:FIN
|
Voilà, j'espère que j'ai été complet dans mon explication du problème, et que mon post n'est pas trop long. S'il faut que j'enlève le code dites-le moi et j'édite mon message.
Merci d'avance pour votre aide.
Matthieu