esry84
Goto Top

Batch erstellen um User in die AD hinzuzufügen

Hallo!

Kurz zu mir ;)

Ich mache im Moment eine Ausbildung als Netzwerktechniker!
Die Aufgabe besteht darin durch Scripte User anzulegen in der ADS, jeden einen Ordner erstellen und als Home Laufwerk zuzuweisen!
Desweiteren soll der User in eine Gruppe verschoben werden!

Da unser Mentor rein gar nichts dazu sagte, habe ich mich vor 2 Tagen daran gemacht das Problem zu lösen!

Leider nur mit mäßigen Erfolg

Ich habe verdammt viele Foren zum Thema Batch gelesen und auch schon einiges geschafft!

Noch kurz zur Aufgabe, die User sollen aus Textdateien angelegt werden, diese sehen folgendermaßen aus:

Max Mustermann
Heinz Kowalski

usw

Der Username soll sich aus dem ersten Buchstaben des Vornamens und max. 7 Zeichen des Nachnamens bestehen.

Ich habe nun schon ein Script geschrieben mit hilfe eines guten Tutorials hier auf dem Board ;) , welches jeweils den Anfangsbuchstaben auslesen kann und die 7 des nachnamens.
Diese Speicher ich zu testzwecken in einer Textdatei ab:

das Ergebnis bei meinem Script:

M
H
Musterm
Kowalsk

nur wie bekomm ich dies zusammen und eventuell noch normalisiert?
ich hätte gern alle Usernamen kleingeschrieben damit es nicht zu Missverständnissen kommt!


Hier mal der Teil des Scriptes für die namen:

setlocal enabledelayedexpansion

for /f "tokens=1" %%i in (namen.txt) do (
set a=%%i
set a=!a:~0,1!
echo !a! >> hier.txt
)
for /f "tokens=2" %%i in (namen.txt) do (
set a=%%i
set a=!a:~0,7!
echo !a! >> hier.txt
)

Ich bin wirklich mit meinem Latein am Ende face-sad

Content-Key: 201862

Url: https://administrator.de/contentid/201862

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: catachan
catachan 16.02.2013 um 16:11:15 Uhr
Goto Top
Hi

Muss es unbedingt batch sein ? In der Powershell geht das wesentlich eleganter.

Lg
Mitglied: Esry84
Esry84 16.02.2013 um 17:18:35 Uhr
Goto Top
Ja leider, es wird so verlangt!
Ich habe auch schon bessere Varianten gefunden während meines Suchens ^^
Mitglied: rubberman
rubberman 16.02.2013 aktualisiert um 19:06:56 Uhr
Goto Top
Hallo Esry84, willkommen im Forum.

Mit Batch ist das tatsächlich etwas suboptimal.

1. Teste ...
@echo off &setlocal
>"hier.txt" (  
  for /f "usebackq tokens=1*" %%i in ("namen.txt") do (  
    set "vorname=%%i"  
    set "nachname=%%j"  
    setlocal EnableDelayedExpansion
    set "name=!vorname:~0,1!!nachname:~0,7!"  
    for %%k in ("A=a","B=b","C=c","D=d","E=e","F=f","G=g","H=h","I=i","J=j","K=k","L=l","M=m","N=n","O=o","P=p","Q=q","R=r","S=s","T=t","U=u","V=v","W=w","X=x","Y=y","Z=z"," =") do (  
      set "name=!name:%%~k!"  
    )
    echo !name!
    endlocal
  )
)

und 2. Bete ...
dass nie so etwas wie "Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Freiherr von und zu Guttenberg" (natürlich nur des Namens wegen face-wink) in deiner Textdatei auftaucht. Ein Vor- und ein Nachname, Punkt sonst nix.

Grüße
rubberman
Mitglied: Esry84
Esry84 16.02.2013 um 20:29:01 Uhr
Goto Top
Cool ich danke dir ;)
Es funktioniert ;) ;) ;)

Mit was sollte man besser arbeiten?
Mitglied: rubberman
rubberman 16.02.2013 um 21:54:23 Uhr
Goto Top
Hallo Esry84.

Mit was sollte man besser arbeiten?
So ziemlich jede Programmier-/Scriptsprache ist besser geeignet. Arrays wären nett, implementierte Funktionen oder Methoden für Kleinschreibung ebenfalls.
Also Gegenfrage: Mit welchen Sprachen bist du vertraut?

Grüße
rubberman
Mitglied: Esry84
Esry84 16.02.2013 um 22:19:13 Uhr
Goto Top
C++ ein wenig im Moment!
Möchte mich aber gern weiterbilden, nur bin ich mir nicht sicher welche Sprache geeignet wäre!

Ja der Gedanke der Arrays kam mir ebenfalls als ich an dem Problem gesessen habe, nur leider fand ich keine Möglichkeit dies in einer cmd zu machen.

Ich habe noch eine frage, mein Script läuft nun, dh ich kann Benutzer in der ADS anlegen (mit den namen von dem Script hier), kann diesen eine Gruppe zuweisen und ein Homelaufwerk erstellen mit dem namen des Users!

Nun möchte ich das jeder User der sich anmeldet automatisch verschiedene Netzlaufwerke bekommt!
Das wollte ich über ein Anmeldescript lösen!
Das funktioniert auch einigermaßen, nur wie kann ich es in den User_erstellen Script schreiben das ich das Anmeldescript nicht per Hand eintragen muss in der ADS?
Mitglied: rubberman
rubberman 17.02.2013 aktualisiert um 02:19:54 Uhr
Goto Top
Hallo Esry84.

... das ich das Anmeldescript nicht per Hand eintragen muss in der ADS?
Ich habe noch nie etwas mit Benutzerverwaltung zu tun gehabt. Ich gehe aber davon aus dass du in deinem Script mit dsmod arbeitest, oder? In dem Fall hätte dsmod user die Option -loscr zu diesem Zweck. Mehr kann ich dazu aber nicht beitragen. Ggf. solltest du mal hier stöbern oder nachfragen.

Grüße
rubberman