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

Printed on: April 19, 2024 at 02:04 o'clock

Member: catachan
catachan Feb 16, 2013 at 15:11:15 (UTC)
Goto Top
Hi

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

Lg
Member: Esry84
Esry84 Feb 16, 2013 at 16:18:35 (UTC)
Goto Top
Ja leider, es wird so verlangt!
Ich habe auch schon bessere Varianten gefunden während meines Suchens ^^
Member: rubberman
rubberman Feb 16, 2013 updated at 18:06:56 (UTC)
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
Member: Esry84
Esry84 Feb 16, 2013 at 19:29:01 (UTC)
Goto Top
Cool ich danke dir ;)
Es funktioniert ;) ;) ;)

Mit was sollte man besser arbeiten?
Member: rubberman
rubberman Feb 16, 2013 at 20:54:23 (UTC)
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
Member: Esry84
Esry84 Feb 16, 2013 at 21:19:13 (UTC)
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?
Member: rubberman
rubberman Feb 16, 2013, updated at Feb 17, 2013 at 01:19:54 (UTC)
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