Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung VB for Applications

Mitglied: koluschkiB

koluschkiB (Level 1) - Jetzt verbinden

20.05.2010, aktualisiert 16:26 Uhr, 4883 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Mit PowerShell per CSV-File Ordner erstellen (19)

Frage von windelterrorist zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...