Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Nutzerkonten auf Basis einer Vorlage in Windowsdomänen anlegen

Anleitung Entwicklung Batch & Shell

Mitglied: Destry

Destry (Level 1) - Jetzt verbinden

13.05.2009, aktualisiert 05.08.2010, 9981 Aufrufe, 5 Danke

Hallo allerseits!

Ich möchte heute ein Batchscript veröffentlichen bei dessen Erstellung mir dieses Forum eine grosse Hilfe war.

Das Skript heisst "New_User_from_Template.bat".
Es dient dazu auf der Kommandozeile in einer Windowsdomäne ein Nutzerkonto zu erstellen welches auf der Vorlage eines bereits bestehenden Nutzer beruht.

Nun werdet Ihr vielleicht sagen: Wofür das?
Man kann mit den normalen Windows-Admin-Tools eine Kopie des Nutzers erstellen und fertig.

Und ich sage: Richtig, aber....

Ich habe mich jetzt nicht auf die Suche nach anderen Tools gemacht die mehr können, aber bei den normalen Tools wird nicht alles kopiert.
So fehlen zum Beispiel die Werte für die Felder "Beschreibung" oder "E-Mail". Ausserdem ist der Pfad zum H-Laufwerk nicht korrekt.
Zuletzt hat mich die massenhafte Klickerei in den massenhaften Eigenschaftsfeldern genervt. Besonders wenn es darum geht mehrere neue Nutzerkonten zu erstellen.

Kurz: Kann sein das es bessere Lösungen gibt, aber das ist meine. Vielleicht kann es jemand gebrauchen.

Nun zum Skript.
Zuerst was macht es:

- Es erstellt ein Nutzerkonto auf der Vorlage eines bereits bestehenden Nutzerkontos.
- Es erstellt, füllt und öffnet ein Worddokument welches als Antragsformular dient und vom neuen Nutzer und seinem Vorgesetzten unterschrieben werden muss.
- Es erstellt das Home-Verzeichnis des neuen Nutzers.
- Es setzt die Berechtigungen für das Home-Verzeichnis des neuen Nutzers.
- Es erstellt die Freigabe für das Home-Verzeichnis des neuen Nutzers.
- Es setzt die Berechtigungen für die Freigabe für das Home-Verzeichnis des neuen Nutzers.
- Es erstellt das Profilverzeichnis für den neuen Nutzer.
- Es setzt die Berechtigungen für das Profilverzeichnis für den neuen Nutzer.
- Es erstellt eine Log-Datei.

Ausserdem:

- Es hat Platz um noch andere Dinge zu tun.

In meinem Fall habe ich noch Befehle eingebaut um in SQL-Datenbanken ein Konto zu erstellen und Berechtigungen zu vergeben.
Das erleichtert uns die Arbeit. Ich habe es aber im Skript weggelassen, da das sehr auf uns zugeschnitten ist.

Im wesentlichen dreht sich dabei aber alles um das Programm "sqlcmd.exe".

Wie macht es das:

Hauptsächlich nutze ich die "ds-Befehle" aus dem Adminpack von Windows.
Also "dsadd.exe", "dsquery.exe" und "dsget.exe".
Ausserdem noch "rmtshare.exe" um Berechtigungen auf Freigaben zu setzen, sowie das oben genannte "sqlcmd.exe" für SQL-Datenbanken und "sleep.exe"
Plus die Dateien "dsquery.dll" und "sqlcmd.rll". Damit kann das "Paket" überall laufen, ohne zusätzliche Installationen.

Bedingungen:

- Natürlich Domänen-Adminrechte.
Folgende Ordnerstruktur (bei mir):
- root-Ordner (Name beliebig, nur für die Batchdatei)

darunter die Pflichtordner:

- FormFiles (für das originale Worddokument/Antragsformular)
- LogFiles (für die Log-Dateien)
- Programs (für die unter "Wie macht es das" genannten Dateien)
- TempFiles (für temporär erstellte Text-Dateien)

Wie soll ich es lesen:

- Alle Variablen habe ich in Grossbuchstaben geschrieben.
- Überall wo BEISPIEL steht müsst Ihr Eure eigenen Werte vorgeben.

ACHTUNG:
Eventuell zeigt der Browser manche Zeilen mit sehr langem Code nicht vollständig an. Dazu der Tipp von "Biber":

Die angezeigte Seite sieht aus, als wären die rechten 5 cm abgeschnitten und ein Scrollen nach rechts ist nicht möglich.

Wenn es dieses Verhalten auftritt, dann ist ein funktionierender Workaround, der auch hier im Forum gepostet wurde:
Im Browser auf "Ansicht"->"Schriftgrad" gehen und dort das, was ohnehin eingestellt ist (meistens "Mittel") einfach bestätigen.



Sonstiges:

Der folgende Code ist an den entscheidenen Stellen "entschärft".
Ihr könnt ihn eins zu eins kopieren und nutzen, aber es wird kein Konto und keine Verzeichnisse erstellt und keine Berechtigungen vergeben.
Wenn Ihr die richtige Umgebung habt und eure eigenen Werte richtig sind, wird es bei den entscheidenen Punkten lauter Echos auswerfen.

Unterhalb dieser Echos stehen im Code, auskommentiert, die "scharfen Befehle".

Ihr findet die Befehle in den Bereichen:

--- Erstellen des Home- und Profilverzeichnisses sowie der Freigabe inklusive Freigabeberechtigungen ---
--- Erstellen des neuen Nutzers ---
--- Vergeben der Rechte fuer das Profilverzeichnis ---
--- Vergeben der Rechte fuer das Homeverzeichnis ---

In den beiden letzten Bereichen müsst Ihr, um es zum Laufen zu bringen, die ganzen REM's rausnehmen.

Das Antragsformular als Worddokument fehlt hier noch.
Dahinter steckt eine Datei mit einem Makro welche im Skript aufgerufen wird.
Das Makro füllt die Formularfelder über eine Textdatei welche vom Skript erstellt wird.

Sollte daran Bedarf bestehen bitte per PM melden.
Sollte viel Bedarf bestehen kann ich den Makrocode hier noch einstellen.

Es ist leider recht komplex geworden, aber ich hoffe trotzdem das ich mich verständlich machen konnte und es jemand behilflich ist.
Vielen Dank für die Aufmerksamkeit.

Gruss,
Destry

01.
@echo off 
02.
title Create a new User from Template (no Action, only Echo and Logfile) 
03.
 
04.
:BEGIN_OF_SCRIPT 
05.
 
06.
REM ------------------ Variable setzen ------------------ 
07.
 
08.
set DOMAINNAME=BEISPIEL_DOMAENE 
09.
set DNS_DOMAINNAME=BEISPIEL_DOMAENE.net 
10.
set FORM_DEPARTMENT=BEISPIEL_ABTEILUNG 
11.
set FORM_INTENTION=Anmelden 
12.
set FORMFILE_DIR=.\FormFiles 
13.
set FORMFILE_NAME=BEISPIEL_FORMULAR.doc 
14.
set FORM_FILL_FILE_NAME=Fill_Account_Form.txt 
15.
set LOGFILE_DIR=.\LogFiles 
16.
set IF_NEW_NEXT_ACCOUNT= 
17.
set MAIL_SUFFIX=BEISPIEL_MAIL_SUFFIX.com 
18.
set NEW_HOME_DRV=H: 
19.
set NEW_STDPWD=BEISPIEL_PASSWORT 
20.
set PROGRAM_DIR=.\Programs 
21.
set TEMPFILE_DIR=.\TempFiles 
22.
set WINWORD_FILE_NAME=winword.exe 
23.
set WINWORD_PATH=%PROGRAMFILES%\BEISPIELPFAD_ZU_WORD 
24.
 
