[Batch] Gestion des utilisateurs

Résolu
Sandyc008 Messages postés 11 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
j'ai enclenché le mode panique j'ai mon oral d'info mercredi et mon petit programme (donné par le prof et que je ne comprend pas dans sa totalité je dois connaître chaque lignes et chaque fonction!!!) ne fonctionne pas!!!! j'ai créé tous les fichiers et au moment de l'exécution, l'erreur système 5 apparait et me met acces refuse!!! j'ai tout essayée je suis completement perdue et j'ai peur de me planter mes partiels!!!!!!

au secour!!!!!!

merci d'avance à tous ceux qui m'aideront
Sandy
Configuration: Windows 7 / Internet Explorer 8.0

8 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    j'ai renommé mon fichier texte en mettant txt à la fin et mon fichier principal ne met plus d'erreur 5
    Ce n'était pas une bonne idée, puisque maintenant ton fichier doit s'appeler util.txt.txt, même si tu ne le vois pas comme ça dans ton explorateur.

    J'ai vu aussi dans le script pour suppression

    localgroup%%k que j'ai modifié en localgroup %%k (donc un espace après localgroup)
    net localgroupe j'ai mis localgroup (donc j'ai enlevé le e à la fin)

    Je ne connais pas Windows 7, mais sous XP il y a une option dans Explorateur Windows/Menu Outils/Sous Menu Options des dossiers... et dans l'onglet Affichage tu as une case à cocher Masquer les extensions des fichiers dont le type est connu
    Si on décoche la case, alors l'extension sera affichée et tu verras la raison pour laquelle tu as l'erreur "que le fichier n'existe pas!"

    Note: Si l'extension n'est pas affichée, donc si l'option pour masquer les extensions est cochée, alors si on renomme un fichier en ajoutant soit disant une extension .txt en fait ça ne sera pas une extension mais ça fera partie de la partie de nom à gauche de l'extension, qui existe toujours mais caché par la configuration de l'explorateur (je parle pour XP)

    Voici un bref ce que donne mes tests concernant tes scripts.
    Je vais exécuter les scripts en ligne de commande, mais tu peux aussi faire un double clic sur les fichiers .bat si tu veux mais en ce cas après le message Appuyez sur une touche pour continuer..., la fenêtre se fermera.
    J'ai aussi supprimé @echo off et cls pour voir le commandes et ne pas perdre le résultat affiché

    1. Création des fichiers

    J'ai crée un répertoire scripts dans C: et j'ai décoché la case pour que l'extension soit affichée pour les fichiers.
    Dans le répertoire C:\scripts j'ai créer les 4 fichiers que je l'ai nommé
    affiche.bat
    creation.bat
    suppression.bat
    util.txt

    Voici un aperçu de ce que j'ai dans C:\scripts https://www.cjoint.com/?cwkrTb2mZC
    Et voici la même chose plus le contenu des scripts, mais cette fois j'ai utilisé l'invité de commande pour afficher.
    La commande dir affiche le contenu du répertoire
    La commande type nomdefichier permet d'afficher le contenu de fichier

    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\Documents and Settings\lami>cd \
    
    C:\>cd scripts
    
    C:\scripts>dir
     Le volume dans le lecteur C n'a pas de nom.
     Le numéro de série du volume est D4FC-A2B9
    
     Répertoire de C:\scripts
    
    22/02/2010  10:14    <REP>          .
    22/02/2010  10:14    <REP>          ..
    22/02/2010  10:22               181 affiche.bat
    22/02/2010  10:22               308 creation.bat
    22/02/2010  10:22               237 suppression.bat
    22/02/2010  09:56                52 util.txt
                   4 fichier(s)              778 octets
                   2 Rép(s)     560 578 560 octets libres
    
    C:\scripts>type affiche.bat
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    echo utilisateur:%%i
    echo mot de passe:%%j
    echo groupe:%%k
    echo -------------------------------
    )
    pause
    C:\scripts>type creation.bat
    if not exist c:\scripts\util.txt goto erorpasdefichier
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    net user %%i %%j /add
    net localgroup %%k /add
    net localgroup %%k %%i /add
    )
    goto fin
    :erorpasdefichier
    echo creation impossible le fichier util.txt introuvable!
    :fin
    pause
    C:\scripts>type suppression.bat
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt)do (
    net localgroup %%k %%i /delete
    net user %%i /delete
    )
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    net localgroup %%k /delete
    )
    pause
    C:\scripts>type util.txt
    fanny,f1a2nnyFN,secretaire
    eric,e1r2icER,production
    C:\scripts>


    On va passer à l'exécution.
    A savoir que j'ai supprimé cls donc les résultats antérieures resteront afficher, ce qui te permettra d'avoir une image plus claire de ce qui se passe. Je mettrai en gras le script courant qui a été exécuté.

    Attention! Chaque script n'est exécuté qu'une seule fois, donc que la commande en gras. Le reste ce n'est que l'historique de ce qu'on a déjà fait, et c'est puisque j'ai supprimé cls de ton script.

    2. Exécution de script affiche.bat
    C:\scripts>affiche.bat
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    echo utilisateur:%i
     echo mot de passe:%j
     echo groupe:%k
     echo -------------------------------
    )
    
    C:\scripts>(
    echo utilisateur:fanny
     echo mot de passe:f1a2nnyFN
     echo groupe:secretaire
     echo -------------------------------
    )
    utilisateur:fanny
    mot de passe:f1a2nnyFN
    groupe:secretaire
    -------------------------------
    
    C:\scripts>(
    echo utilisateur:eric
     echo mot de passe:e1r2icER
     echo groupe:production
     echo -------------------------------
    )
    utilisateur:eric
    mot de passe:e1r2icER
    groupe:production
    -------------------------------
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>


    3. Exécution de script creation.bat
    C:\scripts>affiche.bat
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    echo utilisateur:%i
     echo mot de passe:%j
     echo groupe:%k
     echo -------------------------------
    )
    
    C:\scripts>(
    echo utilisateur:fanny
     echo mot de passe:f1a2nnyFN
     echo groupe:secretaire
     echo -------------------------------
    )
    utilisateur:fanny
    mot de passe:f1a2nnyFN
    groupe:secretaire
    -------------------------------
    
    C:\scripts>(
    echo utilisateur:eric
     echo mot de passe:e1r2icER
     echo groupe:production
     echo -------------------------------
    )
    utilisateur:eric
    mot de passe:e1r2icER
    groupe:production
    -------------------------------
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>creation.bat
    
    C:\scripts>if not exist c:\scripts\util.txt goto erorpasdefichier
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    net user %i %j /add
     net localgroup %k /add
     net localgroup %k %i /add
    )
    
    C:\scripts>(
    net user fanny f1a2nnyFN /add
     net localgroup secretaire /add
     net localgroup secretaire fanny /add
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>(
    net user eric e1r2icER /add
     net localgroup production /add
     net localgroup production eric /add
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>goto fin
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>

    Et voici ce qu'on a après avoir exécuter creation.bat
    Les groupes sont crées https://www.cjoint.com/?cwkKcwDC81
    Les utilisateurs sont crées https://www.cjoint.com/?cwkMfSPleQ

    4. Exécution de suppression.bat
    C:\scripts>affiche.bat
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    echo utilisateur:%i
     echo mot de passe:%j
     echo groupe:%k
     echo -------------------------------
    )
    
    C:\scripts>(
    echo utilisateur:fanny
     echo mot de passe:f1a2nnyFN
     echo groupe:secretaire
     echo -------------------------------
    )
    utilisateur:fanny
    mot de passe:f1a2nnyFN
    groupe:secretaire
    -------------------------------
    
    C:\scripts>(
    echo utilisateur:eric
     echo mot de passe:e1r2icER
     echo groupe:production
     echo -------------------------------
    )
    utilisateur:eric
    mot de passe:e1r2icER
    groupe:production
    -------------------------------
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>creation.bat
    
    C:\scripts>if not exist c:\scripts\util.txt goto erorpasdefichier
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    net user %i %j /add
     net localgroup %k /add
     net localgroup %k %i /add
    )
    
    C:\scripts>(
    net user fanny f1a2nnyFN /add
     net localgroup secretaire /add
     net localgroup secretaire fanny /add
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>(
    net user eric e1r2icER /add
     net localgroup production /add
     net localgroup production eric /add
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>goto fin
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>suppression.bat
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (
    net localgroup %k %i /delete
     net user %i /delete
    )
    
    C:\scripts>(
    net localgroup secretaire fanny /delete
     net user fanny /delete
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>(
    net localgroup production eric /delete
     net user eric /delete
    )
    La commande s'est terminée correctement.
    
    La commande s'est terminée correctement.
    
    
    C:\scripts>for /F "eol=; tokens=1,2,3 delims=," %i in (c:\scripts\util.txt) do (net localgroup %k /delete )
    
    C:\scripts>(net localgroup secretaire /delete )
    La commande s'est terminée correctement.
    
    
    C:\scripts>(net localgroup production /delete )
    La commande s'est terminée correctement.
    
    
    C:\scripts>pause
    Appuyez sur une touche pour continuer...
    
    C:\scripts>

    Une vérification pour voir si les groupes et les utilisateurs ont été supprimés, et on voit bien que c'est le cas
    https://www.cjoint.com/?cwkQAk5WUD
    https://www.cjoint.com/?cwkQ6UVByj

    Je te conseille de tester les scripts un par un dans l'ordre que je l'ai fait. Pas la peine de créer si l'affichage n'est pas correcte, pas la peine de supprimer si la création ne se passe pas correctement.

    P.S. Tu penses que j'ai au moins une chance de passer l'examen ?!
    1
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Je pense que tu dois donner un peu plus de détails.
    Le travail ne sera pas fait à ta place, en revanche tu pourras trouver des conseils qui te seront utiles pour mercredi.
    0
  3. Sandyc008 Messages postés 11 Statut Membre
     
    en fait j'ai 4 fichiers: 1 qui contient le nom le mot de passe et le groupe des deux utilisateurs à créer (ça c un fichier texte)
    1 autre qui doit afficher les 2 utilisateurs avec leur mot de passe et leur groupe echo...
    le troisième qui sert à supprimer les utilisateurs
    et un dernier qui doit creer les utilisateurs et leur goupe

    mon gros prob est que quand je fais exécuter sur le fichier principal et bien il me met acces refusé erreur 5

    ça doit être super simple mais je suis perdue!!!!!

    merci de votre réponse c adorable

    sandy
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Quel système d'exploitation?
    Quel langage ?
    Tu peux coller ici le code de ton programme pour voir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sandyc008 Messages postés 11 Statut Membre
     
    je l'ai fait sur serveur 2003 mais à la maison je suis sur 7

    voici le fichier principal celui qui me met l'erreur 5

    @echo off
    cls
    if not exist c:\scripts\util.txt goto erorpasdefichier
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    net user %%i %%j /add
    net localgroup %%k /add
    net localgroup %%k %%i /add
    )
    goto fin
    :erorpasdefichier
    echo creation impossible le fichier util.txt introuvable!
    :fin
    pause

    celui là marche bien il affiche c'est tt
    @echo off
    cls
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    echo utilisateur:%%i
    echo mot de passe:%%j
    echo groupe:%%k
    echo -------------------------------
    )
    pause

    celui là supprime tt
    echo off
    cls
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt)do (
    net localgroup%%k %%i /delete
    net user %%i /delete
    )
    for /f "eol=; tokens=1,2,3 delims=," %%i in (c:\scripts\util.txt) do (
    net localgroupe %%k /delete
    )
    pause

    et ça c'est le fichier texte:
    fanny,f1a2nnyFN,secretaire
    eric,e1r2icER,production

    je viens de tt retapper et il ne trouve pas mon fichier txt alors que je l'ai placé à l'instant dans scrits sur C:
    merci pour ton aide
    0
  7. Sandyc008 Messages postés 11 Statut Membre
     
    j'avance un peu mais je n'arrive pas à comprendre

    j'ai renommé mon fichier texte en mettant txt à la fin et mon fichier principal ne met plus d'erreur 5 mais me met que le fichier n'existe pas! par contre quand j'exécute le fichier qui sert à afficher les utilisateurs et leur mot de passe il ne fonctionne plus il met que le système ne peut trouver le fichier!!!!!!

    le prob vient de mon txt mais que faire???
    0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Alors, ton examen c'est bien passé?!
    0
    1. sandyc008
       
      Je tenais à vous remmercier concernant l'aide que vous m'avez apporté, je m'en suis très bien sortie car j'ai eu 16/20 donc je suis très contente!! pour un premier partiel je m'en tire très bien et c'est en partie gràce à votre aide!
      un grand merci de m'avoir écouté et aidé !!!!!! je regrette de n'être qu'une débutante et de ne pouvoir vous aider à mon tour !!!

      Sandy
      0
  9. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    car j'ai eu 16/20 donc je suis très contente!!
    Je suis content pour toi.

    pour un premier partiel je m'en tire très bien et c'est en partie gràce à votre aide!
    Le mérite t'appartient.

    je regrette de n'être qu'une débutante et de ne pouvoir vous aider à mon tour !!!
    On est tou(te)s débutant(e)s, et ne te fais pas de soucis, tu auras le temps d'aider d'autres personnes si tu le voudras.

    Bonne continuation ;-)
    0