Script batch Ajouter Utilisateur fichier Exel [Fermé]

Signaler
Messages postés
9
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
14 septembre 2012
-
Bonjour, j'explique en gros le sujet. Le but est d'ajouter des utilisateurs et des groupes dans un Active Directory à Partir d'un tableau créé par exemple dans Exel avec un script Batch (MS-DOS).

J'ai eu beau retourner Google, pas moyen de trouver un script compréhensible et explicite, alors j'ai fais allez le peu de neurones ce trouvant dans ma petite tête d'étudiant.
Donc ayant trouvé cette solution, je la partage avec Vous !

Methode:
Le Ms-Dos ne peut pas lire le contenu d'un fichier exel donc il faut pour commencer convertir ce fichier en .csv avec délimiteur de champs par des "," (virgules). Rien de compliqué, il suffit juste d'enregistrer le tableau en .csv au lieu de l'extension par défaut et de ce laisser guider.

Votre tableau en version .csv devrait ressembler à ceci:
Nourry,Zoe,CLIENT,Responsable du service client
Ruiz,Marie,CLIENT,Assistant
Bourg,Jean-François,DEVELOPPEMENT,Programmeur


Voici le Script :

@echo off

rem variable pour limiter la longueur de la commande dsadd..
set mdp=-pwd Jumper11 -mustchpwd yes
set rep=-hmdrv C: -hmdir \\xeno\users\
	
FOR /f "tokens=1-4 delims=," %%i in (c:\data.csv) do (

	rem creation des groupes
	echo groupe %%k
	dsadd group "CN=%%k,ou=silgemArras,DC=dalton,DC=fr"
	rem repertoire commun du groupe
	mkdir c:\partage\%%k
	rem partage du dossier du groupe sur le reseau.
	net share %%k=c:\partage\%%k /remark:"service %%k"
	
	rem droit du repertoire du groupe
	rem retire le droit à tout les utilisateurs
	cacls c:\partage\%%k /E /T /R Utilisateurs 
	rem autorise administrateur un accé total
	cacls c:\partage\%%k /E /T /G Administrateur:F
	rem autorise utilisateur du groupe à lecture/ecriture
	cacls c:\partage\%%k /E /T /G %%k:C

	rem creation des utilisateurs
	echo %%i %%j %%k %%l
	rem creation repertoire perso
	mkdir c:\partage\users\%%j.%%i
	rem creation de l'utilisateur

	dsadd user "CN=%%j.%%i,ou=silgemArras,DC=dalton,DC=fr" -fn %%j -ln %%i %mdp% -desc "%%l" -memberof "cn=%%k,ou=silgemArras,DC=dalton,DC=fr" %rep%%%j.%%i

	rem Edition des droits du repertoire de l'utilisateur
	cacls \\xeno\users\%%j.%%i /E /T /R Utilisateurs 
	cacls \\xeno\users\%%j.%%i /E /T /G Administrateur:F
	cacls \\xeno\users\%%j.%%i /E /T /G %%j.%%i:C
)


Les deux lignes "dsadd et -desc" sont bien sur à mettre à la suite l'une de l'autre.

Explication:

Le FOR sort la liste complète du fichier date.csv ligne par ligne

Tokens: 1-4 car on veut lire la 1ere jusqu'à la 4e colonne Ce paramètre indique que la variable %%i prendra la valeur de la premiére colonne de la premiére ligne du fichier c:\data.txt. donc %%j prendra la 2e colonne qui est le prenom, %%k la 3e qui est le groupe et %%l la description.

Delims: Ce paramètre indique que le délimiteur de champs est la virgule, ce séparateur démilite en faite les colonnes du fichier c:\data.txt.

Pour la commande dsadd qui peut étre compliqué a comprendre je vous invite à aller découvrir ce super PDF qui m'a beaucoup aidé !
http://pedagogie.ac-montpellier.fr/form/reseau/admin_reseau_niveau2/comptes/dsadd_user.pdf

Voilà Jespère que celà Vous aidera !