25.
 
26.
 
27.
REM ------------------ Programmstart ------------------ 
28.
 
29.
 
30.
REM --- Abfragen nach dem Administrator --- 
31.
 
32.
%PROGRAM_DIR%\dsquery user -samid %USERNAME% | %PROGRAM_DIR%\dsget user -fn > %TEMPFILE_DIR%\%USERNAME%_FirstName_Query_01.txt 
33.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%USERNAME%_FirstName_Query_01.txt) do call :SET_QUERY_ADMIN_FIRSTNAME_VAR %%i 
34.
goto GO_ON_QUERY_ADMIN_FIRSTNAME 
35.
 
36.
:SET_QUERY_ADMIN_FIRSTNAME_VAR 
37.
set TPL_QUERY_ADMIN_FIRSTNAME_VAR=%TPL_QUERY_ADMIN_FIRSTNAME_VAR%!%* 
38.
goto :EOF 
39.
 
40.
:GO_ON_QUERY_ADMIN_FIRSTNAME 
41.
for /f "tokens=1,2 delims=!" %%i in ("%TPL_QUERY_ADMIN_FIRSTNAME_VAR%") do @set ADMIN_FIRSTNAME=%%j 
42.
if "%ADMIN_FIRSTNAME%"=="dsget succeeded" @set ADMIN_FIRSTNAME=Diese Kennung hat keinen Vornamen! 
43.
 
44.
%PROGRAM_DIR%\dsquery user -samid %USERNAME% | %PROGRAM_DIR%\dsget user -ln > %TEMPFILE_DIR%\%USERNAME%_LastName_Query_01.txt 
45.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%USERNAME%_LastName_Query_01.txt) do call :SET_QUERY_ADMIN_LASTNAME_VAR %%i 
46.
goto GO_ON_QUERY_ADMIN_LASTNAME 
47.
 
48.
:SET_QUERY_ADMIN_LASTNAME_VAR 
49.
set TPL_QUERY_ADMIN_LASTNAME_VAR=%TPL_QUERY_ADMIN_LASTNAME_VAR%!%* 
50.
goto :EOF 
51.
 
52.
:GO_ON_QUERY_ADMIN_LASTNAME 
53.
for /f "tokens=1,2 delims=!" %%i in ("%TPL_QUERY_ADMIN_LASTNAME_VAR%") do @set ADMIN_LASTNAME=%%j 
54.
if "%ADMIN_LASTNAME%"=="dsget succeeded" @set ADMIN_LASTNAME=Diese Kennung hat keinen Nachnamen! 
55.
 
56.
 
57.
REM --- Abfragen nach Nutzer-Neu und Nutzer-Vorlage mit eventueller Korrektur--- 
58.
 
59.
:TPL_USER_SAMID_INPUT 
60.
cls 
61.
echo. 
62.
echo -------------------------------------------------- 
63.
echo. 
64.
echo Willkommen %ADMIN_FIRSTNAME% %ADMIN_LASTNAME%! 
65.
echo. 
66.
echo -------------------------------------------------- 
67.
echo. 
68.
echo Bitte geben Sie die Kennung des Nutzers ein, welcher als Vorlage dienen soll (z.B. BEISPIELKENNUNG): 
69.
set /P TPL_SAMID= 
70.
 
71.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -samid 1>NUL 2>&1 
72.
if not %ERRORLEVEL%==0 goto TPL_USER_SAMID_ERROR 
73.
 
74.
:NEW_USER_SAMID_INPUT 
75.
cls 
76.
echo. 
77.
echo -------------------------------------------------- 
78.
echo. 
79.
echo Bitte geben Sie Informationen zur neuen Nutzerkennung ein: 
80.
echo. 
81.
set /P NEW_SAMID=Neuer Nutzer - Kennung (z.B. BEISPIELKENNUNG):  
82.
 
83.
%PROGRAM_DIR%\dsquery user -samid %NEW_SAMID% | %PROGRAM_DIR%\dsget user -samid 1>NUL 2>&1 
84.
if %ERRORLEVEL%==0 goto NEW_USER_SAMID_ERROR 
85.
 
86.
echo. 
87.
set /P NEW_LASTNAME=Neuer Nutzer - Nachname:  
88.
echo. 
89.
set /P NEW_FIRSTNAME=Neuer Nutzer - Vorname:  
90.
echo. 
91.
echo Als Mailadresse wird der folgende Wert vorgegeben: 
92.
echo. 
93.
echo     "%NEW_FIRSTNAME%.%NEW_LASTNAME%@%MAIL_SUFFIX%" 
94.
echo. 
95.
 
96.
:NEW_USER_MAILADRESS_QUESTION_WRONG_KEY 
97.
set /P YES_NO_QUESTION_VAR=Wollen Sie den Wert uebernehmen? J/N :  
98.
if /i "%YES_NO_QUESTION_VAR%"=="J" (set NEW_MAILADRESS_VALUE=%NEW_FIRSTNAME%.%NEW_LASTNAME%@%MAIL_SUFFIX%) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (goto NEW_USER_MAILADRESS_QUESTION_OWN_VALUE_WRONG_KEY) else (goto NEW_USER_MAILADRESS_QUESTION_WRONG_KEY)) 
99.
goto NEW_USER_MAILADRESS_QUESTION_GO_ON 
100.
 
101.
:NEW_USER_MAILADRESS_QUESTION_OWN_VALUE_WRONG_KEY 
102.
set YES_NO_QUESTION_VAR= 
103.
set /P YES_NO_QUESTION_VAR=Wollen Sie einen eigenen Wert vorgeben? J/N :  
104.
if /i "%YES_NO_QUESTION_VAR%"=="J" (goto NEW_USER_MAILADRESS_QUESTION_STOP) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (set DSADD_PARAMETER_EMAIL=) else (goto NEW_USER_MAILADRESS_QUESTION_OWN_VALUE_WRONG_KEY)) 
105.
goto NEW_USER_MAILADRESS_QUESTION_NO_MAILADRESS 
106.
 
107.
REM - E-Mail-Adresse - 
108.
:NEW_USER_MAILADRESS_QUESTION_STOP 
109.
echo Bitte geben Sie einen neuen Wert vor (z.B. vorname.nachname@BEISPIEL_MAIL_ADRESSE.com): 
110.
set /P NEW_MAILADRESS_VALUE= 
111.
 
112.
:NEW_USER_MAILADRESS_QUESTION_GO_ON 
113.
set DSADD_PARAMETER_EMAIL=-email "%NEW_MAILADRESS_VALUE%" 
114.
 
115.
:NEW_USER_MAILADRESS_QUESTION_NO_MAILADRESS 
116.
set YES_NO_QUESTION_VAR= 
117.
echo. 
118.
echo -------------------------------------------------- 
119.
 
120.
 
121.
REM --- Informationen fuer das Antragsformular --- 
122.
 
123.
echo. 
124.
echo Folgende Informationen sind fuer das Antragsformular: 
125.
echo. 
126.
set /P FORM_CHIEF_NAME=Vor- und Nachname des Vorgesetzten:  
127.
echo. 
128.
set /P FORM_VALID_DATE=Das Konto soll gueltig sein bis:  
129.
echo. 
130.
set /P FORM_MOTIVATION=Der Grund fuer das Anlegen des Kontos (z.B.: Neuer Mitarbeiter, Projektname, etc.):  
131.
echo. 
132.
set /P FORM_USER_TYPE=Der Nutzer ist (z.B.: Eigener Mitarbeiter, Fremdfirma, Batch-User, Ausbildung, etc.):  
133.
echo. 
134.
echo -------------------------------------------------- 
135.
 
136.
 
137.
REM --- Abfrage wer die Vorlage ist und wer angelegt werden soll --- 
138.
 
139.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -fn > %TEMPFILE_DIR%\%TPL_SAMID%_FirstName_Query_01.txt 
140.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_FirstName_Query_01.txt) do call :SET_QUERY_FIRSTNAME_VAR %%i 
141.
goto GO_ON_QUERY_FIRSTNAME 
142.
 
143.
:SET_QUERY_FIRSTNAME_VAR 
144.
set TPL_QUERY_FIRSTNAME_VAR=%TPL_QUERY_FIRSTNAME_VAR%!%* 
145.
goto :EOF 
146.
 
147.
:GO_ON_QUERY_FIRSTNAME 
148.
for /f "tokens=1,2 delims=!" %%i in ("%TPL_QUERY_FIRSTNAME_VAR%") do @set TPL_FIRSTNAME=%%j 
149.
if "%TPL_FIRSTNAME%"=="dsget succeeded" @set TPL_FIRSTNAME=Diese Kennung hat keinen Vornamen! 
150.
 
151.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -ln > %TEMPFILE_DIR%\%TPL_SAMID%_LastName_Query_01.txt 
152.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_LastName_Query_01.txt) do call :SET_QUERY_LASTNAME_VAR %%i 
153.
goto GO_ON_QUERY_LASTNAME 
154.
 
155.
:SET_QUERY_LASTNAME_VAR 
156.
set TPL_QUERY_LASTNAME_VAR=%TPL_QUERY_LASTNAME_VAR%!%* 
157.
goto :EOF 
158.
 
159.
:GO_ON_QUERY_LASTNAME 
160.
for /f "tokens=1,2 delims=!" %%i in ("%TPL_QUERY_LASTNAME_VAR%") do @set TPL_LASTNAME=%%j 
161.
if "%TPL_LASTNAME%"=="dsget succeeded" @set TPL_LASTNAME=Diese Kennung hat keinen Nachnamen! 
162.
 
163.
echo. 
164.
echo Als Vorlage dient der Nutzer: 
165.
echo. 
166.
echo   Nachname: "%TPL_LASTNAME%" 
167.
echo   Vorname: "%TPL_FIRSTNAME%" 
168.
echo   Kennung: "%TPL_SAMID%" 
169.
echo. 
170.
echo. 
171.
echo Angelegt werden soll der Nutzer: 
172.
echo. 
173.
echo   Nachname: "%NEW_LASTNAME%" 
174.
echo   Vorname: "%NEW_FIRSTNAME%" 
175.
echo   Kennung: "%NEW_SAMID%" 
176.
echo   Mailadresse: "%NEW_MAILADRESS_VALUE%" 
177.
echo. 
178.
echo -------------------------------------------------- 
179.
echo. 
180.
 
181.
:ALL_INPUT_QUESTION_WRONG_KEY 
182.
set /P YES_NO_QUESTION_VAR=Wollen Sie das Nutzerkonto jetzt anlegen? J/N :  
183.
if /i "%YES_NO_QUESTION_VAR%"=="J" (goto ALL_INPUT_QUESTION_GO_ON) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (goto ALL_INPUT_QUESTION_STOP) else (goto ALL_INPUT_QUESTION_WRONG_KEY)) 
184.
 
185.
:ALL_INPUT_QUESTION_GO_ON 
186.
set YES_NO_QUESTION_VAR= 
187.
echo. 
188.
 
189.
 
190.
REM --- Abfrage ob der Vorlagen-Nutzer ein Home- und Profilverzeichnis hat --- 
191.
 
192.
REM - Homeverzeichnis- 
193.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -hmdir > %TEMPFILE_DIR%\%TPL_SAMID%_hmdir_Query_01.txt 
194.
 
195.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_hmdir_Query_01.txt) do call :SET_NEW_QUERY_HMDIR_VAR %%i 
196.
goto GO_ON_QUERY_HMDIR 
197.
 
198.
:SET_NEW_QUERY_HMDIR_VAR 
199.
set NEW_QUERY_HMDIR_VAR=%NEW_QUERY_HMDIR_VAR%!%* 
200.
goto :EOF 
201.
 
202.
:GO_ON_QUERY_HMDIR 
203.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_HMDIR_VAR%") do @set NEW_QUERY_HMSRV_VAR=%%j 
204.
for /f "tokens=1 delims=\" %%i in ("%NEW_QUERY_HMSRV_VAR%") do @set NEW_HMSRV=%%i 
205.
set IF_NEW_HMSRV=yes 
206.
if "%NEW_HMSRV%"=="dsget succeeded" set IF_NEW_HMSRV=no 
207.
if "%IF_NEW_HMSRV%"=="no" (set DSADD_PARAMETER_HMDIR= ) else (set DSADD_PARAMETER_HMDIR=-hmdir "\\%NEW_HMSRV%\%NEW_SAMID%$") 
208.
 
209.
 
210.
REM - Profilverzeichnis- 
211.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -profile > %TEMPFILE_DIR%\%TPL_SAMID%_Profile_Query_01.txt 
212.
 
213.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_Profile_Query_01.txt) do call :SET_NEW_QUERY_PROFILE_VAR %%i 
214.
goto GO_ON_QUERY_PROFILE 
215.
 
216.
:SET_NEW_QUERY_PROFILE_VAR 
217.
set NEW_QUERY_PROFILE_VAR=%NEW_QUERY_PROFILE_VAR%!%* 
218.
goto :EOF 
219.
 
220.
:GO_ON_QUERY_PROFILE 
221.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_PROFILE_VAR%") do @set NEW_QUERY_PROFILE_PATH=%%j 
222.
for /f "tokens=1,2 delims=\" %%i in ("%NEW_QUERY_PROFILE_PATH%") do @set NEW_PROFILE_PATH=%%i\%%j 
223.
set IF_NEW_PROFILE_PATH=yes 
224.
if "%NEW_PROFILE_PATH%"=="dsget succeeded\" set IF_NEW_PROFILE_PATH=no 
225.
if "%IF_NEW_PROFILE_PATH%"=="no" (set DSADD_PARAMETER_PROFILE= ) else (set DSADD_PARAMETER_PROFILE=-profile "\\%NEW_PROFILE_PATH%\%NEW_SAMID%") 
226.
 
227.
 
228.
REM --- Erstellen des Home- und Profilverzeichnisses sowie der Freigabe inklusive Freigabeberechtigungen --- 
229.
 
230.
echo if "%IF_NEW_PROFILE_PATH%"=="yes" md \\%NEW_PROFILE_PATH%\%NEW_SAMID% 
231.
echo if "%IF_NEW_HMSRV%"=="yes" md \\%NEW_HMSRV%\d$\Data\Users\%NEW_SAMID% 
232.
echo if "%IF_NEW_HMSRV%"=="yes" %PROGRAM_DIR%\rmtshare \\%NEW_HMSRV%\%NEW_SAMID%$=D:\Data\Users\%NEW_SAMID% /UNLIMITED /GRANT "BEISPIEL_DOMAENE\Domain Admins":F /GRANT "Authenticated Users":C /GRANT System:F /REMOVE Everyone /REMARK: 
233.
 
