Script Batch permettant la création d’utilisateur dans Active Directory

2 Juil

Afin de limiter les erreurs de saisie lors de la création d’un utilisateur au sein d’un contrôleur de domaine (surtout dans le cadre de délégation de contrôle), on peut utiliser un script Batch interactif.

Le domaine skynet.t2si dans lequel l’utilisateur sera créé est le suivant  :

Script_1

Pour comprendre le script, nous allons le décomposer.

@echo off
Rem la commande "ECHO(" permet de sauter une ligne dans l'invite de commande
ECHO(
ECHO(
ECHO ##################################################
ECHO ## Ajout d un Nouvel utilisateur - Informations ##
ECHO ################################################## 
ECHO(
ECHO(

:renseignements
Rem La commande SET /P nom_de_la_variable="Entrez une valeur" permet de définir et de stocker une variable saisie par l'utilisateur 
Rem Pour que l'invite de commande puisse lire les accents comme "é", on utilise la table ASCII (Alt+0130 pour le é, representé par "," dann le script)
SET /p prenom=Prenom de l'utilisateur ?
SET /p nom=Nom de l'utilisateur ?
SET /p numtel=Indiquez le num‚ro de t‚l‚phone personnel 

ECHO Merci de v‚rifier votre saisie :
ECHO L'utilisateur cr‚‚ : %prenom% %nom%
ECHO Num‚ro de t‚l‚phone : %numtel%
ECHO(
ECHO(
CHOICE /M "Merci de confirmer les coordonn‚es de l'utilisateur"
IF %ERRORLEVEL%==1 Goto start
IF %ERRORLEVEL%==2 Goto renseignements
Rem la commande CHOICE /M invite l'utilisateur à sélectionner un élément dans une liste de choix d'un seul caractère. Si utilisé sans paramètres, choice affiche les choix par défaut, Y et N
Rem Si il y a une erreur de saisie, la commande GOTO renvoi à :renseignements

script_2

:start
ECHO Quelle est le site de travail ?
cHOICE /C CMS /M "Selectionner C pour Colmar,M pour Mulhouse et S pour Strasbourg"
IF %ERRORLEVEL%==1 set site=Colmar
IF %ERRORLEVEL%==2 set site=Mulhouse
IF %ERRORLEVEL%==3 set site=Strasbourg

ECHO Dans quel service l'utilisateur est int‚gr‚ ?
CHOICE /C CDSB /M "Selectionner C pour Compta, D pour Direction, S pour Stock et B pour Boutique"
IF %ERRORLEVEL%==1 set Service=Compta
IF %ERRORLEVEL%==2 set Service=Direction
IF %ERRORLEVEL%==3 set Service=Stock
IF %ERRORLEVEL%==4 set Service=Boutique

Rem Exemple d'une erreur de saisie, en effet l'UO User_Direction_Colmar n'existe pas
Rem Afin de pouvoir recommencer la sélection on utilise également la commande GOTO qui renvoi à :start
script_3
Rem Exemple dans le cas d'une saisie correct

script_4
ECHO(
ECHO(
ECHO ##############################################
ECHO ## Ajout d'un nouvel utilisateur - Cr‚ation ##
ECHO ##############################################
ECHO(
ECHO(
Rem La commande DSADD User permet de créer un utilisateur dans une UO donnée
dsadd user cn=%prenom%.%nom%,ou=user_%service%_%site%,ou=%service%_%site%,ou=site-%site%,ou=entreprise,dc=skynet,dc=t2si -samid %prenom%.%nom% -email %nom%.%prenom%@skynet.t2si -mobile "%numtel%" -pwd Passw0rd -Mustchpwd yes -pwdneverexpires yes -disabled no >NUL 2>&1
IF %ERRORLEVEL%==0 ECHO Cr‚ation reussie
IF %ERRORLEVEL% LSS 0 (ECHO Cr‚ation manqu‚e, erreur sur le site ou service) & GOTO start
IF %ERRORLEVEL% GTR 0 (ECHO Cr‚ation manqu‚e, erreur sur le site ou service) & GOTO start
Rem La commande DSMOD User permet de modifier un utilisateur créé (ici, on rajoute le chemin du profil itinérant
IF %Service%==Compta dsmod user cn=%prenom%.%nom%,ou=user_%service%_%site%,ou=%service%_%site%,ou=site-%site%,ou=entreprise,dc=skynet,dc=t2si -profile \\PDC-Fabien.skynet.t2si\Profil$\%site%\%service%\%prenom%.%nom%
IF %Service%==Boutique dsmod user cn=%prenom%.%nom%,ou=user_%service%_%site%,ou=%service%_%site%,ou=site-%site%,ou=entreprise,dc=skynet,dc=t2si -profile \\PDC-Fabien.skynet.t2si\Profil$\%site%\%service%\%prenom%.%nom%
ECHO(
ECHO(
ECHO #################################################
ECHO ## Cr‚ation d'un dossier du compte utilisateur ##
ECHO #################################################
ECHO(
ECHO(
Rem Création avec la commande MKDIR d'un dossier partagé portant le nom de l'utilisateur.
MKDIR \\PDC-Fabien.skynet.t2si\Documents\%service%\%site%\%prenom%.%nom%
Rem La commande ATTRIB +H permet de définir l'attribut Fichier ou Répertoire caché. 
ATTRIB +H \\PDC-Fabien.skynet.t2si\Documents\%service%\%site%\%prenom%.%nom%
IF %ERRORLEVEL%==0 ECHO Cr‚ation reussie
IF %ERRORLEVEL% NEQ 0 ECHO Cr‚ation ‚chou‚e

script_5

script_6

ECHO(
ECHO(
ECHO ########################################
ECHO ## Modification des droits du dossier ##
ECHO ########################################
ECHO(
ECHO(
Rem La commande ICACLS permet de consulter et de modifier les permissions d'un fichier (/inheritance:d désactive l'héritage et copie les ACE, /remove:g supprime toutes les occurences de droits accordés au SID désigné)
ICACLS \\PDC-Fabien.skynet.t2si\Documents\%service%\%site%\%prenom%.%nom% /inheritance:d
ICACLS \\PDC-Fabien.skynet.t2si\Documents\%service%\%site%\%prenom%.%nom% /remove:g utilisateurs
ECHO(
ECHO(
IF %ERRORLEVEL%==0 ECHO Modification reussie
IF %ERRORLEVEL% NEQ 0 ECHO Modification ‚chou‚e
script_7

ECHO(
ECHO(
ECHO ##########################
ECHO ## Création fichier Log ##
ECHO ##########################
ECHO(
ECHO(
SET chemin=\\PDC-Fabien.skynet.t2si\log$\Utilisateurs\%site%.%service%.%nom%.%prenom%.log
IF %ERRORLEVEL%==0 ECHO Cr‚ation reussie
IF %ERRORLEVEL% NEQ 0 ECHO Cr‚ation ‚chou‚e
Echo ######################################################################### > %chemin%
ECHO ##Fichier récapitulatif de la création de l'utilisateur %prenom%.%nom% ## >> %chemin%
Echo ######################################################################### >> %chemin%
ECHO( >> %chemin%
ECHO( >> %chemin%
ECHO Date et heure de création de l'utilisateur : %DATE% à %TIME% >> %chemin%
ECHO Nom du script utilisé : %~n0 >> %chemin%
ECHO Nom du compte utilisateur ayant utilisé le script : %USERNAME% >> %chemin%
ECHO Nom de l'ordinateur utilisé pour créer l'utilisateur : %COMPUTERNAME% >> %chemin%
ECHO( >> %chemin%
ECHO ######################################################################### >> %chemin%
ECHO( >> %chemin%
ECHO Nom de l'utilisateur créé : %Nom% >> %chemin%
ECHO Prénom de l'utilisateur créé : %prenom% >> %chemin%
ECHO Numéro de téléphone : %numtel% >> %chemin%
ECHO Email : %nom%.%prenom%@skynet.t2si >> %chemin%
ECHO Site de travail : %site% >> %chemin%
ECHO Service : %service% >> %chemin%
ECHO( >> %chemin%
ECHO Nom du compte utilisateur : %prenom%.%nom% >> %chemin%
ECHO Mot de passe définit à la création : P@ssw0rd >> %chemin%
ECHO Unité d'organisation dans laquelle a été créé l'utilisateur : User_%site%_%service% >> %chemin%
IF %Service%==Compta ECHO Chemin de profil utilisateur : \\PDC-Fabien.skynet.t2si\Profil$\%site%\%service%\%prenom%.%nom% >> %chemin%
IF %Service%==Boutique ECHO Chemin de profil utilisateur : \\PDC-Fabien.skynet.t2si\Profil$\%site%\%service%\%prenom%.%nom% >> %chemin%
ECHO Chemin du repertoire personnel : c:\Users\%prenom%.%nom% >> %chemin%
ECHO(
ECHO(
ECHO #######################
ECHO ## Cr‚ation termin‚e ##
ECHO #######################
ECHO(
ECHO(
Pause
script_8

Aperçu du fichier .log de la création de l’utilisateur Fabien Troussel

script_9

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *