coldzero
Goto Top

Per VBS Benutzer in AD einfügen

Anfänger in sachen VBS!

Moin Moin,

den Unten stehenden Quelltext habe ich bereits bekommen gehabt und soll diesen nun wie folgt erweitern.

1. das aus einer CSV Datei die Benutzer in der AD angelegt werden.
2. Aus einer MySQL Datenbank.
Hierbei soll sichergestellt werden:
- das benutzer nicht Doppelt angelegt werden
- wenn ein Benutzer in der AD steht aber nicht in der DB das dieser nicht gelöscht wird
- OUs angelegt werden wenn diese noch nicht existieren.

Was diese beiden Punkte angeht komme ich nicht weiter - habe bei einer bekannten Suchmaschine auch schon geforscht und nichts gefunden. Denke hier gibt es einige die mir weiterhelfen könnten.

Hintergrund der ganzen geschichte ist das mein Cheffe beide Varianten haben will da er noch nicht weiß wie er es handhaben will.
Global über eine MySQL oder Lokal für das wir Admins das direkt einfach Administrieren und diese CSV datei bei uns aufm Server rumliegt.

Kommentierung des Quelltext (ADDUSER.BAT):
@echo off // Systemnachrichten nicht angezeigt
SET /P Benutzername=Benutzername: // Variable “Benutzer“ deklariert
SET /P Vorname=Vorname:		 // Variable “Vorname“ deklariert
SET /P Nachname=Nachname		 // Variable “Nachname“ deklariert
echo %benutzername%,%vorname%,%nachname% > adduser.txt  // Die Eingaben werden in die Datei adduser.txt geschrieben

ADDUSER.VBS // Ausführung des Scripts
Kommentierung des Quelltext (ADDUSER.VBS):
Set fso = CreateObject("Scripting.FileSystemObject") // Objekt wird erstellt um eine Textdatei zu öffnen  
Set f = fso.OpenTextFile ("adduser.txt",1,0) // Textdatei wird geöffnet  
Zeile = f.readLine // Liest Zeile für Zeile aus
Feld = split(Zeile,",") // Felder mit Komma getrennt  
Benutzer = Feld(0) // Eingabefeld Loginname
Vorname = Feld(1) // Eingabefeld Vorname
Nachname = Feld(2) // Eingabefeld Nachname
f.Close // Datei wird geschlossen
Set ouo = GetObject("LDAP://CN=Users,DC=gruppe1,DC=local") // Öffnet Gruppe Users in der Domäne  
Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) // Legt den User an  
b.Put "sAMAccountName", Benutzer // Schreibt Benutzernamen ins AD  
b.Put "displayName", Vorname & " " & Nachname // Schreibt den Anzeigenamen ins AD  
b.Put "givenName", Vorname // Schreibt den Vorname ins AD  
b.Put "sn", Nachname // Schreibt den Nachnamen ins AD  
b.Put "userAccountControl", 66082 // PW läuft nicht ab  
b.Put "userPrincipalName", Benutzer & "@gruppe1.local" // Anmeldename für Domäne  
b.Put "pwdLastSet",0 // Benutzer muss PW bei Erstanmeldung selbst wählen  
b.SetInfo // speichert die Informationen ab 
b.AccountDisabled = False // Account des Benutzer ist aktiv
b.SetInfo // speichert die Informationen ab
Wm{Beispiel eines Zugriffs auf das AD.odt} 

Danke für Eure hilfe.

Gruß Zero


[Edit Biber] Die beide Copy&paste-Schnipsel in Codetags gesetzt, weil jeder Kommentarmarker (Doppelslash) zu einer Textformatierungsanweisung Kursivtext ein/aus geführt hat. [/Edit]

Content-ID: 143857

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

Snowman25
Snowman25 31.05.2010 um 11:40:13 Uhr
Goto Top
Gibt bereits zig Themen in diesem Forum mit genau dieser Problematik. Einfach mal die Forensuche bemühen!
ColdZero
ColdZero 31.05.2010 um 11:45:21 Uhr
Goto Top
Moin,

habe ich aber nir das gefunden was ICH suche geschweigeden mir wurde nie angezeigt was ich brauche - kann auch sein das ich falsche suchbegriffe genutzt habe. Aber mehr als MySQL AD VBS was die schlagwörter sind - da spruckt er mir auch nicht genug aus.

Wenn du das SO gut weißt - kannst mir ja ein paar Links zukommen lassen, anstatt hier unfreundlich rumzumotzen ;)

Grüzdi
Snowman25
Snowman25 31.05.2010 um 12:17:50 Uhr
Goto Top
Moin @ColdZero,

Codeschnipsel bitte immer mit <co‍de> und </co‍de> umranden
Als erstes würe ich dir empfehlen, alle Eingabeformen auf das gleiche Zwischenergebnis (einheitliches Format) zu bringen (adduser.txt).
die adduser.txt der manuellen Eingabe per Batch ist ja schon CSV-ähnlich. Je nach Formatierung der CSV kannst du die Einträge direkt übernehmen.
Ansonsten:
CSV-Dateien lassen sich dank immer gleichen Formats prima über eine FOR-Schleife parsen. MySQL-Statements ließen sich über ein entsprechendes VBS richtig formatieren.
Für dein problem mit existenten/ nicht existenten OUs: Prüfe einfach kurz, ob das Object, auf welches du zugreiffen möchtest auch vorhanden ist. Wenn nicht: -> erstellen!

Gruß
Snow
Edi.Pfisterer
Edi.Pfisterer 31.05.2010, aktualisiert am 18.10.2012 um 18:42:22 Uhr
Goto Top
Hallo!
Schau mal hier
Kollege Kolouschki freut sich sicher, wenn er Dir helfen kann!!!

gutes gelingen
lg
Edi
ColdZero
ColdZero 01.06.2010 um 08:38:39 Uhr
Goto Top
Moin Moin,

wunderbar sieht sehr gut aus! Werde mal ein wenig rumschnipseln und hoffen das es geht.

Gruß Zero