@echo off REM Attention encodage OEM-850 setlocal enableextensions enabledelayedexpansion :checkadmin REM Check ex‚cution du script en tant qu'admin net session > NUL 2>&1 if %errorlevel% EQU 0 goto start echo LE SCRIPT N'EST PAS LANC EN TANT QU'ADMINISTRATEUR ! pause > nul exit :start REM Check si la liste d'users existe cls if not exist %~dp0\users_to_create.txt ( echo Le fichier users_to_create.txt n'existe pas. echo Veuillez le cr‚er, avec un utilisateur par ligne sous cette forme : echo prenom.nom;Pr‚nom NOM echo. echo ATTENTION le fichier doit ˆtre encod‚ en OEM-850 pause > nul exit ) rem Comptage du nombre de lignes, et donc d'users set /a lines=0 for /f "delims=;" %%L in ('type %~dp0\users_to_create.txt') do (set /a lines+=1) REM Pour chaque ligne, cr‚er un user avec son username, et son fullname REM incr‚mentation du compteur pour donner une progression REM d‚finition des quotas REM /!\ Le modŠle demand‚ par la commande doit exister au pr‚alable /!\ set /a count=0 for /F "delims=; tokens=1,2" %%A in ('type %~dp0\users_to_create.txt') do ( set user=%%A set fname=%%B set user=!user:~0,20! call :create >> %~dp0\new_users.log set /a count+=1 cls if !count! EQU 1 echo !count!/%lines% utilisateur cr‚‚. if !count! GTR 1 echo !count!/%lines% utilisateurs cr‚‚s. ) REM Fin du script title Cr‚ation des utilisateurs termin‚e. pause > nul exit :create title Cr‚ation de l'utilisateur %user% - %fname% REM check existence user, si oui, v‚rifier existence dossier perso set exists=0 net user !user! > NUL 2>&1 if %errorlevel% EQU 0 ( set exists=1 goto perso ) call :pass net user !user! !password! /add /DOMAIN /FULLNAME:"!fname!" :perso REM check si dossier perso existe, si oui d‚finir quota if exist %~dp0\Perso\!user! goto quota echo Cr‚ation du dossier ... mkdir %~dp0\Perso\!user! echo. echo D‚finition du propri‚taire ... icacls %~dp0\Perso\!user! /setowner !user! /T echo. echo D‚sactivation de l'h‚ritage ... icacls %~dp0\Perso\!user! /inheritance:d echo. echo Modification des droits ... icacls %~dp0\Perso\!user! /grant !user!:(OI)(CI)(NP)(F) icacls %~dp0\Perso\!user! /grant "Administrateurs":(OI)(CI)(F) icacls %~dp0\Perso\!user! /remove "Tout le monde" icacls %~dp0\Perso\!user! /remove "Utilisateurs authentifi‚s" echo. :quota echo D‚finition du quota... dirquota quota add /Path:E:\Perso\!user! /SourceTemplate:"Perso 10 Go" if %exists% EQU 1 goto :EOF echo !user! !password!>>%~dp0\users_created.txt goto :EOF :pass REM set /P _length=Password Length: %==% set _length=8 set /a z = %_length% set "string=ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz123456789" set "password=" for /L %%i in (1,1,!z!) do call :_genRand REM echo Password is: %password% goto :EOF :_genRand set /a x=%random% %% 62 set password=%password%!string:~%x%,1! goto :eof