Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Benutzer aus csv file mit vbs anlegen

Mitglied: koluschkiB

koluschkiB (Level 1) - Jetzt verbinden

20.05.2010, aktualisiert 16:26 Uhr, 4999 Aufrufe, 11 Kommentare

hallo admin freunde

hab ein problem, bzw eine frage

ich hab denn auftrag gekriegt, ein script zu schrieben, was user im AD anlegt. die daten sollen aus einer csv datei geladen werden.
so weit so gut
hab hier und in der ach so von euch gepriesenen script56 datei rum gesucht, man findet zwar einiges hilfreichen, doch an der umsetzung scheitert es einwenig

ich hab hier bei admin.de einen eintrag gefunden, hab ihn genommen und dementsprechend so angepasst, dass meine daten dort drinne stehen

der code sie wie folgt aus:

01.
 
02.
Dim fso, f, Zeile, Feld 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Set f = fso.OpenTextFile ("c:\user.txt",1,0) 
06.
 
07.
Do while not f.AtEndOfLine 
08.
Zeile = f.readLine 
09.
Feld = split(Zeile,";") 
10.
Benutzer = Feld(0) 
11.
Vorname = Feld(1) 
12.
Nachname = Feld(2) 
13.
Passwort = Feld(3) 
14.
Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) 
15.
Loop 
16.
f.Close 
17.
Wscript.Quit(0) 
18.
 
19.
Dim ouo, b 
20.
Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) 
21.
Set ouo = GetObject("LDAP://OU=Management,DC=testad,DC=int") 
22.
Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) 
23.
Dim WshShell, ret 
24.
Set WshShell = WScript.CreateObject("WScript.Shell") 
25.
b.Put "sAMAccountName", Benutzer 
26.
b.Put "displayName", Vorname & " " & Nachname 
27.
b.Put "givenName", Vorname 
28.
b.Put "sn", Nachname 
29.
b.Put "userAccountControl", 66082 
30.
b.Put "userPrincipalName", Benutzer & "@testad.int" 
31.
b.SetInfo 
32.
b.SetPassword Passwort 
33.
b.AccountDisabled = False 
34.
b.SetInfo 
35.
Set b = Nothing 
36.
Set ouo = Nothing 
37.
'WScript.Sleep(1000) 
38.
End Sub 
39.
 
jetzt habe ich folgendes problem, ich krieg immer nen fehler Zeile 21 Zeichen 1. das objekt befindet sich nicht auf dem server, werde nicht schlau draus.
muss dazu sagen, dass ich nen MS Server 2008 verwende, kann es sein dass es evtl daran liegt? in der script56.chm datei steht auch drinne unterstützte platformen bis winSrv2k3
vielleicht hat einer von euch schon mal dieses problem gehabt und kann mir evtl. nen klein tipp oder sowas geben

bis bald

koluschki B
Mitglied: 60730
20.05.2010 um 17:45 Uhr
Moin,

21.Set ouo = GetObject("LDAP://OU=Management,DC=testad,DC=int")

Und die Zeile hast du von dem Script 1zu1 übernommen?

Da steht, wie die Domain heisst und in welche OU der User kommt.
das Objekt befindet sich nicht auf dem Server.

Gruß
Bitte warten ..
Mitglied: bastla
20.05.2010 um 17:47 Uhr
Hallo koluschkiB!

Bei mir macht sich der Eindruck breit, man müsste Dir dauernd etwas "anpreisen" (findest Du selber nix?) ...

... in diesem Fall zB TechNet Script Center Sample Scripts (vom "Scripting Guy" hast Du sicher auch noch nie etwas gehört / gelesen) ...

Grüße
bastla
Bitte warten ..
Mitglied: koluschkiB
21.05.2010 um 09:03 Uhr
ja ich hab die zeile 1zu1 übernommen
die OU sowie die beiden DC-Werte habe ich eingetragen.
ich musste auch ein paar andere werte ändern, zb wie die datei csv datei heisst und wo sie liegt
aber dennoch kriege ich die meldung "Bla bla befindet sich nicht auf dem server"
was auch immmer damit gemint ist
der fehler sagt auch expliezit Zeile 21 Zeichen 1. wäre für mich noch nach vollziehbar wenn er sagen würde, OU nicht da oder DC nicht vorhanden. aber so weiss ich echt nicht wo jetzt der fehler liegt
bisschen blöd
Bitte warten ..
Mitglied: koluschkiB
21.05.2010 um 11:50 Uhr
ja ganz toll das script center
verbringe mehr mit möglichkeiten der suche, als mit der aufgabe selbst
aber nun gut, tut nichts zur sache.

