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

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.