Dans le cadre d'un petit projet, j'ai moi-même créé un fchier "script.bat" permettant de créer des groupes, des utilisateurs et les dossiers de ces groupes et de ces utilisateurs (ainsi qu'un dossier commun) sur un serveur Windows 2000. Mon batch fait ainsi appel à deux fichiers texte que sont "util.txt" avec les info concernant les utilisateurs et "grp.txt" pour les groupes.
Mes soucis sont les suivants : d'une part je souhaiterai que mon "script.bat" ne fassent appel qu'à un seul fichier texte et non deux. D'autre part les valeurs de certaines variables doivent être directement modifiées dans le "script.bat", ce qui ne paraît pas être la meilleur solution : je souhaiterai que ces valeurs puissent être inscrites dans le m^me fichier texte qui regrouperait les info pour les users et les groupes.
Pour être plus clair, voici les fichiers en question dans les posts suivants.. Merci d'avance pour l'aide apportée et dédicace à Gaby52 qui à l'air de s'y connaître n minimum en batch (puisque répondant à ces propres questions )
Rectification : il sagit de Gaby59 Voici donc mes fichiers :
script.bat : cls
@echo off
rem declaration des variables
rem entrer le nom du serveur de domaine
set serveur=nom_srv
rem entrer le nom du domaine existant
set domaine=nom_domaine
rem entrer la lettre du lecteur ou seront creer les dossiers de type c ou d etc
set lecteur=lettre_lecteur
rem boucle pour ajout des groupes et ajout des groupes
for /F "tokens=1" %%I in (grp.txt) do (
net localgroup /add %%I /domain /comment:"Groupe %%I"
rem creation des dossiers des groupes avec partage et droits md %lecteur%:\%%I
net share %%I$=%lecteur%:\%%I /remark:"Repertoire du groupe %%I"
echo o|cacls %lecteur%:\%%I /t /g administrateur:F %%I:R
rem boucle pour ajout des utilisateurs
for /F "tokens=1,2,3,4* delims=," %%J in (util.txt) do (
if %%I==%%M (
rem creation des utilisateurs
net user %%J %%L /domain /add /comment:"Utilisateur %%J" /expires:never /fullname:"%%K" /passwordchg:no /scriptpath:%%J.bat
rem création des dossier utilisateurs avec droits
md %lecteur%:\%%I\%%J
echo o|cacls %lecteur%:\%%I\%%J /t /g administrateur:F %%J:C
rem ajout des utilisateurs dans les groupes
net localgroup %%I /add %%J
rem edition du script d ouverture de session
echo net use m: \\%serveur%\%%I$ > c:\winnt\sysvol\sysvol\%domaine%\scripts\%%J.bat
echo net use n: \\%serveur%\Commun$ >> c:\winnt\sysvol\sysvol\%domaine%\scripts\%%J.bat
)
rem fin if
)
rem fin boucle pour ajout des utilsateurs
)
rem fin boucle pour ajout des groupes
rem creation du dossier commun
md %lecteur%:\Commun
net share Commun$=%lecteur%:\Commun
rem ajouts des droits pour l administarteur et les groupes sur le dossier commun
echo o|cacls %lecteur%:\Commun /t /g administrateur:F
for /F "tokens=1" %%I in (grp.txt) do (
echo o|cacls %lecteur%:\Commun /e /g %%I:R
)
rem fin boucle pour ajout des droits sur dossier commun
J'ai comme l'impression que mon post n'intéresse pas grand monde... Je vais cependant vous faire part de mes avancées :
Je souhaiterais au final me retrouver avec un fichier texte unique du type :
Et cela à partir d'un fichier texte comme celui-ci :
var.txt :
srv_admin,ADMIN_CFA,C
Ainsi mon seul et unique problème réside dans le fait que je ne sait toujours pas comment spécfier des conditions de début et de fin pour mes boucles "for", afin que celle-ci ne lisent et ne prennet en compte que les champs dont elles ont besoin.
Je reste donc à l'écoute de toute aide pouvant m'être donnée