234.
REM if "%IF_NEW_PROFILE_PATH%"=="yes" md \\%NEW_PROFILE_PATH%\%NEW_SAMID% 1>NUL 2>&1 
235.
REM if "%IF_NEW_HMSRV%"=="yes" md \\%NEW_HMSRV%\d$\Data\Users\%NEW_SAMID% 1>NUL 2>&1 
236.
REM if "%IF_NEW_HMSRV%"=="yes" %PROGRAM_DIR%\rmtshare \\%NEW_HMSRV%\%NEW_SAMID%$=D:\Data\Users\%NEW_SAMID% /UNLIMITED /GRANT "BEISPIEL_DOMAENE\Domain Admins":F /GRANT "Authenticated Users":C /GRANT System:F /REMOVE Everyone /REMARK: 1>NUL 2>&1 
237.
 
238.
 
239.
REM --- Abfragen um die Parameter des dsadd-Befehls zu fuellen --- 
240.
 
241.
REM - User Principal Name - 
242.
set DSADD_PARAMETER_UPN=-upn %NEW_SAMID%@%DNS_DOMAINNAME% 
243.
 
244.
 
245.
REM - Vorname - 
246.
set DSADD_PARAMETER_FN=-fn "%NEW_FIRSTNAME%" 
247.
 
248.
 
249.
REM - Nachname - 
250.
set DSADD_PARAMETER_LN=-ln "%NEW_LASTNAME%" 
251.
 
252.
 
253.
REM - Anzeigename - 
254.
set DSADD_PARAMETER_DISPLAY=-display "%NEW_LASTNAME%, %NEW_FIRSTNAME%" 
255.
 
256.
 
257.
REM - Passwort fuer die erste Anmeldung - 
258.
set DSADD_PARAMETER_PWD=-pwd %NEW_STDPWD% 
259.
 
260.
 
261.
REM - Distinguished Name - 
262.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -dn > %TEMPFILE_DIR%\%TPL_SAMID%_dn_Query_01.txt 
263.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_dn_Query_01.txt) do call :SET_NEW_QUERY_DN_VAR %%i 
264.
goto GO_ON_QUERY_DN 
265.
 
266.
:SET_NEW_QUERY_DN_VAR 
267.
set NEW_QUERY_DN_VAR_01=%NEW_QUERY_DN_VAR_01%!%* 
268.
goto :EOF 
269.
 
270.
:GO_ON_QUERY_DN 
271.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_DN_VAR_01%") do @set NEW_QUERY_DN_VAR_02=%%j 
272.
for /f "tokens=1,2,* delims==" %%i in ("%NEW_QUERY_DN_VAR_02%") do @set NEW_QUERY_DN_VAR_03=%%k 
273.
set NEW_OBJECTPLACE=OU=%NEW_QUERY_DN_VAR_03% 
274.
set NEW_DISTNAME=CN=%NEW_LASTNAME%\, %NEW_FIRSTNAME%,%NEW_OBJECTPLACE% 
275.
 
276.
 
277.
REM - Beschreibung - 
278.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -desc > %TEMPFILE_DIR%\%TPL_SAMID%_Description_Query_01.txt 
279.
 
280.
findstr "&" %TEMPFILE_DIR%\%TPL_SAMID%_Description_Query_01.txt 1>NUL 2>&1 
281.
if %ERRORLEVEL%==0 goto SECOND_WAY_QUERY_DESC 
282.
 
283.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_Description_Query_01.txt) do call :SET_NEW_QUERY_DESC_VAR %%i 
284.
goto GO_ON_QUERY_DESC 
285.
 
286.
:SET_NEW_QUERY_DESC_VAR 
287.
set NEW_QUERY_DESC_VAR=%NEW_QUERY_DESC_VAR%!%* 
288.
goto :EOF 
289.
 
290.
:GO_ON_QUERY_DESC 
291.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_DESC_VAR%") do @set NEW_DESCRIPTION=%%j 
292.
goto DONE_QUERY_DESC 
293.
 
294.
:SECOND_WAY_QUERY_DESC 
295.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_Description_Query_01.txt) do call :SECOND_WAY_SET_NEW_QUERY_DESC_VAR "%%i" 
296.
goto SECOND_WAY_GO_ON_QUERY_DESC 
297.
 
298.
:SECOND_WAY_SET_NEW_QUERY_DESC_VAR 
299.
set "NEW_QUERY_DESC_VAR=%NEW_QUERY_DESC_VAR%!%~1" 
300.
goto :EOF 
301.
 
302.
:SECOND_WAY_GO_ON_QUERY_DESC 
303.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_DESC_VAR%") do @set NEW_DESCRIPTION=%%j 
304.
 
305.
:DEL_SPACE_BEGIN 
306.
if "%NEW_DESCRIPTION:~0,1%" neq " " goto DEL_SPACE_END 
307.
set "NEW_DESCRIPTION=%NEW_DESCRIPTION:~1%" 
308.
goto DEL_SPACE_BEGIN 
309.
 
310.
:DEL_SPACE_END 
311.
if "%NEW_DESCRIPTION:~-1%" neq " " goto DONE_QUERY_DESC 
312.
set "NEW_DESCRIPTION=%NEW_DESCRIPTION:~0,-1%" 
313.
goto DEL_SPACE_END 
314.
 
315.
:DONE_QUERY_DESC 
316.
set DSADD_PARAMETER_DESC=-desc "%NEW_DESCRIPTION%" 
317.
 
318.
 
319.
REM - Gruppenmitgliedschaften - 
320.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -memberof > %TEMPFILE_DIR%\%TPL_SAMID%_Groups_Query_01.txt 
321.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_Groups_Query_01.txt) do if not %%i=="CN=Domain Users,OU=Global Groups,OU=Domain Groups,DC=BEISPIEL,DC=BEISPIEL,DC=BEISPIEL" call :SET_NEW_QUERY_GROUPS_VAR %%i 
322.
goto GO_ON_QUERY_GROUPS 
323.
 
324.
:SET_NEW_QUERY_GROUPS_VAR 
325.
set NEW_GROUPS=%NEW_GROUPS% %1 
326.
goto :EOF 
327.
 
328.
:GO_ON_QUERY_GROUPS 
329.
if "%NEW_GROUPS:~0,1%" equ " " set "NEW_GROUPS=%NEW_GROUPS:~1%" 
330.
set DSADD_PARAMETER_MEMBEROF=-memberof %NEW_GROUPS% 
331.
 
332.
 
333.
REM - Laufwerksbuchstabe fuer das Homeverzeichnis - 
334.
if "%IF_NEW_HMSRV%"=="no" (set DSADD_PARAMETER_HMDRV= ) else (set DSADD_PARAMETER_HMDRV=-hmdrv %NEW_HOME_DRV%) 
335.
 
336.
 
337.
REM - LogonScript - 
338.
%PROGRAM_DIR%\dsquery user -samid %TPL_SAMID% | %PROGRAM_DIR%\dsget user -loscr > %TEMPFILE_DIR%\%TPL_SAMID%_LogonScript_Query_01.txt 
339.
for /f "delims=" %%i in (%TEMPFILE_DIR%\%TPL_SAMID%_LogonScript_Query_01.txt) do call :SET_NEW_QUERY_LOGONSCRIPT_VAR %%i 
340.
goto GO_ON_QUERY_LOGONSCRIPT 
341.
 
342.
:SET_NEW_QUERY_LOGONSCRIPT_VAR 
343.
set NEW_QUERY_LOGONSCRIPT_VAR=%NEW_QUERY_LOGONSCRIPT_VAR%!%* 
344.
goto :EOF 
345.
 
346.
:GO_ON_QUERY_LOGONSCRIPT 
347.
for /f "tokens=1,2 delims=!" %%i in ("%NEW_QUERY_LOGONSCRIPT_VAR%") do @set NEW_LOGONSCRIPT=%%j 
348.
if "%NEW_LOGONSCRIPT%"=="dsget succeeded" (set IF_NEW_LOGONSCRIPT=no) else (set IF_NEW_LOGONSCRIPT=yes) 
349.
if "%IF_NEW_LOGONSCRIPT%"=="no" (set DSADD_PARAMETER_LOSCR= ) else (set DSADD_PARAMETER_LOSCR=-loscr "%NEW_LOGONSCRIPT%") 
350.
 
351.
 
352.
REM --- Erstellen des neuen Nutzers --- 
353.
 
354.
REM - Flexibler Dsadd-Befehl - 
355.
echo %PROGRAM_DIR%\dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% %DSADD_PARAMETER_UPN% %DSADD_PARAMETER_FN% %DSADD_PARAMETER_LN% %DSADD_PARAMETER_DISPLAY% %DSADD_PARAMETER_PWD% %DSADD_PARAMETER_DESC% %DSADD_PARAMETER_MEMBEROF% %DSADD_PARAMETER_EMAIL% %DSADD_PARAMETER_HMDIR% %DSADD_PARAMETER_HMDRV% %DSADD_PARAMETER_PROFILE% %DSADD_PARAMETER_LOSCR% -mustchpwd yes -disabled yes 
356.
REM %PROGRAM_DIR%\dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% %DSADD_PARAMETER_UPN% %DSADD_PARAMETER_FN% %DSADD_PARAMETER_LN% %DSADD_PARAMETER_DISPLAY% %DSADD_PARAMETER_PWD% %DSADD_PARAMETER_DESC% %DSADD_PARAMETER_MEMBEROF% %DSADD_PARAMETER_EMAIL% %DSADD_PARAMETER_HMDIR% %DSADD_PARAMETER_HMDRV% %DSADD_PARAMETER_PROFILE% %DSADD_PARAMETER_LOSCR% -mustchpwd yes -disabled yes 1>NUL 2>&1 
357.
if not %ERRORLEVEL%==0 goto DSADD_ERROR 
358.
 
359.
 
360.
REM - Beispiel fuer festen Dsadd-Befehl, nur zur Dokumentation- 
361.
REM dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% -upn %NEW_SAMID%@%DNS_DOMAINNAME% -fn %NEW_FIRSTNAME% -ln %NEW_LASTNAME% -display "%NEW_LASTNAME%, %NEW_FIRSTNAME%" -pwd %NEW_STDPWD% -desc "%NEW_DESCRIPTION%" -memberof %NEW_GROUPS% -email %NEW_FIRSTNAME%.%NEW_LASTNAME%@%MAIL_SUFFIX% -hmdir "\\%NEW_HMSRV%\%NEW_SAMID%$" -hmdrv %NEW_HOME_DRV% -profile "\\%NEW_PROFILE_PATH%\%NEW_SAMID%" -loscr "%NEW_LOGONSCRIPT%" -mustchpwd yes -disabled yes 
362.
 
363.
 
364.
REM --- Vergeben der Rechte fuer das Profilverzeichnis --- 
365.
 
366.
if "%IF_NEW_PROFILE_PATH%"=="no" goto NO_SET_CACLS_PROFILE_PATH 
367.
 
368.
REM set /A TRIALS=0 1>NUL 2>&1 
369.
REM set /A SLEEP_PARAMETER=0 1>NUL 2>&1 
370.
 
371.
REM :SET_CACLS_PROFILE_PATH_BEGIN 
372.
REM if %TRIALS%==10 goto SET_CACLS_PROFILE_PATH_ERROR 
373.
REM .\Programs\sleep %SLEEP_PARAMETER% 
374.
 
375.
REM set /A TRIALS=%TRIALS% + 1 1>NUL 2>&1 
376.
REM set /A SLEEP_PARAMETER=%SLEEP_PARAMETER% + 5 1>NUL 2>&1 
377.
 
378.
echo cacls.exe \\%NEW_PROFILE_PATH%\%NEW_SAMID% /T /E /G %NEW_SAMID%@%DNS_DOMAINNAME%:C /R "Domain Users" 
379.
REM cacls.exe \\%NEW_PROFILE_PATH%\%NEW_SAMID% /T /E /G %NEW_SAMID%@%DNS_DOMAINNAME%:C /R "Domain Users" 1>NUL 2>&1 
380.
REM if %ERRORLEVEL%==0 (goto SET_CACLS_PROFILE_PATH_GO_ON) else (goto SET_CACLS_PROFILE_PATH_BEGIN) 
381.
 
382.
REM :SET_CACLS_PROFILE_PATH_GO_ON 
383.
REM set IF_CACLS_PROFILE_PATH=yes 
384.
REM goto SET_CACLS_PROFILE_PATH_END 
385.
 
386.
REM :SET_CACLS_PROFILE_PATH_ERROR 
387.
REM set IF_CACLS_PROFILE_PATH=no 
388.
REM echo. 
389.
REM echo Es gab Probleme beim Setzen der Berechtigungen des Profilverzeichnisses. 
390.
REM echo Bitte pruefen Sie die Log-Datei. 
391.
REM echo -------------------------------------------------- 
392.
REM goto SET_CACLS_PROFILE_PATH_END 
393.
 
394.
REM :SET_CACLS_PROFILE_PATH_END 
395.
REM set TRIALS= 
396.
REM set SLEEP_PARAMETER= 
397.
 
398.
:NO_SET_CACLS_PROFILE_PATH 
399.
 
400.
 
401.
REM --- Vergeben der Rechte fuer das Homeverzeichnis --- 
402.
 
403.
if "%IF_NEW_HMSRV%"=="no" goto NO_SET_CACLS_HOMEDIR 
404.
 
405.
REM set /A TRIALS=0 1>NUL 2>&1 
406.
REM set /A SLEEP_PARAMETER=0 1>NUL 2>&1 
407.
 
408.
REM :SET_CACLS_HOMEDIR_BEGIN 
409.
REM if %TRIALS%==10 goto SET_CACLS_HOMEDIR_ERROR 
410.
REM .\Programs\sleep %SLEEP_PARAMETER% 
411.
 
412.
REM set /A TRIALS=%TRIALS% + 1 1>NUL 2>&1 
413.
REM set /A SLEEP_PARAMETER=%SLEEP_PARAMETER% + 5 1>NUL 2>&1 
414.
 
415.
echo cacls.exe \\%NEW_HMSRV%\d$\Data\Users\%NEW_SAMID% /T /E /G %NEW_SAMID%@%DNS_DOMAINNAME%:C 
416.
REM cacls.exe \\%NEW_HMSRV%\d$\Data\Users\%NEW_SAMID% /T /E /G %NEW_SAMID%@%DNS_DOMAINNAME%:C 1>NUL 2>&1 
417.
REM if %ERRORLEVEL%==0 (goto SET_CACLS_HOMEDIR_GO_ON) else (goto SET_CACLS_HOMEDIR_BEGIN) 
418.
 