hab das script von oben weg gemacht und von neu angefangen,. mit hilfe des zum 10mal erwähneten centers, was ich ja nicht verkehrt ist. da es soweit ganz gut klappt mit alle. das script liest die datei aus und leg so nen vogel da an
das alles ist abe rnur die spitze des eisbergs


hab mal ne frage

und zwar wenn ich nen anmelde namen generieren muss, zb ersten 3 buchstaben vom vornamen und erste 2 buchstaben vom nach namen

bsp.

Hans Maulwurf

Anmeldenamen:

hanma@dc.dc

nun zu meiner frage, was muss ich genau angeben um das hin zu kriegen?

01.
objUser.Put "userPrincipalName", ("Vorname,3")  ("Nachname,2") & "@testAD.int"
hab diesen code getestet und zeigt er mir nene error an

lasse ich es weg, und sage nur Nachname, klappts problems los. in denn AD eigenschaftend es user kann man es ja sehen und alles
wo liegt der fehler? an welcher stelle muss was verändert werden?
(und bitte keinen verweise zu scriptcenter.chm)
Bitte warten ..
Mitglied: bastla
21.05.2010 um 12:49 Uhr
Hallo koluschkiB!
und bitte keinen verweise zu scriptcenter.chm
I wo - "Left()" und "Mid()" sind ja in "script56.chm" zu finden ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.05.2010 um 13:00 Uhr
Moin KoluschkiB,

Zitat von koluschkiB:
01.
> objUser.Put "userPrincipalName", ("Vorname,3")  ("Nachname,2") & "@testAD.int" 
02.
> 
hab diesen code getestet und zeigt er mir nene error an verändert werden?
Was verleitet dich zu der Annahme, das wäre Code? Weil Codetags drumherum sind?
(und bitte keinen verweise zu scriptcenter.chm)
Aber da liesse sich auch nach Left() und Mid() suchen...

01.
objUser.Put "userPrincipalName",  LCase( Left( Vorname, 3) &  Left (Nachname, 2) )  & "@testAD.int"
Grüße
Biber
Bitte warten ..
Mitglied: koluschkiB
21.05.2010 um 13:21 Uhr
hey bastla

habs gelöst und er legt denn benutzernamen so an wie er soll. jewals die anfansbuchstaben vom vor und nachnamen

aber dennoch habe ich eine frage
mal was zu was anderem und im scriptcenter ist es immer so angegeben dass es meine frage nicht beantwortet

das script was ich habe legt die benutzer an, soweit so gut. aber er legt immer ne OU an.
gibt es ne möglichkeit, diese OU einfach wegzulassen, so dass man die benutzer und gruppen unter Users im AD anlegt und sieht?

so sieht mein script bis jetzt aus:

01.
 
02.
Dim objDomain, objOU, objUser, objGrou, objDesc 
03.
Dim fso, f, Zeile, Feld 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set f = fso.OpenTextFile ("c:\user.txt",1,0) 
07.
 
08.
Do while not f.AtEndOfLine 
09.
Zeile = f.readLine 
10.
Feld = split(Zeile,";") 
11.
Vorname = Feld(0) 
12.
Nachname = Feld(1) 
13.
Abteilung = Feld(2) 
14.
Gruppe1 = Feld(3) 
15.
Gruppe2 = Feld(4) 
16.
Gruppe3 = Feld(5) 
17.
Gruppe4 = Feld(6) 
18.
Gruppe5 = Feld(7) 
19.
 
20.
 
21.
 
22.
Set objDomain = GetObject("LDAP://dc=testad,dc=int") 
23.
Set objOU = objDomain.Create("organizationalUnit", "ou=blabla") 
24.
objOU.SetInfo 
25.
  
26.
Set objOU = GetObject("LDAP://OU=blabla,dc=testad,dc=int") 
27.
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname) 
28.
objUser.Put "sAMAccountName", Nachname 
29.
objUser.Put "displayName", Vorname & " " & Nachname 
30.
objUser.Put "givenName", Vorname 
31.
objUser.Put "sn", Nachname 
32.
objUser.Put "description", Abteilung 
33.
'objUser.Put "userAccountControl", 66082 
34.
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int" 
35.
objUser.SetInfo 
36.
  
37.
Set objOU = GetObject("LDAP://OU=blabla,dc=testad,dc=int") 
38.
Set objGroup = objOU.Create("Group", "cn=" & Gruppe1) 
39.
objGroup.Put "sAMAccountName", "atl-users12" 
40.
objGroup.SetInfo 
41.
  
42.
objGroup.Add objUser.ADSPath 
43.
 
44.
Loop 
45.
 
wo liegt der fehler? wie kann ich die ou einfach weglassen

gruß

koluschki
Bitte warten ..
Mitglied: koluschkiB
21.05.2010 um 14:03 Uhr
ja dann such mal! also vielleicht habt irh n anderes center, aber ich kriege die meldung wenn ich nach left() suche "die suche kann nach diesem befehl nicht suchen"
blöd, aber eh egal.

das porblem von eben mit der OU ist übrigens auch schon gelöst, statt OU hab ich CN hin geschrieben und es klappt wunderbar.
nun setze ich mich mit dem anlegen von gruppen auseinadner.
problem ist, dass in der csv datei die user manchmal die selbengruppen haben, was eben beim erstellen Error mitsich bringt.
aber dafür wird sich auch noch ne lösung finden
Bitte warten ..
Mitglied: koluschkiB
21.05.2010 um 14:54 Uhr
hab mal ne frage zu dem anlegen der gruppen, gibt es ne möglichkeit einfach ne If anweisung zu machen, falls die gruppe bereits existiert, dass dieser schritt eben übersprungen wird?

so in etwa

01.
 
02.
Set objGroup = objOU.Create("Group", "cn=" & Gruppe1) 
03.
if Gruppe1 already Exists Then  
04.
On Error Resume Next 
05.
end if 
06.
 
leider ist das was da ist falsch, es müssen insgesamt 5gruppen angelegt werden. praktisch weniger, da manche eben doppelt sind
hoffe einer von euch kann helfen
Bitte warten ..
Mitglied: 60730
21.05.2010 um 15:50 Uhr
(OT)
5 Gruppen (OUs) legt man nicht in einem Script an indem man auch User anlegt.
5 Gruppen (OUs) legt man sauber mit der Hand an.
(/OT)
Bitte warten ..
Mitglied: koluschkiB
25.05.2010 um 10:25 Uhr
naja, so würde es jeder normale mensch machen ich natürlich auch
aber ich hab die glorreiche aufgabe, ein script zu schreiben, was eben user gruppen und ordner für denn jewaligen benutzer anlegt.
per hand 10 user, 5 gruppen 10 ordner anlegen und freigeben, dauert so 15min ich sitze schon seit 4 tagen an dem script, muss also glaub ich nichts mehr sagen
aber danke für denn tipp

häng imme rnoch an der gruppen anlegung.
hat einer nen tipp wie man das auffangen könnte, wenn so einen gruppe nun existiert?
ich brauch keine endlösung, eher nen wink oder nen tipp wie man es evtl machen könnte

gruß

koluschki
Bitte warten ..
Ähnliche Inhalte
VB for Applications
CSV Datei mit VBS auslesen
Frage von scorpionesc83VB for Applications4 Kommentare

Hallo zusammen, ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen ...

Windows Server
Benutzer löschen und neu anlegen
Frage von ClepToManixWindows Server2 Kommentare

Hallo an alle, ich habe aktuell das Problem, dass mein neues Firmenhandy(neustes ios) keine Emails von unserem exchange 2016 ...

Batch & Shell

Benutzer anlegen mit Set-ADAccountExpiration

gelöst Frage von PeterzBatch & Shell3 Kommentare

Hallo, ich habe mir ein Script mit Powershell (z.T. mit Inputboxen) zusammengebaut, mit dem ich AD-Benutzer anlegen kann. Nun ...

VB for Applications

Mit VBS erste Zeile von CSV ändern

gelöst Frage von apfeltoastVB for Applications5 Kommentare

Hallo zusammen, ich wurde von einem Arbeitskollegen beauftragt eine CSV-Datei automatisch zu editieren. Die Ursprungsdatei hat 44 Spalten und ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs10 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)8 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...