Dieses Script legt in einer Domäne einen Benutzer an, erstellt sein HomeDirectory, einen Profilordner und setzt die Berechtigungen.
@echo off rem ****************************************************************** rem *** USERANLEGEN.cmd *** rem *** *** rem *** Legt in der Domäne einen User an *** rem *** erstellt ein Homedirectory *** rem *** und einen Ordner für das Profil *** rem ****************************************************************** rem *** Benötigte Hilfsprogramme (im Unterordner .\bin) *** rem *** sleep.exe (Support Tools) *** rem *** rmtshare.exe(ResKit) *** rem *** xcacls (Resource Kit) *** rem *** ldifde (Server2003) rem ****************************************************************** rem *** Verfasser: Jürgen Etterer (DIGITAL LABS.) *** rem *** *** rem ****************************************************************** setlocal call :GETUSERDATA set HOMESERVER=myhomeserver set PROFSERVER=myprofileserver set DOMAIN=mydomain set FQDN1=mydomain set FQDN2=de set BaseDN="CN=Users,DC=%FQDN1%,DC=%FQDN2%" set DEFAULTPASSWORD=passwort set HOMEPATH=\\%HOMESERVER%\D$\Homedirs set PROFPATH=\\%PROFSERVER%\Profiles$ set FILERIGHTS=Administratoren:F SYSTEM:F %DOMAIN%\%USERLOGIN%:C set PROFRIGHTS=Administratoren:F SYSTEM:F %DOMAIN%\%USERLOGIN%:F set SHARERIGHTS=/GRANT Administratoren:F /GRANT %DOMAIN%\%USERLOGIN%:C set LOGONSCRIPT=logon.cmd set WAITTIME=5 call :GENERATELDF goto :EOF echo Der User "%USERLOGIN%" wird mit den folgenden Daten angelegt: echo. echo Voller Name: %FULLNAME% echo HOMEDIR : %HOMEPATH%\%USERLOGIN% echo Berechtigungen: %FILERIGHTS% echo. echo HOMESHARE : \\%HOMESERVER%\%USERLOGIN%$ echo Berechtigungen: %SHARERIGHTS% echo. echo PROFIL : %PROFPATH%\%USERLOGIN% echo Berechtigungen: %PROFRIGHTS% echo. pause call :USERANLEGEN echo ********************************************************** echo Zur Kontrolle werden die Benutzerdaten nochmals angezeigt: net user %USERLOGIN% /DOMAIN pause echo. echo ******************************************************************************* echo Jetzt muss nur noch in der MMC unter 'Account' der AD-Username angegeben werden echo und unter 'Profile' das Netzlaufwerk des Users zugewiesen werden. echo ******************************************************************************* echo. endlocal goto :EOF rem *** Hier werden die Benutzerdaten abgefragt ******************************************************** :GETUSERDATA set /p USERLOGIN="Loginname: " set /p VORNAME="Vorname : " set /p NACHNAME="Nachname : " set FULLNAME="%VORNAME% %NACHNAME%" goto :EOF rem **************************************************************************************************** :USERANLEGEN rem *** Zuerst legen wir das Homedir des Users an.... echo *** Checken wir mal, ob es den User bereits gibt net user %USERLOGIN% /DOMAIN > nul if %ERRORLEVEL%==0 set ERROR=USEXISTS if .%ERROR%==.USEXISTS goto :EOF call :HOMEDIRANLEGEN call :PROFILANLEGEN call :CREATEUSER call :PROFILERIGHTS call :HOMEDIRRIGHTS call :HOMEDIRSHARE goto :EOF rem *** Hier wird das Homedir des Users angelegt ********************************************************** :HOMEDIRANLEGEN echo Das Homedirectory %HOMEPATH%\%USERLOGIN% wird angelegt ... if exist %HOMEPATH%\%USERLOGIN% echo FEHLER: Das Verzeichnis existiert bereits! & set ERROR=HDEXISTS & goto :EOF md %HOMEPATH%\%USERLOGIN% goto :EOF rem *** Hier werden die Rechte auf das Homedir des Users gesetzt ********************************************* :HOMEDIRRIGHTS echo Berechtigungen auf das Homedir werden gesetzt... .\bin\xcacls.exe %HOMEPATH%\%USERLOGIN% /T /G %FILERIGHTS% /Y > nul goto :EOF rem *** Freigabe des Homedirectories ************************************************************************* :HOMEDIRSHARE echo Die Freigabe des Homedirs wird erzeugt... .\bin\RMTSHARE.EXE \\%HOMESERVER%\%USERLOGIN%$=D:\Homedirs\%USERLOGIN% %SHARERIGHTS% /UNLIMITED> %TEMP%\makeshare.tmp findstr /C:"The command failed:" %TEMP%\makeshare.tmp if %ERRORLEVEL%==0 call :SHAREERROR if exist %TEMP%\makeshare.tmp del %TEMP%\makeshare.tmp goto :EOF rem **************************************************************************************************** :SHAREERROR set ERROR=GENSHARE for /f "tokens=4 delims=: " %%i in (%TEMP%\makeshare.tmp) do set SHERROR=%%i if %SHERROR%==2118 ( echo FEHLER: Die angegebene Freigabe "%USERLOGIN%$" existiert bereits! ) if %SHERROR%==1332 ( echo Fehler in der Userliste: Benutzer nicht gefunden! echo Aus Sicherheitsgruenden wird die Freigabe "%USERLOGIN%$" wieder entfernt... .\bin\rmtshare \\%HOMESERVER%\%USERLOGIN%$ /delete ) goto :EOF rem *** Anlegen des Profilordners ********************************************************************** :PROFILANLEGEN echo Das Profil %PROFPATH%\%USERLOGIN% wird angelegt ... if exist %PROFPATH%\%USERLOGIN% echo FEHLER: Das Verzeichnis existiert bereits! & set ERROR=PREXISTS & goto :EOF md %PROFPATH%\%USERLOGIN% goto :EOF rem *** Setzen der Berechtigungen auf das Profil ******************************************************* :PROFILERIGHTS echo Berechtigungen auf das Profil werden gesetzt... .\bin\xcacls.exe %PROFPATH%\%USERLOGIN% /T /G %PROFRIGHTS% /Y > nul goto :EOF rem *** Anlegen des Users ****************************************************************************** :CREATEUSER net user %USERLOGIN% %DEFAULTPASSWORD% /ADD /fullname:%FULLNAME% /homedir:\\%HOMESERVER%\%USERLOGIN%$ /profilepath:%PROFPATH%\%USERLOGIN% /scriptpath:%LOGONSCRIPT% /expires:never /DOMAIN echo Nun wird %WAITTIME% Sekunden gewartet... sleep %WAITTIME% goto :EOF rem *** Generate LDF :GENERATELDF echo dn: %BaseDN% echo changetype: add echo objectClass: top echo objectClass: person echo objectClass: organizationalPerson echo objectClass: user echo sn: %VORNAME% echo givenName: %NACHNAME% echo displayName: %NACHNAME% %VORNAME% echo homeDirectory: \\%HOMESERVER%\%USERLOGIN%$ echo homeDrive: Y: echo scriptPath: logon.cmd echo profilePath: %PROFPATH%\%USERLOGIN% echo accountExpires: 9223372036854775807 echo sAMAccountName: %USERLOGIN% echo userPrincipalName: testuser@%FQDN1%.%FQDN2% goto :EOF |