419.
REM :SET_CACLS_HOMEDIR_GO_ON 
420.
REM set IF_CACLS_HOMEDIR=yes 
421.
REM goto SET_CACLS_HOMEDIR_END 
422.
 
423.
REM :SET_CACLS_HOMEDIR_ERROR 
424.
REM set IF_CACLS_HOMEDIR=no 
425.
REM echo. 
426.
REM echo Es gab Probleme beim Setzen der Berechtigungen des Homeverzeichnisses. 
427.
REM echo Bitte pruefen Sie die Log-Datei. 
428.
REM echo -------------------------------------------------- 
429.
REM goto SET_CACLS_HOMEDIR_END 
430.
 
431.
REM :SET_CACLS_HOMEDIR_END 
432.
REM set TRIALS= 
433.
REM set SLEEP_PARAMETER= 
434.
 
435.
:NO_SET_CACLS_HOMEDIR 
436.
 
437.
 
438.
REM --- Weitere Konfigurationen --- 
439.
 
440.
BEISPIEL 
441.
 
442.
 
443.
REM --- Erstellen der Textdatei fuer das Antragsformular --- 
444.
 
445.
REM -Abfrage nach den Gruppen- 
446.
 
447.
for /f "delims=," %%a in (%TEMPFILE_DIR%\%TPL_SAMID%_Groups_Query_01.txt) do @echo %%a>> %TEMPFILE_DIR%\%TPL_SAMID%_Groups_Query_Form.txt 
448.
 
449.
for /f "tokens=2 delims==" %%a in (%TEMPFILE_DIR%\%TPL_SAMID%_Groups_Query_Form.txt) do call :SET_NEW_QUERY_GROUPS_FORM_VAR "%%a" 
450.
goto GO_ON_QUERY_GROUPS_FORM 
451.
 
452.
:SET_NEW_QUERY_GROUPS_FORM_VAR 
453.
set NEW_GROUPS_FORM=%NEW_GROUPS_FORM% %1, 
454.
goto :EOF 
455.
 
456.
:GO_ON_QUERY_GROUPS_FORM 
457.
if "%NEW_GROUPS_FORM:~0,1%" equ " " set "NEW_GROUPS_FORM=%NEW_GROUPS_FORM:~1%" 
458.
set NEW_GROUPS_FORM=%NEW_GROUPS_FORM:~0,-1% 
459.
 
460.
 
461.
echo FormIntention=%FORM_INTENTION%>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
462.
echo UserID=%NEW_SAMID%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
463.
echo UserNameRev=%NEW_LASTNAME%, %NEW_FIRSTNAME%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
464.
echo Department=%FORM_DEPARTMENT%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
465.
echo ValidDate=%FORM_VALID_DATE%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
466.
echo Motivation=%FORM_MOTIVATION%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
467.
echo UserType=%FORM_USER_TYPE%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
468.
echo ChiefName=%FORM_CHIEF_NAME%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
469.
echo UserName=%NEW_FIRSTNAME% %NEW_LASTNAME%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
470.
echo Groups=%NEW_GROUPS_FORM%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
471.
echo AdministratorName=%ADMIN_LASTNAME%, %ADMIN_FIRSTNAME%>>%TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 
472.
 
473.
 
474.
REM --- Aufruf des Antragsformulars --- 
475.
 
476.
if exist %WINWORD_PATH%\%WINWORD_FILE_NAME% (goto CREATE_ACCOUNT_FORM_GO_ON) else (goto WINWORD_FIND_ERROR) 
477.
 
478.
:CREATE_ACCOUNT_FORM_GO_ON 
479.
copy /Y "%FORMFILE_DIR%\%FORMFILE_NAME%" "%LOGFILE_DIR%\%NEW_LASTNAME%_%NEW_FIRSTNAME%_%NEW_SAMID%_Create_Account_from_Template.doc" 1>NUL 2>&1 
480.
start %WINWORD_PATH%\%WINWORD_FILE_NAME% %LOGFILE_DIR%\%NEW_LASTNAME%_%NEW_FIRSTNAME%_%NEW_SAMID%_Create_Account_from_Template.doc /MFilltheFields 
481.
goto CREATE_ACCOUNT_FORM_END 
482.
 
483.
:WINWORD_FIND_ERROR 
484.
echo. 
485.
echo -------------------------------------------------- 
486.
echo. 
487.
echo Fehler beim Oeffnen des Antragsformulars. 
488.
echo Es ist kein Word-Programm installiert, bzw. das Word-Programm kann nicht gefunden werden. 
489.
echo. 
490.
echo -------------------------------------------------- 
491.
goto CREATE_ACCOUNT_FORM_END 
492.
 
493.
:CREATE_ACCOUNT_FORM_END 
494.
 
495.
 
496.
REM --- Ausgabe einer Log-Datei was mit welchen Werten angelegt wurde --- 
497.
 
498.
set CREATE_ACC_FROM_COPY_LOGFILE=%LOGFILE_DIR%\%NEW_LASTNAME%_%NEW_FIRSTNAME%_%NEW_SAMID%_Create_Account_from_Copy.log 
499.
 
500.
echo.>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
501.
echo ----- Log-Datei ueber die Anlage eines neuen Nutzerkontos auf Basis einer Vorlage ----->>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
502.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
503.
echo Erstellt von %ADMIN_FIRSTNAME% %ADMIN_LASTNAME% (Kennung: %USERNAME%) am %DATE%, um %TIME% Uhr.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
504.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
505.
echo Der Befehl zur Erstellung des Nutzers lautet:>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
506.
echo dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% %DSADD_PARAMETER_UPN% %DSADD_PARAMETER_FN% %DSADD_PARAMETER_LN% %DSADD_PARAMETER_DISPLAY% %DSADD_PARAMETER_PWD% %DSADD_PARAMETER_DESC% %DSADD_PARAMETER_MEMBEROF% %DSADD_PARAMETER_EMAIL% %DSADD_PARAMETER_HMDIR% %DSADD_PARAMETER_HMDRV% %DSADD_PARAMETER_PROFILE% %DSADD_PARAMETER_LOSCR% -mustchpwd yes -disabled yes>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
507.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
508.
echo --- Information zur Nutzervorlage --->>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
509.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
510.
echo Nachname: "%TPL_LASTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
511.
echo Vorname: "%TPL_FIRSTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
512.
echo Kennung: "%TPL_SAMID%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
513.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
514.
if "%IF_NEW_HMSRV%"=="no" (echo "Die Vorlage hat kein Homeverzeichnis.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo "Die Vorlage hat ein Homeverzeichnis.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
515.
if "%IF_NEW_PROFILE_PATH%"=="no" (echo "Die Vorlage hat kein Profilverzeichnis.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo "Die Vorlage hat ein Profilverzeichnis.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
516.
if "%IF_NEW_LOGONSCRIPT%"=="no" (echo "Die Vorlage hat kein Logon-Script.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo "Die Vorlage hat ein Logon-Script.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
517.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
518.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
519.
echo --- Information zum neuen Nutzer --->>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
520.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
521.
echo Nachname: "%NEW_LASTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
522.
echo Vorname: "%NEW_FIRSTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
523.
echo Kennung: "%NEW_SAMID%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
524.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
525.
echo Distinguished Name: "%NEW_DISTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
526.
echo User Principal Name: "%NEW_SAMID%@%DNS_DOMAINNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
527.
echo Anzeigename: "%NEW_LASTNAME%, %NEW_FIRSTNAME%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
528.
echo Beschreibung: "%NEW_DESCRIPTION%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
529.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
530.
echo Der Nutzer ist Mitglied in folgenden Gruppen:>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
531.
echo %NEW_GROUPS%>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
532.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
533.
echo Mailadresse: "%NEW_MAILADRESS_VALUE%">>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
534.
if "%IF_NEW_HMSRV%"=="no" (echo Homelaufwerk: "Es wurde kein Homelaufwerk vergeben.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo Home-Laufwerk: "%NEW_HOME_DRV%">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
535.
if "%IF_NEW_HMSRV%"=="no" (echo Homeverzeichnis: "Es wurde kein Homeverzeichnis erstellt.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo Homeverzeichnis-Freigabe: "\\%NEW_HMSRV%\%NEW_SAMID%$">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
536.
if "%IF_NEW_PROFILE_PATH%"=="no" (echo Profilverzeichnis: "Es wurde kein Profilverzeichnis erstellt".>>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo Profilverzeichnis: "\\%NEW_PROFILE_PATH%\%NEW_SAMID%">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
537.
if "%IF_NEW_LOGONSCRIPT%"=="no" (echo Logon-Script: "Es wurde kein Logon-Script eingestellt.">>"%CREATE_ACC_FROM_COPY_LOGFILE%") else (echo Logon-Script: "%NEW_LOGONSCRIPT%">>"%CREATE_ACC_FROM_COPY_LOGFILE%") 
538.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
539.
echo Es wurde ein Passwort zur Erstanmeldung vergeben.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
540.
echo Der Nutzer muss das Passwort bei der Erstanmeldung aendern.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
541.
echo Das Konto wurde deaktiviert.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
542.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
543.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
544.
echo !!! WICHTIG !!!>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
545.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
546.
echo --- Manuell notwendige Anpassungen:  --->>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
547.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
548.
if "%IF_CACLS_PROFILE_PATH%"=="no" echo Pruefen Sie die Berechtigungen auf dem Profilverzeichnis.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
549.
if "%IF_CACLS_HOMEDIR%"=="no" echo Pruefen Sie die Berechtigungen auf dem Homeverzeichnis.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
550.
echo Weitere notwendige Gruppen weisen Sie dem Nutzerkonto bitte manuell zu.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
551.
echo Einen anderen Standort im Active Directory weisen Sie dem Nutzerkonto bitte manuell zu.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
552.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
553.
echo !!! WICHTIG !!!>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
554.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
555.
echo.>>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
556.
echo ----- Ende ----->>"%CREATE_ACC_FROM_COPY_LOGFILE%" 
557.
 
558.
goto NO_ERRORS 
559.
 
560.
REM --- Abbrueche durch fehlerhafte Eingaben --- 
561.
 
562.
REM -Abbruch nach der Frage ob die Eingaben korrekt sind- 
563.
:ALL_INPUT_QUESTION_STOP 
564.
goto BREAK_PROGRAM 
565.
 
566.
 
567.
REM -Fehler beim Dsadd-Befehl- 
568.
:DSADD_ERROR 
569.
 
570.
set CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE=%LOGFILE_DIR%\%NEW_SAMID%_Create_Account_from_Copy_Dsadd_Error.log 
571.
 
572.
echo.>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
573.
echo ----- Log-Datei fuer Dsadd-Error ----->>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
574.
echo.>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
575.
echo Erstellt am %DATE%, um %TIME% Uhr.>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
576.
echo.>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
577.
echo Der Befehl zur Erstellung des Nutzers lautet:>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
578.
echo dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% %DSADD_PARAMETER_UPN% %DSADD_PARAMETER_FN% %DSADD_PARAMETER_LN% %DSADD_PARAMETER_DISPLAY% %DSADD_PARAMETER_PWD% %DSADD_PARAMETER_DESC% %DSADD_PARAMETER_MEMBEROF% %DSADD_PARAMETER_EMAIL% %DSADD_PARAMETER_HMDIR% %DSADD_PARAMETER_HMDRV% %DSADD_PARAMETER_PROFILE% %DSADD_PARAMETER_LOSCR% -mustchpwd yes -disabled yes>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
579.
echo.>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
580.
echo Die Fehlermeldung beim Befehl zur Erstellung des Nutzers lautet:>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
581.
dsadd user "%NEW_DISTNAME%" -samid %NEW_SAMID% %DSADD_PARAMETER_UPN% %DSADD_PARAMETER_FN% %DSADD_PARAMETER_LN% %DSADD_PARAMETER_DISPLAY% %DSADD_PARAMETER_PWD% %DSADD_PARAMETER_DESC% %DSADD_PARAMETER_MEMBEROF% %DSADD_PARAMETER_EMAIL% %DSADD_PARAMETER_HMDIR% %DSADD_PARAMETER_HMDRV% %DSADD_PARAMETER_PROFILE% %DSADD_PARAMETER_LOSCR% -mustchpwd yes -disabled yes 2>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
582.
echo.>>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
583.
echo ----- Ende ----->>"%CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE%" 
584.
 
585.
echo -------------------------------------------------- 
586.
echo. 
587.
echo Es gab ein Problem beim Dsadd-Befehl. 
588.
echo Home- und Profilverzeichnisse koennten erstellt worden sein. 
589.
echo. 
590.
echo -------------------------------------------------- 
591.
goto BREAK_PROGRAM 
592.
 
593.
 
594.
REM -Falsche Kennung des neuen Nutzers- 
595.
:NEW_USER_SAMID_ERROR 
596.
echo. 
597.
echo Ein Nutzerkonto mit der Kennung "%NEW_SAMID%" existiert bereits. 
598.
 
599.
:NEW_USER_SAMID_ERROR_WRONG_KEY 
600.
set /P YES_NO_QUESTION_VAR=Wollen Sie eine andere Kennung eingeben? J/N :  
601.
if /i "%YES_NO_QUESTION_VAR%"=="J" (goto NEW_USER_SAMID_ERROR_GO_ON) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (goto NEW_USER_SAMID_ERROR_STOP) else (goto NEW_USER_SAMID_ERROR_WRONG_KEY)) 
602.
 
603.
:NEW_USER_SAMID_ERROR_GO_ON 
604.
set NEW_SAMID= 
605.
set YES_NO_QUESTION_VAR= 
606.
goto NEW_USER_SAMID_INPUT 
607.
 
608.
:NEW_USER_SAMID_ERROR_STOP 
609.
goto BREAK_PROGRAM 
610.
 
611.
 
612.
REM -Falsche Kennung des alten Nutzers- 
613.
:TPL_USER_SAMID_ERROR 
614.
echo. 
615.
echo Ein Nutzerkonto mit der Kennung "%TPL_SAMID%" existiert nicht. 
616.
 
617.
:TPL_USER_SAMID_ERROR_WRONG_KEY 
618.
set /P YES_NO_QUESTION_VAR=Wollen Sie eine andere Kennung eingeben? J/N :  
619.
if /i "%YES_NO_QUESTION_VAR%"=="J" (goto TPL_USER_SAMID_ERROR_GO_ON) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (goto TPL_USER_SAMID_ERROR_STOP) else (goto TPL_USER_SAMID_ERROR_WRONG_KEY)) 
620.
 
621.
:TPL_USER_SAMID_ERROR_GO_ON 
622.
set TPL_SAMID= 
623.
set YES_NO_QUESTION_VAR= 
624.
goto TPL_USER_SAMID_INPUT 
625.
 
626.
:TPL_USER_SAMID_ERROR_STOP 
627.
goto BREAK_PROGRAM 
628.
 
629.
 
630.
:BREAK_PROGRAM 
631.
echo -------------------------------------------------- 
632.
echo. 
633.
echo Das Programm wird abgebrochen. 
634.
echo Es wurde kein neues Nutzerkonto angelegt. 
635.
echo. 
636.
echo -------------------------------------------------- 
637.
goto CLEAR_SCRIPTWORK 
638.
 
639.
 
640.
:NO_ERRORS 
641.
echo -------------------------------------------------- 
642.
echo. 
643.
echo Das Nutzerkonto wurde erstellt. 
644.
:NEW_SEE_LOGFILE_ERROR_WRONG_KEY 
645.
set /P YES_NO_QUESTION_VAR=Wollen Sie die Log-Datei sehen? J/N :  
646.
if /i "%YES_NO_QUESTION_VAR%"=="J" (start notepad "%CREATE_ACC_FROM_COPY_LOGFILE%") else (if /i "%YES_NO_QUESTION_VAR%"=="N" (echo Sie finden die Log-Datei hier: "%CREATE_ACC_FROM_COPY_LOGFILE%".) else (goto NEW_SEE_LOGFILE_ERROR_WRONG_KEY)) 
647.
set YES_NO_QUESTION_VAR= 
648.
echo. 
649.
echo -------------------------------------------------- 
650.
echo. 
651.
:NEW_NEXT_ACCOUNT_ERROR_WRONG_KEY 
652.
set /P YES_NO_QUESTION_VAR=Wollen Sie ein weiteres Nutzerkonto erstellen? J/N :  
653.
if /i "%YES_NO_QUESTION_VAR%"=="J" (set IF_NEW_NEXT_ACCOUNT=yes) else (if /i "%YES_NO_QUESTION_VAR%"=="N" (set IF_NEW_NEXT_ACCOUNT=no) else (goto NEW_NEXT_ACCOUNT_ERROR_WRONG_KEY)) 
654.
set YES_NO_QUESTION_VAR= 
655.
echo. 
656.
echo -------------------------------------------------- 
657.
 
658.
 
659.
:CLEAR_SCRIPTWORK 
660.
%PROGRAM_DIR%\sleep 2 
661.
REM --- Temporaere Dateien loeschen --- 
662.
 
663.
del %TEMPFILE_DIR%\%FORM_FILL_FILE_NAME% 1>NUL 2>&1 
664.
del %TEMPFILE_DIR%\%TPL_SAMID%_*.txt 1>NUL 2>&1 
665.
del %TEMPFILE_DIR%\%USERNAME%_*.txt 1>NUL 2>&1 
666.
 
667.
 
668.
REM ------------------ Variable loeschen ------------------ 
669.
 
670.
set ADMIN_FIRSTNAME= 
671.
set ADMIN_LASTNAME= 
672.
set CREATE_ACC_FROM_COPY_LOGFILE= 
673.
set CREATE_ACC_FROM_COPY_DSADD_ERROR_LOGFILE= 
674.
set DOMAINNAME= 
675.
set DNS_DOMAINNAME= 
676.
set DSADD_PARAMETER_UPN= 
677.
set DSADD_PARAMETER_FN= 
678.
set DSADD_PARAMETER_LN= 
679.
set DSADD_PARAMETER_DISPLAY= 
680.
set DSADD_PARAMETER_PWD= 
681.
set DSADD_PARAMETER_DESC= 
682.
set DSADD_PARAMETER_MEMBEROF= 
683.
set DSADD_PARAMETER_EMAIL= 
684.
set DSADD_PARAMETER_HMDIR= 
685.
set DSADD_PARAMETER_HMDRV= 
686.
set DSADD_PARAMETER_PROFILE= 
687.
set DSADD_PARAMETER_LOSCR= 
688.
set FORM_CHIEF_NAME= 
689.
set FORM_DEPARTMENT= 
690.
set FORM_INTENTION= 
691.
set FORM_MOTIVATION= 
692.
set FORM_USER_TYPE= 
693.
set FORM_VALID_DATE= 
694.
set FORMFILE_DIR= 
695.
set FORMFILE_NAME= 
696.
set FORM_FILL_FILE_NAME= 
697.
set IF_CACLS_HOMEDIR= 
698.
set IF_CACLS_PROFILE_PATH= 
699.
set IF_NEW_HMSRV= 
700.
set IF_NEW_LOGONSCRIPT= 
701.
set IF_NEW_PROFILE_PATH= 
702.
set LOGFILE_DIR= 
703.
set MAIL_SUFFIX= 
704.
set NEW_DESCRIPTION= 
705.
set NEW_DISTNAME= 
706.
set NEW_FIRSTNAME= 
707.
set NEW_GROUPS= 
708.
set NEW_GROUPS_FORM= 
709.
set NEW_HOME_DRV= 
710.
set NEW_HMSRV= 
711.
set NEW_LASTNAME= 
712.
set NEW_LOGONSCRIPT= 
713.
set NEW_MAILADRESS_VALUE= 
714.
set NEW_OBJECTPLACE= 
715.
set NEW_QUERY_DESC_VAR= 
716.
set NEW_QUERY_DN_VAR_01= 
717.
set NEW_QUERY_DN_VAR_02= 
718.
set NEW_QUERY_DN_VAR_03= 
719.
set NEW_QUERY_HMDIR_VAR= 
720.
set NEW_QUERY_HMSRV_VAR= 
721.
set NEW_QUERY_LOGONSCRIPT_VAR= 
722.
set NEW_QUERY_PROFILE_PATH= 
723.
set NEW_QUERY_PROFILE_VAR= 
724.
set NEW_PROFILE_PATH= 
725.
set NEW_SAMID= 
726.
set NEW_STDPWD= 
727.
set PROGRAM_DIR= 
728.
set TEMPFILE_DIR= 
729.
set TPL_FIRSTNAME= 
730.
set TPL_LASTNAME= 
731.
set TPL_QUERY_ADMIN_FIRSTNAME_VAR= 
732.
set TPL_QUERY_ADMIN_LASTNAME_VAR= 
733.
set TPL_QUERY_FIRSTNAME_VAR= 
734.
set TPL_QUERY_LASTNAME_VAR= 
735.
set TPL_SAMID= 
736.
set WINWORD_FILE_NAME= 
737.
set WINWORD_PATH= 
738.
set YES_NO_QUESTION_VAR= 
739.
 
740.
if "%IF_NEW_NEXT_ACCOUNT%"=="yes" (goto BEGIN_OF_SCRIPT) else (goto END_OF_SCRIPT) 
741.
 
742.
:END_OF_SCRIPT 
743.
set IF_NEW_NEXT_ACCOUNT= 
744.
REM exit 
745.
 
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Gruppenrichtlinien-Vorlage Office 2013 auf einem DC 2003 (5)

Frage von bluepython zum Thema Windows Server ...

Batch & Shell
Printerport mit Powershell anlegen (12)

Frage von Druide83 zum Thema Batch & Shell ...

Batch & Shell
gelöst Recursiv Unterordner anlegen Powershell (2)

Frage von Voiper zum Thema Batch & Shell ...

Microsoft Office
gelöst Makro wird beim öffnen Vorlage nicht ausgeführt (8)

Frage von Sunny89 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...