IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Problème avoir un batch


Sujet :

Scripts/Batch

  1. #21
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Voila ce qu'il me reste à trouver (je suis en cours de recherche ou alors en train de le développer).


    1) Recherche une méthode pour retourner un message log en fonction de l'état d'activation de Windows (si bien activé => Réussite ; si pas activé => Échec )

    j'ai qu'une seule piste pour cela et ça consiste à tester si y'a la possibilité d'utilisé If ERRORLEVEL


    2) Récupérer des sous clés du registre dans : Winlogon => AutoAdminLogon ; DefaultDomainName ; DefaultUserName ; DefaultPassword pour ensuite les comparer soit directement (si possible ) avec une variable soit les mettre dans une variable par une boucle for puis les comparer à une autre variable pour déterminé si cela à échouer ou réussi

    je travail sur l'utilisation des reg query en ce moment même

    => Question: Peut t'on mettre une chaine de caractère à comparer dans une variable puis la comparer à une autre chaine de caractère dans une autre variable ?


    1ere forme d'exemple: => Fonctionne pas (message 17H00)

    echo veuillez entrer deux chaines de caractère à comparer
    Set /p a=
    Set /p b=

    if %a% == %b% (
    echo identique
    ) else (
    echo différent
    )
    exit



    2eme forme d'exemple: => Fonctionne pas (message 17H00)

    echo veuillez entrer deux chaines de caractère à comparer
    Set /p a=
    Set /p b=

    if %a% == %b% echo identique

    if %a% NEQ %b% echo différent
    exit



    3éme possibilité ? => Fonctionne pas (message 17H00)
    @echo off
    @echo.
    cls

    Echo. > C:\Users\Administrateur\Desktop\essai1.txt
    echo veuillez entrer deux chaines de caractere a comparer
    set /p a=1ere chaine:
    set a=%a%
    cls
    set /p b=2eme chaine:
    set b=%b%
    cls

    if %a% EQU %b% (
    echo caractere(s) identique(s) >> C:\Users\Administrateur\Desktop\essai1.txt
    )

    if %a% NEQ %b% (
    echo caractere(s) different(s) >> C:\Users\Administrateur\Desktop\essai1.txt
    )



    Merci d'avance pour votre aide



    PS: 17H36 => le code fonctionne presque. Quand je met sur une ligne avec les if , ça fonctionne mais quand je met sous cette forme, il m'ignore les if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @echo off
    @echo.
    cls
    
    @echo %COMPUTERNAME% > C:\Users\Administrateur\Desktop\essai1.txt
    @echo %DATE% >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo %time:~0,8% >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo %USERNAME% >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    
    set /p a=1ere chaine: 
    set a=%a%
    cls 
    set /p b=2eme chaine: 
    set b=%b%
    cls
    if %a% EQU %b% (
    @echo caractere(s) identique(s) >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    )
    
    if %a% NEQ %b% (
    @echo caractere(s) different(s) >> C:\Users\Administrateur\Desktop\essai1.txt
    @echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    )

  2. #22
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Ce qui est en rouge est inutile
    Ensuite les parentheses en batch sont des carctères spéciaux si tu veux les utiliser dans un echo il faut les préceder d'un ^ sinon ça va pas fonctionner.

    Si tu veux que ton test de variable ne soit pas sensible à la casse, utilise if /i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    set /p a=1ere chaine: 
    set a=%a%
    cls 
    set /p b=2eme chaine: 
    set b=%b%
    cls
    if %a% EQU %b% (echo caractere^(s^) identique^(s^) >> C:\Users\Administrateur\Desktop\essai1.txt
    echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    )
    
    if %a% NEQ %b% (
    echo caractere^(s^) different^(s^) >> C:\Users\Administrateur\Desktop\essai1.txt
    echo. >> C:\Users\Administrateur\Desktop\essai1.txt
    )

  3. #23
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    ça fonctionne , un grand merci. pratique le IF /i car au moins ça prend tout en compte pour la comparaison



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @echo off
    cls
    
    if not exist D:\log##%computername%\ ( 
    md D:\log##%computername%\
    )
    
    echo Date de creation: %DATE% > "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Heure creation:  %time:~0,8% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom utilisateur: %USERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom ordinateur: %COMPUTERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cls
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo *********gestion de l'autologin********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    set /p autoadminlogon=active autologon ? ( 0 desactive et 1 active ):
    set /p defaultdomainname=Mettre le domaine par defaut ? :
    set /p defaultusername=Utilisateur par defaut ? :
    set /p defaultpassword=Mot de passe par defaut ? :
    
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d %autoadminlogon% /f
    @echo cles registre AutoAdminLogon traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d %defaultdomainname% /f
    @echo cles registre DefaultDomainName traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d %defaultusername% /f
    @echo cles registre DefaultUserName traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d %defaultpassword% /f
    @echo cles registre DefaultPassword traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    exit

    Je comprend pas pourquoi la dernière clés de registre me demande une confirmation pour écraser la valeur qui est déja dans la sous clés DefaultPassword alors que pour les autres, les options fonctionnent parfaitement et le reg add écrase les données sans avoir besoin de confirmation de la part de l'utilisateur . (le but c'est de automatisé à 100%) (je l'ai mis en Orange pour plus de visibilité)

  4. #24
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    le problème au dessus à été régler avec des guillemet (la plus simple des solutions ^__^ => l'origine du souci : mettre un valeur nul , il demandait confirmation pour écraser la valeur précédente )




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    @echo off
    for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher" ^| find "ExitTime"') do set stop=%%i
    for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher" ^| find "StartTime"') do set boot=%%i
    echo.
    echo Dernier arret de Windows ........ : %stop% 
    echo Dernier demarrage de Windows .... : %boot%
    echo.
    pause

    j'aimerais juste comprendre à quoi sert le Tokens. Le reste de la boucle, je comprend le code. On met déjà dans une variable la valeur & le for s'occupe de boucler pour que chaque ligne soit prise en compte.

    j'ai bien sur fait for /? dans la console de commande



    Et comment fonctionne ce code (comment ce place t'il pour le découpage & récupération des informations que l'on veut? )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    echo %%a > C:\Users\Administrateur\Desktop\essai.txt
    )
    là, il prend bien la valeur de ma clés avec 3 mais si je met 2, il me prend un autre bout d'un chaine de caractère et si je met 1, il me prend encore autre chose (qui est le chemin de la clés & le nom de la sous clés) .


    J'aime bien coder à partir du moment ou j'ai une compréhension de ce que je fais et pour cette boucle là, je comprend pas du tout cette "option" token et ce que représente ce chiffre 3*.

    équivalent au "cat", coupler avec des cut | et compagnie sous linux ?








    Mise à jour : 14H59




    Voici les modifications que j'ai fais sur mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @echo *********gestion de l'autologin********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    set autoadminlogon=0
    set defaultdomainname=testavecdro
    set defaultusername=testavoir
    set defaultpassword=azertyaz
    
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    echo Pas besoin de modifier la valeur. La valeur de AutoAdminLogon est: %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%a" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "%autoadminlogon%" /f
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    echo La valeur: AutoAdminLogon bien modifiee. La valeur de AutoAdminLogon est: %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%autoadminlogon%" NEQ "%%a" (
    echo Erreur lors de la modification de la valeur: AutoAdminLogon. La valeur de AutoAdminLogon est: %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    ))
    
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "%defaultdomainname%" /f
    for /f "tokens=3*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%b" (
    echo La valeur: DefaultDomainName bien modifiee. La valeur de DefaultDomainName est: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultdomainname%" NEQ "%%b" (
    echo Erreur lors de la modification de la valeur: DefaultDomainName. La valeur de DefaultDomainName est: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    )
    
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "%defaultusername%" /f
    for /f "tokens=3*" %%c in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%c" (
    echo La valeur: DefaultUserName bien modifiee. La valeur de DefaultUserName est: %%c >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%c" (
    echo Erreur lors de la modification de la valeur: DefaultUserName . La valeur de DefaultUserName est: %%c >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    )
    
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "%defaultpassword%" /f
    for /f "tokens=3*" %%d in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%d" (
    echo La valeur: DefaultPassword bien modifiee. La valeur de DefaultPassword est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ) 
    if /i "%defaultpassword%" NEQ "%%d" (
    echo Erreur lors de la modification de la valeur: DefaultPassword. La valeur de DefaultPassword est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    )
    
    pause




    Je pense que c'est une histoire de syntaxe ou quelques choses du genre mais j'ai un souci (ou peut être que ça ce fait tout simplement pas )




    En rouge, c'est le code qui est actuellement fonctionnel néanmoins je dois rajouter la ligne de code suivante (pour gérer les cas ou l'utilisateur ne souhaite pas modifier cette ou ces clés ou alors si la clés est déja à la valeur souhaitée et donc ne doit pas être modifié "histoire de gagner du temps").

    code à rajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    echo Pas besoin de modifier la valeur. La valeur de AutoAdminLogon est: %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")



    en maganta sur le code du dessus: Sinon, pour ma part, j'ai essayé une autre méthode qui consister plus ou moins à imbriquer des for et des if dans une seule boucle (pour essayer d'optimiser tout cela )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    REM gestion du cas ou l'utilisateur ne veut pas modifier la valeur ou si la valeur est déjà celle souhaitee
    if /i "%autoadminlogon%" EQU "%%a" (
    echo Pas besoin de modifier la valeur. La valeur de AutoAdminLogon est: %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    REM si la valeur est différente alors on la modifie.
    if /i "%autoadminlogon%" NEQ "%%a" (
    REM Modification de la clés de registre
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "%autoadminlogon%" /f
    REM Récupération de la valeur après modification de la clés de registre par la commande ADD reg
    for /f "tokens=3*" %%z in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    
    
    REM test si la valeur à été modifiée
    
    
    REM Si elle à été modifiée alors on affiche bien modifié
    if /i "%autoadminlogon%" EQU "%%z" (
    echo La valeur: AutoAdminLogon bien modifiee. La valeur de AutoAdminLogon est: %%z >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    REM si elle n'a pas été bien modifiée alors => Message d'erreur 
    if /i "%autoadminlogon%" NEQ "%%z" (
    echo Erreur lors de la modification de la valeur: AutoAdminLogon. La valeur de AutoAdminLogon est: %%z >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    ))
    Le script s'arrête là
    *********gestion de l'autologin*********
    Voila pourquoi je me pose ces questions .

    C'est possible d'imbriquer tout ça?


    Si c'est pas possible, j'ai une autre solution qui nécessitera plus de ligne de code car il faudra rajouter 4 * la ligne de test (pour vérifier les 4 clés de registres avant modifications )

  5. #25
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    La boucle s'arrête. Il ne modifie rien dans la base de registre & Zap le log. Je n'arrive pas à savoir pourquoi

    Le souci est à partir de cette boucles.

    *********gestion de l'autologin*********
    (je l'ai mis en marron)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    @echo off
    cls
    
    if not exist D:\log##%computername%\ ( 
    md D:\log##%computername%\
    )
    
    @echo Date de creation: %DATE% > "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo Heure creation:  %time:~0,8% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom utilisateur: %USERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom ordinateur: %COMPUTERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cls
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo -------------------------------------------Fichier Log-------------------------------------------------- >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo *********activation windows********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cscript //B "%windir%\system32\slmgr.vbs" /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    @echo IPK traite >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cscript //B "%windir%\system32\slmgr.vbs" /ato 
    @echo ato traite >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo activation Windows traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo *********gestion utilisateur********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    net user Administrateur /active:yes
    IF %ERRORLEVEL% EQU 0 (
    CLS
    @echo Le compte Administrateur Local est bien activé >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec lors de l'activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    net user Utilisateur /delete
    @echo gestion utilisateur traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @rmdir C:\Users\Utilisateur /s /q
    dir C:\Users\Utilisateur
    if %errorlevel% EQU 0 (
    echo Erreur: le dossier C:\sources n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    if %errorlevel% NEQ 0 (
    echo Le dossier sources est bien ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo *********gestion de l'autologin********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    set autoadminlogon=1
    set defaultdomainname=tcf
    set defaultusername=test
    set defaultpassword=qsdf
    
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    echo La valeur de la cles de registre AutoAdminLogon est deja de : %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%a" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "%autoadminlogon%" /f
    for /f "tokens=3*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%b" (
    echo La valeur: AutoAdminLogon bien modifiee. La valeur de AutoAdminLogon est de: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%autoadminlogon%" NEQ "%%b" (
    echo Erreur lors de la modification de la valeur: AutoAdminLogon. La valeur de AutoAdminLogon est: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%c in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%c" (
    echo La valeur de la cles de registre DefaultDomainName est deja : %%c >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%defaultdomainname%" NEQ "%%c" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "%defaultdomainname%" /f
    for /f "tokens=3*" %%d in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%d" (
    echo La valeur: DefaultDomainName bien modifiee. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultdomainname%" NEQ "%%d" (
    echo Erreur lors de la modification de la valeur: DefaultDomainName. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%e in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%e" (
    echo La valeur de la cles de registre DefaultUserName est deja : %%e >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%defaultusername%" NEQ "%%e" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "%defaultusername%" /f
    for /f "tokens=3*" %%f in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%f" (
    echo La valeur: DefaultUserName bien modifiee. La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%f" (
    echo Erreur lors de la modification de la valeur: DefaultUserName . La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%g in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%g" (
    echo La valeur de la cles de registre DefaultUserName est deja : %%g >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%defaultpassword%" NEQ "%%g" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "%defaultpassword%" /f
    for /f "tokens=3*" %%h in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%h" (
    echo La valeur: DefaultPassword bien modifiee. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ) 
    if /i "%defaultpassword%" NEQ "%%h" (
    echo Erreur lors de la modification de la valeur: DefaultPassword. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    exit

  6. #26
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    rebonjour!

    ce qui est au dessus à été régler



    Ce qu'il me reste, c'est :

    1) Réussir à trouver un moyen de savoir si Windows est bien activé et pouvoir crée un log type:

    Windows est bien activé ou Windows n'est pas activé



    avec la commande
    slmgr -xpr
    doit y avoir moyen de récupérer cela néanmoins cela ouvre une fenêtre & il me faut récupérer le message (surement par une boucle for)


    2) Faire la distinction lors de la suppression de l' Utilisateur dont le nom est Utilisateur:

    Il renvoie:

    0 => Aucune erreur lors de la suppression de l'utilisateur est bonne (ça c'est bon, vu que le code retourné est unique)





    mais là ou y'a un souci, c'est quand il retourne 2 pour trois choses choses:

    la 1ere: quand l'utilisateur n'existe plus

    la 2éme : quand l'utilisateur n'a pas les droits pour supprimé l'utilisateur

    la 3éme: quand il y a vraiment une erreur lors de la suppression de l'utilisateur



    (pour la solution donnée avant, je ne vois pas comment l'appliquer et je dois dire qu'on niveau idée pour cela, je suis à sec car d'habitude j'utilise une commande pour récupérer le code d'erreur et ainsi faire la distinction)

  7. #27
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Test si ton compte utilisateur existe. Avec un test du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %utilisateur%==%username% set $switch=1
    A toi de trouver la façon de tester si l'utilisateur existe
    si ton compte utilisateur existe met un switch à 1

    si ton switch = 1 fait ton delete et ensuite test si le compte existe toujours.
    Si il existe toujours genère une erreur de droit dans ton log.

    si ton switch est à 0 tu genère une erreur compte inexistant

  8. #28
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Pour l'activation de Windows, j'ai fais ceci pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @echo off
    cls
    
    if not exist D:\log##%computername%\ ( 
    md D:\log##%computername%\
    )
    
    @echo Date de creation: %DATE% > "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo Heure creation:  %time:~0,8% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom utilisateur: %USERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom ordinateur: %COMPUTERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cls
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo *********activation windows********* >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cscript //B "%windir%\system32\slmgr.vbs" /ipk XXXXX-XXXXX-XXXX-XXXXXX-XXXXX
    if %errorlevel% EQU 0 (
    echo Aucune erreur lors de l'etape IPK >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    if %errorlevel% NEQ 0 (
    echo Erreur lors de l'étape IPK.Windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    cscript //B "%windir%\system32\slmgr.vbs" /ato 
    
    if %errorlevel% EQU 0 (
    echo Aucune erreur lors de l'etape ATO >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    if %errorlevel% NEQ 0 (
    echo Erreur lors de l'étape ATO.Windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"

    Maintenant, il faut que je m'assure que ça répond à l'ensemble des messages d’erreur de Windows pour l'activation de Windows.



    Il me reste à trouver comment vérifié que Windows à bien été activé et faire un message de log en fonction du retour


    Je vais aussi essayé d'utiliser net user d'une manière détourner. En effet, si l'utilisateur existe alors il retourne 0 et sinon il retourne 2.

    Edit 14H35
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec lors de l'activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    @echo >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    net user Utilisateur
    if %errorlevel% NEQ 0 (
    @echo l'utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    if %errorlevel% EQU 0 (
    net user Utilisateur /delete
    net user Utilisateur
    		if %errorlevel% EQU 0 (
    			@echo Erreur lors de la suppression du compte : Utilisateur >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    		)
    
    		if %errorlevel% NEQ 0 (
    			@echo Le compte Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    		)
    )
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    J'essaye ta solution pour l'utilisateur

  9. #29
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Finalement, je me suis arrangé autrement en utilisant de manière détourné des commandes de base qui si elles échouaient renvoyé un code d'erreur (1 ou 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    
    @echo off
    cls
    
    if not exist D:\log##%computername%\ ( 
    md D:\log##%computername%\
    )
    
    @echo Date de creation: %DATE% > "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo Heure creation:  %time:~0,8% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom utilisateur: %USERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom ordinateur: %COMPUTERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cls
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ----------------------------------------------------------------------- Fichier Log ----------------------------------------------------------------------- >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ***************************************** activation windows ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cscript //B "%windir%\system32\slmgr.vbs" /ipk XXXXX-XXXXXX-XXXXX-XXXXX-XXXXX
    if %errorlevel% EQU 0 (
    @echo Aucune erreur lors de l'etape IPK >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %errorlevel% NEQ 0 (
    @echo Erreur lors de l'étape IPK. La cles windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    cscript //B "%windir%\system32\slmgr.vbs" /ato 
    if %errorlevel% EQU 0 (
    @echo Aucune erreur lors de l'etape ATO >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %errorlevel% NEQ 0 (
    @echo Erreur lors de l'étape ATO. La cles windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    @echo activation Windows traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ***************************************** gestion utilisateur ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    net user Administrateur /active:yes
    IF %ERRORLEVEL% EQU 0 (
    CLS
    @echo Le compte Administrateur Local est bien actif >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec lors de l'activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    net user Utilisateur
    if %errorlevel% NEQ 0 (
    @echo l'utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if %errorlevel% EQU 0 (
    net user Utilisateur /delete
    net user Utilisateur
    		if %errorlevel% EQU 0 (
    			@echo Erreur lors de la suppression du compte : Utilisateur >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    
    		if %errorlevel% NEQ 0 (
    			@echo Le compte Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    
    dir C:\Users\Utilisateur
    if %errorlevel% NEQ 0 (
    echo Le dossier C:\Users\Utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if %errorlevel% EQU 0 (
    @rmdir C:\Users\Utilisateur /s /q
    dir C:\Users\Utilisateur
    		if %errorlevel% EQU 0 (
    			@echo Erreur: le dossier C:\Users\Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    		
    		if %errorlevel% NEQ 0 (
    			@echo Le dossier C:\Users\Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo ***************************************** gestion de l'autologin ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    set autoadminlogon=1
    set defaultdomainname=hjgftc
    set defaultusername=tesvdv
    set defaultpassword=qsddvd
    
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    @echo La valeur de la cles de registre AutoAdminLogon est deja de : %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%a" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "%autoadminlogon%" /f
    for /f "tokens=3*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%b" (
    @echo La valeur: AutoAdminLogon bien modifiee. La valeur de AutoAdminLogon est de: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%b" (
    @echo Erreur lors de la modification de la valeur: AutoAdminLogon. La valeur de AutoAdminLogon est: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%c in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%c" (
    @echo La valeur de la cles de registre DefaultDomainName est deja : %%c >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%defaultdomainname%" NEQ "%%c" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "%defaultdomainname%" /f
    for /f "tokens=3*" %%d in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%d" (
    @echo La valeur: DefaultDomainName bien modifiee. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultdomainname%" NEQ "%%d" (
    @echo Erreur lors de la modification de la valeur: DefaultDomainName. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%e in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%e" (
    @echo La valeur de la cles de registre DefaultUserName est deja : %%e >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%e" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "%defaultusername%" /f
    for /f "tokens=3*" %%f in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%f" (
    @echo La valeur: DefaultUserName bien modifiee. La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%f" (
    @echo Erreur lors de la modification de la valeur: DefaultUserName . La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%g in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%g" (
    @echo La valeur de la cles de registre DefaultUserName est deja : %%g >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultpassword%" NEQ "%%g" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "%defaultpassword%" /f
    for /f "tokens=3*" %%h in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%h" (
    @echo La valeur: DefaultPassword bien modifiee. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ) 
    if /i "%defaultpassword%" NEQ "%%h" (
    @echo Erreur lors de la modification de la valeur: DefaultPassword. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    
    exit

    Si vous voyez un moyen d'améliorer le code, je suis toujours à l'écoute de bons conseils :=)

    ( j'ai pas trouvé comment faire avec ton système pour l'utilisateur. Je suis pas trop à l'aise avec le switch de Windows)



    Je recherche maintenant juste un moyen de faire un log :

    Si Windows activé => echo Windows est bien activé
    Si Windows pas activé => echo Windows connait un problème d'activation

    sachant que le IPK et ATO à beau bien se dérouler, ce n'est pas pour moi un preuve suffisante que Windows est bien activé (je l'ai mis en rouge dans le code au dessus)



    J'ai un souci aussi au niveau du code (en violet). Même si il arrive à supprimer correctement l'utilisateur, il me retourne le log d'erreur : Erreur lors de la suppression du compte : Utilisateur

    d'ailleurs, il est fort probable que je puisse simplifier le code en utilisant simplement un %errorlevel% juste après net user Utilisateur /delete au lieu de passer par le même système de test d’existence du compte avant sa suppression

  10. #30
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Rebonjour !

    Après beaucoup de réflexion et votre aide précieuse (qui m'a vraiment bien aidée) , j'avance petit à petit sur ce code batch (je dois dire que c'est plus long que je le pensais "il en va de même pour le code" ) :=)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    
    @echo off
    cls
    
    if not exist D:\log##%computername%\ ( 
    md D:\log##%computername%\
    )
    
    @echo Date de creation: %DATE% > "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo Heure creation:  %time:~0,8% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom utilisateur: %USERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    echo Nom ordinateur: %COMPUTERNAME% >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cls
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ----------------------------------------------------------------------- Fichier Log ----------------------------------------------------------------------- >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ***************************************** activation windows ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    cscript //B "%windir%\system32\slmgr.vbs" /ipk XXXXXX-XXXXX-XXXX-XXX-XX
    if %ERRORLEVEL% EQU 0 (
    @echo Aucune erreur lors de l'etape IPK >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %ERRORLEVEL% NEQ 0 (
    @echo Erreur lors de l'étape IPK. La cles windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    cscript //B "%windir%\system32\slmgr.vbs" /ato 
    if %ERRORLEVEL% EQU 0 (
    @echo Aucune erreur lors de l'etape ATO >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %ERRORLEVEL% NEQ 0 (
    @echo Erreur lors de l'étape ATO. La cles windows n'est donc pas active >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    @echo activation Windows traitee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    
    @echo ***************************************** gestion utilisateur ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    net user Administrateur /active:yes
    IF %ERRORLEVEL% EQU 0 (
    CLS
    @echo Le compte Administrateur Local est bien actif >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec lors de l'activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    net user Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    @echo l'utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if %ERRORLEVEL% EQU 0 (
    net user Utilisateur /delete
    if %ERRORLEVEL% NEQ 0 (
    @echo La suppression du compte: Utilisateur s'est bien deroulee >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if %ERRORLEVEL% EQU 0 (
    @echo Erreur: Le compte Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    )
    
    
    dir C:\Users\Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    echo Le dossier C:\Users\Utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if %ERRORLEVEL% EQU 0 (
    @rmdir C:\Users\Utilisateur /s /q
    dir C:\Users\Utilisateur
    		if %ERRORLEVEL% EQU 0 (
    			@echo Erreur: le dossier C:\Users\Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    		
    		if %ERRORLEVEL% NEQ 0 (
    			@echo Le dossier C:\Users\Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    			@echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo ***************************************** gestion de l'autologin ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    
    set autoadminlogon=0
    set defaultdomainname=hjgf
    set defaultusername=tesv
    set defaultpassword=qsdd
    
    for /f "tokens=3*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%a" (
    @echo La valeur de la cles de registre AutoAdminLogon est deja de : %%a >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%a" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "%autoadminlogon%" /f
    for /f "tokens=3*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon') do (
    if /i "%autoadminlogon%" EQU "%%b" (
    @echo La valeur: AutoAdminLogon bien modifiee. La valeur de AutoAdminLogon est de: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%autoadminlogon%" NEQ "%%b" (
    @echo Erreur lors de la modification de la valeur: AutoAdminLogon. La valeur de AutoAdminLogon est: %%b >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%c in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%c" (
    @echo La valeur de la cles de registre DefaultDomainName est deja : %%c >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt")
    if /i "%defaultdomainname%" NEQ "%%c" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "%defaultdomainname%" /f
    for /f "tokens=3*" %%d in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName') do (
    if /i "%defaultdomainname%" EQU "%%d" (
    @echo La valeur: DefaultDomainName bien modifiee. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultdomainname%" NEQ "%%d" (
    @echo Erreur lors de la modification de la valeur: DefaultDomainName. La valeur de DefaultDomainName est: %%d >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%e in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%e" (
    @echo La valeur de la cles de registre DefaultUserName est deja : %%e >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%e" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "%defaultusername%" /f
    for /f "tokens=3*" %%f in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') do (
    if /i "%defaultusername%" EQU "%%f" (
    @echo La valeur: DefaultUserName bien modifiee. La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultusername%" NEQ "%%f" (
    @echo Erreur lors de la modification de la valeur: DefaultUserName . La valeur de DefaultUserName est: %%f >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    ))
    
    for /f "tokens=3*" %%g in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%g" (
    @echo La valeur de la cles de registre DefaultUserName est deja : %%g >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" )
    if /i "%defaultpassword%" NEQ "%%g" (
    REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "%defaultpassword%" /f
    for /f "tokens=3*" %%h in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword') do (
    if /i "%defaultpassword%" EQU "%%h" (
    @echo La valeur: DefaultPassword bien modifiee. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ) 
    if /i "%defaultpassword%" NEQ "%%h" (
    @echo Erreur lors de la modification de la valeur: DefaultPassword. La valeur de DefaultPassword est: %%h >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" ))
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    ))
    
    exit

    Donc voila le topo :



    La partie en Rouge: : Je pense que j'ai un souci avec le NEQ. Ce que je recherche à faire c'est qu'importe le retour (négative, positive) dés que le chiffre est différent de 0, il écrit une erreur dans le fichier de log mais apparament, NEQ peut poser des souci car dans certains cas il n'est pas que différent de (opérateur de comparaison); En effet d'après certains site, l'exemple IF %ERRORLEVEL% NEQ 1 peut dire: Si la valeur est = ou supérieur à 1 et dans ce cas si on a un nombre négatif , c'est raté .

  11. #31
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Citation Envoyé par louispeperman Voir le message
    En effet d'après certains site, l'exemple IF %ERRORLEVEL% NEQ 1 peut dire: Si la valeur est = ou supérieur à 1 et dans ce cas si on a un nombre négatif , c'est raté .
    salut,

    Tu confonds ou les sites en question confondent avec if errorlevel x qui vaut effectivement vraie pour toute valeur retournée supérieure ou égale à x, mais c'est complètement différent de if %errorlevel% (opérateur de comparaison) x où errorlevel est étendu et comparé à x.

  12. #32
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    je dois confondre je pense . Bah alors ma théorie s’effondre. Je comprend pas pourquoi je n'arrive pas à imbriquer des IF %ERRORLEVEL%.

    Mon code à quelques peu changé :

    En effet, pour la partie en rouge, j'utilise finalement que la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Net user Utilisateur /delete
    IF %ERRORLEVEL% NEQ 0 ( 
    ECHO Erreur lors de la suppression du fichier >> C:\Users\%USERNAME%\Desktop\rapport.txt
    )
    IF %ERRORLEVEL% EQU 0 (
    ECHO Le fichier est  bien supprimé >> C:\Users\%USERNAME%\Desktop\rapport.txt
    )

    Sachant que la commande Net user Utilisateur /delete retourne 0 si réussite et 2 si pas les droits de suppression ou erreur ou inexistence du compte Utilisateur.

    Sachant que ce bout de code est imbriqué avec un IF %ERRORLEVEL% pour être exacte dans le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    REM Utilisateur de NET USER pour retourner une Erreur si le compte n'existe pas. Ainsi on peut tester l’existence du compte (retourne deux valeurs 0 ou 2 il me semble)
    net user Utilisateur
    REM Si l'erreur retourné est différent de 0
    IF %ERRORLEVEL% NEQ 0 (
    Echo L'utilisateur n'existe pas >> C:\Users\%USERNAME%\Desktop\rapport.txt
    )
    REM Si il n'y a pas d'erreur alors on supprime le compte Utilisateur (
    
    REM j'ai mis en rouge le bout de code du dessus 
    
    REM En vert, ce sont les bordures extérieurs) 
    
    IF ERRORLEVEL EQU 0 (
    Net user Utilisateur /delete
    REM Si la commande net user Utilisateur /delete retourne un valeur autre que 0 => C'est qu'il y a une erreur
    IF %ERRORLEVEL% NEQ 0 ( 
    ECHO Erreur lors de la suppression du fichier >> C:\Users\%USERNAME%\Desktop\rapport.txt
    )
    REM Sinon,la commande net user Utilisateur /delete retourne 0 alors => Pas d'erreur
    IF %ERRORLEVEL% EQU 0 (
    ECHO L'utilisateur est  bien supprimé >> C:\Users\%USERNAME%\Desktop\rapport.txt
    )
    )
    
    exit

    Le souci c'est que dans le cas ou je suis sur le compte Administrateur (avec les pouvoirs suffisant pour supprimer l'utilisateur), il me retourne la deuxième partie du code (donc l'erreur de suppression du fichier) tandis que quand je suis sur un compte n'ayant pas les pouvoir il me sort qu'il l'a bien supprimé (la 1er partie du code).

    Je pense que le sens du code est bon nan? (je met d’abord la valeur susceptible d'être plus grande puis la valeur ou elle est égale à 0)

  13. #33
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    fait un test dans les deux condition avec simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    net user utilisateur /delete
    echo %errorlevel%
    et relève la valeur du errorlevel.

    Edit:

    Ah ben non, même pas, je vois que tu as une imbrication... c'est pour ça que ça pose problème, il faut activer les expansions de variable (voir setlocal /?) ou revoir la structure de ton script...

  14. #34
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    je l'ai fais dans mes scripts d'entre deux (car je test par bout de code avant de l'intégrer ou non au code de base) et il me retourne soit 0 soit 2. (il fonctionne très bien mais en faite, c'est à partir du moment ou j'intégre l'imbrication que ça foire => je suis passé par des goto pour éviter l'imbrication et là plus de souci mais ce n'est pas un méthode "propre". J'ai même essayé de passer par un Net user Utilisateur mais il me retourne toujours 0 peut importe si le compte existe ou non )

    Bah je vois pas comment je peux reformer mon code pour ne pas avoir cette imbrication (c'est je pense un passage obligé sauf si tu trouves un moyen de faire) et pour l'instant, ce passage me pose de très gros souci car pas fiable du tout.


    Comment tu proposes de utiliser l’extension?

  15. #35
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    tu peux faire par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set "rapport=C:\Users\%USERNAME%\Desktop\rapport.txt"
    net user utilisateur
    if errorlevel 1 echo L'utilisateur n'existe pas>>"%rapport%"& goto :eof
    Net user utilisateur /delete
    if errorlevel 1 echo Erreur lors de la suppression du fichier>> "%rapport%"& goto :eof
    echo L'utilisateur est bien supprimé>>"%rapport%"
    goto :eof
    goto :eof pour arrêter le traitement et retourner à la ligne de code appelante (ou le script appelant)
    if errorlevel 1 peut être remplacé par if not "%errorlevel%"=="0" ou if %errorlevel% neq 0

  16. #36
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Quand je rajoute setlocal enableExtensions enableDelayedExpansion et endlocal comme tu me l'as suggérer au un poste ou deux au dessus ça m'a l'air de fonctionner. (en rouge dans le code)


    Voila ce que ça donne en gros:

    J'aimerai votre avis sur la place des deux commandes. Est-ce que je dois les laisser à l'extérieur du 1er IF %ERRORLEVEL% (comme il est actuellement en rouge) ou je dois appliquer au IF %ERRORLEVEL% en vert dans le code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    
    @echo ***************************************** gestion utilisateur ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    net user Administrateur /active:yes
    IF %ERRORLEVEL% EQU 0 (
    CLS
    @echo Le compte Administrateur Local est bien actif >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec : activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    setlocal enableExtensions enableDelayedExpansion
    net user Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    @echo l'utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if %ERRORLEVEL% EQU 0 (
    RM je l'aurais mis ici sinon 
    net user Utilisateur /delete
    if !ERRORLEVEL! NEQ 0 (
    @echo Erreur: Le compte Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if !ERRORLEVEL! EQU 0 (
    @echo Le compte Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    )
    endlocal
    
    
    setlocal enableExtensions enableDelayedExpansion
    @dir C:\Users\Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    echo Le dossier C:\Users\Utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %ERRORLEVEL% EQU 0 (
    RM je l'aurais mis ici sinon 
    @rmdir C:\Users\Utilisateur /s /q
    dir C:\Users\Utilisateur
    if !ERRORLEVEL! EQU 0 (
    @echo Erreur: le dossier C:\Users\Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if !ERRORLEVEL! NEQ 0 (
    @echo Le dossier C:\Users\Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    )
    endlocal
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"


    j'aimerai tout de fois comprendre ce qui posait problème. En faite, mettre des ! ! au lieu de % % ça change quoi concrètement ?

    Sommes-nous obligé de mettre setlocal enableExtensions enableDelayedExpansion avant de mettre les ! ! puis les endlocal ?


    J'utilise http://www.developpez.net/forums/d80...wto-variables/ mais y'a des choses que je comprend pas.


    Par exemple l'histoire des ERV dans Référencer une variable "textuellement", Substitution/Suppression de valeur , structure imbriquée: dans Portée des variables (ça sert à quoi ) ou encore Créer des variables dynamiquement

  17. #37
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Y'a un poste qui traite en profondeur la question, faudrait le retrouver...
    Sinon en simplifiant, quand tu as une variable "%var%" dans tout ce qui peut s'apparenter à un bloc d'instructions, elle est déjà traduite, et développer (expandue mais en bon français en dirait étendue) à sa valeur réelle, comme si tu l'avais écrite telle quelle, et ce avant que le bloc ne soit exécuté. Le fait de retarder l'expansion avec enabledelayedexpansion, ça empêche cet état de fait en développant la variable au dernier moment, et pour ce faire, il faut utiliser la syntaxe !var! au lieu de %var%. Voilà, et c'est le problème que tu rencontrais avec %errorlevel% dont le développement pouvait correspondre non pas à la dernière commande exécutée, mais à une autre plus en amont, au quel cas tu avais la solution de enabledelayedexpansion ou de la syntaxe if errorlevel x dans le cadre de tes imbrications.

    enableextensions, dans une config standard, est activé par défaut
    donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    setlocal enabledelayedexpansion
    !!
    endlocal
    suffit

  18. #38
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    ok merci pour l'explication, c'est plus clair déjà . Je préfère quand même comprendre ce que je fais :=) .


    j'ai mis un lien au dessus (j'étais en train de le modifié quand tu as posté entre deux ), ça serait pas ça le sujet qui traite de ça en profondeur ?



    voila j'ai mis qu'un seul SET LOCAL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    
    
    @echo ***************************************** gestion utilisateur ***************************************** >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    net user Administrateur /active:yes
    IF %ERRORLEVEL% EQU 0 (
    CLS
    @echo Le compte Administrateur Local est bien actif >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    IF %ERRORLEVEL% NEQ 0 (
    CLS
    @echo Echec : activation du compte Administrateur Local >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    
    setlocal enableExtensions enableDelayedExpansion
    net user Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    @echo l'utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if %ERRORLEVEL% EQU 0 (
    RM je l'aurais mis ici sinon 
    net user Utilisateur /delete
    if !ERRORLEVEL! NEQ 0 (
    @echo Erreur: Le compte Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if !ERRORLEVEL! EQU 0 (
    @echo Le compte Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    )
    
    
    @dir C:\Users\Utilisateur
    if %ERRORLEVEL% NEQ 0 (
    echo Le dossier C:\Users\Utilisateur n'existe pas >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    )
    if %ERRORLEVEL% EQU 0 (
    RM je l'aurais mis ici sinon 
    @rmdir C:\Users\Utilisateur /s /q
    dir C:\Users\Utilisateur
    if !ERRORLEVEL! EQU 0 (
    @echo Erreur: le dossier C:\Users\Utilisateur n'a pas ete supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    if !ERRORLEVEL! NEQ 0 (
    @echo Le dossier C:\Users\Utilisateur est bien supprime >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt" 
    )
    )
    endlocal
    
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"
    @echo. >> "D:\log##%computername%\scriptserv_%computername%##%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.txt"

  19. #39
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Non, c'est juste un message en réponse à un autre et il ne parle que de l'expansion retardée des variables et du fonctionnement de l'interpréteur, avec des exemples et tout. De mémoire, c'est un bonjour, le message en question (conséquent), et un merci...

  20. #40
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 56
    Par défaut
    Ok. Bon bah moi je continue l'évolution du script (enfin là il est presque terminé ). Je vais demandé à microsoft si il existe un moyen de vérifié sur un Windows est actif (par la voie du batch) et rajouter une modification d'attribut sur le dossier C:\utilisateur car cela peut poser des souci pour le supprimé (surtout la lecture seule) (si j'y arrive car c'est toujours ennuyant les fichiers dans C:\Users à modifier)

Discussions similaires

  1. [Core] Problème avec un batch
    Par grus1 dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/06/2012, 12h19
  2. Problème de syntaxe batch sql
    Par julienw91 dans le forum Administration
    Réponses: 1
    Dernier message: 21/04/2011, 04h58
  3. [Batch] Problème avec Spring Batch
    Par meriem15 dans le forum Spring
    Réponses: 6
    Dernier message: 16/12/2009, 17h41
  4. problème avec un batch file
    Par samus535 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 29/02/2008, 18h23
  5. problème de scripts batch
    Par Jérémy Lefevre dans le forum Windows XP
    Réponses: 7
    Dernier message: 27/04/2007, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo