Microsoft MVPs inside





 MCSEboard.de MCSE Forum zu Windows XP / 2003 / 2008 Server & Windows Vista / Windows 7
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 05.03.2010, 08:15   #11
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.135
Hallo,

ich stelle mal eine Batch in mehreren Abschnitten ein.
Code:
@echo off
color 70
c:
cd\

set filename=%1
set filename=%filename:"=%
set EduGroup=%filename:~15,-4%

for /f "tokens=1 delims=\" %%i in ("%EduGroup%") do set Edu=%%i

for /f "tokens=2 delims=\" %%i in ("%EduGroup%") do set Group=%%i

set domain=DC=Lubeca,DC=local

:create OU for Education
dsadd OU "OU=%Edu%,%domain%"

:create OU for Group
dsadd OU "OU=%Group%,OU=%Edu%,%domain%"


:create sec Group for Education
dsadd Group "CN=%Edu%,OU=%Edu%,%domain%"

:create sec Group for user
dsadd Group "CN=%Group%,OU=%Group%,OU=%Edu%,%domain%"

dsmod group "CN=%Edu%,OU=%Edu%,%domain%" -addmbr "CN=%Group%,OU=%Group%,OU=%Edu%,%domain%" 

set ProfilDrive=e:
set HomeDrive=e:

:GroupHome
set GroupHome=%HomeDrive%\%Edu%\%Group%

if not exist %GroupHome% md %GroupHome%
net share %Group%=%GroupHome% /grant:Jeder,full /cache:none
cacls %GroupHome% /e /g %Group%:f
cacls %GroupHome% /e /g Dozenten:f
rem pause

if not exist %GroupHome%\1Aufgaben md %GroupHome%\1Aufgaben
cacls %GroupHome%\1Aufgaben /e /r %Group%
cacls %GroupHome%\1Aufgaben /e /g %Group%:r
cacls %GroupHome%\1Aufgaben /e /g Dozenten:f
rem pause

if not exist %GroupHome%\1Austausch md %GroupHome%\1Austausch
cacls %GroupHome%\1Austausch /e /g %Group%:f
cacls %GroupHome%\1Austausch /e /g Dozenten:f
rem pause


:loop
set /a skip+=1
echo %skip%
call :testeof
call :works
goto loop


:testeof
for /f "tokens=1 skip=%skip% delims=;" %%a in (%filename%) do set end=%%a & goto out
:out
if %end% equ Listend pause & exit
goto :eof

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 05.03.2010, 08:19   #12
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.135
Code:
:works
call :fetchline
call :CreateCanditateName
call :CreateUserFolder
call :CreateUser
call :Credentials
rem pause
goto :eof

:fetchline
for /f "tokens=1-3 skip=%skip% delims=;- " %%a in (%filename%) do (
 set firstname=%%a
 set surname=%%b 
 set password=%%c
rem  pause
 goto :eof
)

:CreateCanditateName
 set firstname=%firstname:ß=ss%
 set firstname=%firstname:ä=ae%
 set firstname=%firstname:ü=ue%
 set firstname=%firstname:ö=oe%
 set firstname=%firstname:Ä=Ae%
 set firstname=%firstname:Ü=Ue%
 set firstname=%firstname:Ö=Oe%
set firstname=%firstname: =%
 
set surname=%surname:ß=ss%
set surname=%surname:ä=ae%
set surname=%surname:ü=ue%
set surname=%surname:ö=oe%
set surname=%surname:Ä=Ae%
set surname=%surname:Ü=Ue%
set surname=%surname:Ö=Oe%
set surname=%surname: =%

set password=%password:ß=ss%
set password=%password:ä=ae%
set password=%password:ü=ue%
set password=%password:ö=oe%
set password=%password:Ä=Ae%
set password=%password:Ü=Ue%
set password=%password:Ö=oe%

set username=%surname%%firstname:~0,1%
set Candidate=%username: =%
set password=%password:	=%

set password=%firstname%



rem for /f "tokens=*" %%a in ('dsquery user -name %candidate% -o rdn') do if %%~a equ %candidate% set candidate=%candidate%1 
set candidate=%candidate: =%

rem echo %candidate%

rem pause

goto :eof

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 05.03.2010, 08:20   #13
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.135
Code:
:CreateUserFolder
set UserProfil=%ProfilDrive%\%Edu%\%Group%\%Candidate%Profil
set UserHome=%HomeDrive%\%Edu%\%Group%\%Candidate%Home
if not exist %UserProfil% md %UserProfil%
if not exist %UserHome% md %UserHome%
rem pause
goto :eof

:CreateUser
set UserString=CN=%Candidate%,OU=%Group%,OU=%Edu%,%domain%
dsadd user %UserString%
dsmod user %UserString% -pwd %password%
dsmod user %UserString% -fn %firstname%
dsmod user %UserString% -ln %surname%
dsmod user %UserString% -display %surname%,%firstname%
dsmod user %UserString% -disabled no
dsmod user %UserString% -pwdneverexpires yes
dsmod user %UserString% -profile \\%computername%\%Group%\%Candidate%Profil
dsmod user %UserString% -loscr login
dsmod user %UserString% -hmdir ""
dsmod user %UserString% -hmdrv ""
dsmod user %UserString% -canchpwd yes
dsmod user %UserString% -mustchpwd yes

set SecGroupString="CN=%Group%,OU=%Group%,OU=%Edu%,%domain%" 

dsmod group %SecGroupString% -addmbr %UserString%

rem pause
goto :eof

:Credentials
cacls %UserProfil% /e /g %Candidate%:f
cacls %UserHome% /e /g %Candidate%:f
cacls %UserProfil%\* /e /g %Candidate%:f
cacls %UserHome%\* /e /g %Candidate%:f
cacls %UserProfil% /e /g Dozenten:f
cacls %UserHome% /e /g Dozenten:f
cacls %UserProfil%\* /e /g Dozenten:f
cacls %UserHome%\* /e /g Dozenten:f
cacls %UserProfil% /e /r %Group%
cacls %UserHome% /e /r %Group%
cacls %UserProfil%\* /e /r %Group%
cacls %UserHome%\* /e /r %Group%
cacls %UserProfil% /e /r ZimmerT
cacls %UserHome% /e /r ZimmerT
cacls %UserProfil%\* /e /r ZimmerT
cacls %UserHome%\* /e /r ZimmerT
cacls %UserProfil% /e /r GiesenbergR
cacls %UserHome% /e /r GiesenbergR
cacls %UserProfil%\* /e /r GiesenbergR
cacls %UserHome%\* /e /r GiesenbergR
cacls %UserProfil% /e /r Jeder
cacls %UserHome% /e /r Jeder
subinacl /subdirectories %UserProfil% /setowner=%Candidate%
subinacl /subdirectories %UserHome% /setowner=%Candidate%
rem pause
goto :eof

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 05.03.2010, 11:20   #14
Expert Member
 
Benutzerbild von NorbertFe
 
Offline
Registriert seit: 07-2007
Beiträge: 15.168
Zitat von rolando2410 Beitrag anzeigen
Übrigens kann die Lösung eines Problems nicht sein, dass man das Problem umgeht und verdrängt.
Wenn man das falsche Werkzeug benutzt ist aber genau das die einzige Lösung.

Bye
Norbert

Signatur
Frank, I never thought I'd say this again. I'm getting the pig!

    Mit Zitat antworten
Alt 05.03.2010, 15:36   #15
Newbie
 
Offline
Registriert seit: 03-2010
Beiträge: 6
Erstmal vielen Dank für die zahlreichen Antworten!

Ihr habt mich aber immer noch nicht überzeugt, dass dsadd user das falsche Werkzeug ist, denn worin sollte der Unterschied liegen, ob der user per Hand oder Kommandozeile erzeugt wird? Hauptsache er steht mit den richtigen Einstellungen im AD, den Rest erledigt das Betriebssystem.
Also muss in meiner Befehlszeile der Fehler liegen.

Ich weiß ich bin stur......
    Mit Zitat antworten
Alt 05.03.2010, 19:51   #16
Expert Member
 
Benutzerbild von Cybquest
 
Offline
Registriert seit: 12-2006
Ort: Weinsberg
Beiträge: 1.510
Im AD steht zwar alles drin, aber auch das AD (bzw. Betriebssystem) erzeugt keine Ordner!
Das macht in diesem Fall z.B. das entspr. SnapIn, über das man einen User anlegt.

Aber, ehrlich gesagt, ich geb jetzt auf...

Signatur
My name is Frank, you can say you to me.

    Mit Zitat antworten
Alt 05.03.2010, 23:06   #17
Super Moderator
 
Benutzerbild von GuentherH
 
Offline
Registriert seit: 02-2004
Ort: Graz (Styria)
Beiträge: 17.594
Ich weiß ich bin stur......
Genau dieser Meinung vertrat auch der Heimwerker, der an einer Betonmauer eine Türklinke befestigte und sich wunderte warum er trotzdem immer mit dem Kopf gegen die Wand rannte.
Schließlich befindet sich doch an jeder Türklinke auch ein Tür

LG Günther

Signatur
MVP Windows Server [Small Business Server]

    Mit Zitat antworten
Alt 06.03.2010, 10:18   #18
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.135
Zitat von rolando2410 Beitrag anzeigen
....Ihr habt mich aber immer noch nicht überzeugt, ....Ich weiß ich bin stur......
Niemand hier will (dich) überzeugen, wir missionieren nicht; wir geben Rat, geben unser Wissen und unsere Erkenntnis weiter. Wir therapieren auch keine Beratungsresistenz.

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 06.03.2010, 20:51   #19
Expert Member
 
Benutzerbild von NorbertFe
 
Offline
Registriert seit: 07-2007
Beiträge: 15.168
Zitat von rolando2410 Beitrag anzeigen
Ihr habt mich aber immer noch nicht überzeugt, dass dsadd user das falsche Werkzeug ist,
Ist das hier unsere Aufgabe, oder wie?

denn worin sollte der Unterschied liegen, ob der user per Hand oder Kommandozeile erzeugt wird?
Bei ersterem wird der HomeOrdner erzeugt und bei zweiterem nicht. War das überzeugend?

Hauptsache er steht mit den richtigen Einstellungen im AD, den Rest erledigt das Betriebssystem.
Also muss in meiner Befehlszeile der Fehler liegen.
Na dann warten wir mal, ob du die richtige Befehlszeile dann hier auch präsentierst.

Ich weiß ich bin stur......
"stur" ist das falsche Adjektiv.

Bye
Norbert

Signatur
Frank, I never thought I'd say this again. I'm getting the pig!

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2K3 - dsadd user ....Parameter RealJoe Windows Server Forum 3 19.06.2009 14:03
dsadd user kann User nicht in der OU users anlegen redwood Windows Forum — Allgemein 8 29.08.2008 16:43
dsadd user ~~M*C*S*B~~ Windows Forum — Allgemein 6 14.07.2008 22:36
"dsadd user" mit mehreren Ebenen in der OU Christoph_A4 Windows Server Forum 2 06.01.2008 19:02
Userlaufwerk mappt nicht wenn User mit dsadd erstellt wird? onestone Windows Server Forum 2 28.04.2005 18:22


Alle Zeitangaben in MEZ/CET. Es ist jetzt 06:25 Uhr. Seite generiert in 0,071 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang