[Batch] Gestion des utilisateurs

Résolu/Fermé
Sandyc008 Messages postés 10 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 29 mai 2010 - 20 févr. 2010 à 22:49
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 févr. 2010 à 09:43
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
A voir également:

8 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 févr. 2010 à 10:55
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2010 à 22:54
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
Sandyc008 Messages postés 10 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 29 mai 2010
20 févr. 2010 à 23:05
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
20 févr. 2010 à 23:27
Re,

Quel système d'exploitation?
Quel langage ?
Tu peux coller ici le code de ton programme pour voir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sandyc008 Messages postés 10 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 29 mai 2010
20 févr. 2010 à 23:36
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
Sandyc008 Messages postés 10 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 29 mai 2010
21 févr. 2010 à 00:12
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 févr. 2010 à 15:28
Salut,

Alors, ton examen c'est bien passé?!
0
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
28 févr. 2010 à 09:43
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