Seromann 10 Geschrieben 22. Oktober 2008 Melden Teilen Geschrieben 22. Oktober 2008 ich möchte einem benutzer eine grupp ezuweisen...leider klappt das gar nihct. hier mal mein quelltext Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=Benutzer,DC=kaputt,DC=zz") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userPrincipalName", Benutzer & "@kaputt.zz" b.Put "description", "Projektmitarbeiter" b.Put "scriptPath", "start.cmd" b.TerminalServicesProfilePath = "\\dc\tsprofile$\" & Benutzer b.TerminalServicesHomeDirectory = "\\dc\userhome$\" & Benutzer b.TerminalServicesHomeDrive = "H:" b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) set objuser = GetObject("LDAP:// CN="& Nachname &"\, "& Vorname,OU=Benutzer,DC=kaputt,DC=zz") set objgroup = GetObject("LDAP:// CN=TS-User,OU=Gruppen,DC=kaputt,DC=zz") objgroup.add objuser.adspath objgroup.setinfo End Sub es wird mit dem fehler beendet. --------------------------- Windows Script Host --------------------------- Skript: C:\Dokumente und Einstellungen\Administrator\Desktop\script.vbs Zeile: 46 Zeichen: 94 Fehler: Nicht abgeschlossene Zeichenfolgenkonstante Code: 800A0409 Quelle: Kompilierungsfehler in Microsoft VBScript --------------------------- OK --------------------------- Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 22. Oktober 2008 Melden Teilen Geschrieben 22. Oktober 2008 Hi, der Fehler wird Dir in Zeile 46 angegeben. Hast Du Dir die Zeile denn einmal angeschaut? set objuser = GetObject("LDAP:// CN="& Nachname &"\, "& Vorname,OU=Benutzer,DC=kaputt,DC=zz") So wie ich das sehe fehlt hinter dem Vornamen ein &". Viele Grüße olc Zitieren Link zu diesem Kommentar
Seromann 10 Geschrieben 23. Oktober 2008 Melden Teilen Geschrieben 23. Oktober 2008 danke..das war unteranderem ein fehler. desweiteren kommt es darauf an wie im AD die Benutzer angezeigt werden. bei mir Nämlich so "Vorname Nachname" man beachte die Leerzeile. laut dem Script von mit soll es aber so angezeigt werden "Vorname,Nachname" deshalb hat es nicht gefunzt...hier also nochmal die komlpette zeile. set objuser = GetObject("LDAP://CN="& Vorname &" "& Nachname &",OU=Benutzer,DC=kaputt,DC=zz") – jetzt hab ich noch das problem postfächer einzurichten..wie geht das ?? hab hier nun alle seiten druch gelesen, aber nichts gefunden laut internet wohl mit CreateMailbox...hab da auch schon was gefunden, aber steige dort nicht ganz durch... hier mal ein auszug Set objMailbox = objUser objMailbox.CreateMailbox "LDAP://CN=" & MDBName & _ ",CN=" & StorageGroup & _ ",CN=InformationStore" & _ ",CN=" & Server & _ ",CN=Servers" & _ ",CN=" & AdminGroup & _ ",CN=Administrative Groups" & _ ",CN=" & Organization & _ ",CN=Microsoft Exchange,CN=Services" & _ ",CN=Configuration," & DomainDN objUser.SetInfo Zitieren Link zu diesem Kommentar
Seromann 10 Geschrieben 27. Oktober 2008 Melden Teilen Geschrieben 27. Oktober 2008 so problem gelöst...wen es interessiert....PN Zitieren Link zu diesem Kommentar
laudi 10 Geschrieben 16. Oktober 2009 Melden Teilen Geschrieben 16. Oktober 2009 Erst mal fettes danke das sich jemand dieser Sache mit annimmt, da ich ja nicht wirklich der Script profi bin bin ich sehr dankbar für die Hilfe. :jau: Da ich denn Server gerade nicht an der Hand habe spiele ich das mal so durch : edit 1 "VMware sei dank ich kanns doch testen" aber was soll ich sagen es klappt so nicht, wenn ich das richtig sehe dann muss ich die Gruppe ja aus der TXT lesen dazu sollte sie deffiniert sein. was ich in zeile 13 ja mache GroupObj = Feld(3) aber genau da habe ich schon denn Fehler das das Script stopt Fehlermeldung : Index außerhalb des gültigen bereichs. User Datei Name1,Vorname1, Password1,Gruppe1 Name2,Vorname2, Password2,Gruppe2 Script Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(1) Vorname = Feld(1) Nachname = Feld(0) Passwort = Feld(2) GroupObj = Feld(3) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,GroupOb) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=user,DC=domaene,DC=de") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "userPrincipalName", Benutzer & "@domaene.de" b.Put "profilePath", "\\server\daten\profile\" & Benutzer b.Put "homeDirectory", "\\server\daten\home\" & Benutzer b.Put "homeDrive", "U:" b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) ' Die Gruppe wird gesucht und als Ziel definiert. Set GroupObj = GetObject("" &"WinNT://" & _ DomainString &"/"& GroupString &"") ' Der User wird in die entsprechende Gruppe integriert. GroupObj.Add (""&"WinNT://"& _ DomainString &"/"& UserString &"") Set DomainObj = Nothing ' Variable wird frei gegeben ' Set GroupObj = Nothing ' Variable wird frei gegeben ' End Sub Ich werde das morgen mal testen, und dann mal einen Staus geben wie das so ausieht und ob ich noch ein Problem habe, bzw wie ich es beseitigt habe, sollte jemandem was auffallen kann er mich ja schon mal drauf aufmerksam machen :) Spart immer wieder Stundenlanges sitzen weil man den Fehler mal wieder selber nicht sieht. Ich bin selten im Forum darum weiss ich nicht ob ich das richtig eintrage. Ich habe das mit den Gruppen nicht richtig verstanden. Könnte mir bitte jemand ein Bispiel zeigen wo z.B. die user in die vorhandene Gruppe Test integriert werden. Danke! Zitieren Link zu diesem Kommentar
Java4Fun 10 Geschrieben 16. Dezember 2010 Melden Teilen Geschrieben 16. Dezember 2010 Guten Tag zusammen. Allen vorweg ein großes Lob und einen rießen dank an das Script. Funktioniert tadellos (mit Ausnahme dem was ich noch fragen werde). Leider muss ich diesen Himmelalten Thread wieder ausgraben. Habe trotz SuFu und gidf :D keinen vergleichbar rießigen Informationspool gefunden. So nun zu meiner Frage. Diese Frage wurde schon öfter gestellt, nur habe ich keine Antwort gelesen (bin schon seit 4 Uhr morgens am arbeiten, also glaube ich es auch sofort, dass ich es bei den 19 Seiten überlesen habe) Gibt es die möglichkeit eine Abfrage einzubauen die abfragt ob es den Benutzer schon gibt und wenn ja dann einen sufix anhängt (z.b.: testuser, testuser1, testuser2 usw.) Ich denke die Möglichkeit gibt es sicher, nur wie würde die aussehen? bin mit VB nicht so gut vertraut und dann noch in verbindung mit AD (was ich auch das erste mal verwende) Nur zur Info wieso ich das brauche: Ich brauche es lediglich zum testen meine Java-Applikation. Die diverse einträge editiert. Und jetzt ein create JSP zu erstellen (wo man schon so ein gutes script hat *daumen hoch*) is auch bisschen viel aufwand. Mit freundlichen Grüßen Java 4 Fun :cool: Zitieren Link zu diesem Kommentar
BenniSW 10 Geschrieben 15. April 2011 Melden Teilen Geschrieben 15. April 2011 Hi, geiler Thread, hat mir sehr geholfen, aber im Moment bin ich kurz davor meinen PC physisch zu misshandeln. Ich habe ein Basisscript nur mit User, Passwort, Vorname, Nachname erstellt, funktioniert auch wunderbar. Dann habe ich das Script Stück für Stück erweitert, zwischendurch immer wieder getestet. Jetzt, ganz am Ende funktioniert es nicht mehr und auch wenn ich einen RollBack auf den letzten, definitiv funktionsfähigen Stand machen, bekomme ich eine Fehlermeldung. Frei nach Epi IV: "Helft mir MCSE-Wan Kenobi, ihr seid meine letzte Hoffnung!" :D Script: Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("test.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Strasse = Feld(4) PLZ = Feld(5) Ort = Feld(6) Position = Feld(7) Abteilung = Feld(8) Telefon = Feld(9) Company = Feld(10) Mail = Feld(11) Fax = Feld(12) Mobil = Feld(13) Web = Feld(14) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,Strasse,PLZ,Ort,Position,Abteilung,Telefon,Company,Mail,Fax,Mobil,Web) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,Strasse,PLZ,Ort,Position,Abteilung,Telefon,Company,Mail,Fax,Mobil,Web) <- Das Leerzeichen im Fax macht das Forum hier. Dim ouo, b 'MsgBox(Benutzer) 'exit sub Set ouo = GetObject("LDAP://OU=yyy Logistik,DC=xxx,DC=local") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@xxx.local" b.Put "streetAddress", Strasse b.Put "postalCode", PLZ b.Put "l", Ort b.Put "title", Position b.Put "department", Abteilung b.Put "telephoneNumber", Telefon b.Put "company", Company b.Put "mail", Mail b.Put "facsimileTelephoneNumber", Fax b.Put "mobile", Mobil b.Put "wwwHomePage", Web b.Put "pwdLastSet", 0 b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) End Sub Zu übergebende Zeile aus dem Textfile: h_t*******,H****,T*******,start123,A* E****** 1,*****,R*******,Niederlassungsleiter R*******,,+49 (****) *** ***,S******** L******* GmbH,h****.t*******@**********.de,+49 (****) **** ***, +49(1761) **** ***,http://www.*********.de Fehlermeldung: Zeile 59 Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig. Ich hoffe einer der Obercracks überfliegt das und sieht sofort den Fehler. Gruss, Benni Zitieren Link zu diesem Kommentar
BenniSW 10 Geschrieben 15. April 2011 Melden Teilen Geschrieben 15. April 2011 Das kann doch nicht wahr sein, ich habs, ich könnt ****en ... dieser Testuser hat keinen Eintrag im Feld Abteilung, also folgt da , auf , in der Textdatei ... ich hab da jetzt ein Leerzeichen eingefügt UND DIE ******** FUNKTIONIERT ... GNAAAH! Ich danke trotzdem, ohne den Thread wäre ich erst gar nicht so weit gekommen. Grüße, Benni Zitieren Link zu diesem Kommentar
ramon67 10 Geschrieben 24. Juli 2011 Melden Teilen Geschrieben 24. Juli 2011 Hallo Thorgood Ich habe das Script angepasst. Lief ziemlich gut bis zu einem bestimmten Punkt. Auf Zeile 43 habe ich nun eine Fehlermeldung, die ich einfach nicht nachvollziehen kann. Der Fehler wird beim Befehl "b.SetInfo" aufgerufen. Ich erhalte ein Windows Script Host Fenster mit folgender Meldung Skript: c:\work\useradd.vbs Zeile: 43 Zeichen: 1 Fehler: Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig. Code: 8007200B Quelle: Active Directory Hier mein Script: Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Mail = Feld(4) Rufnummer = Feld(5) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=User,OU=Zürich,DC=testdom,DC=loc") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "displayName", Vorname & Nachname b.put "telephoneNumber", Rufnummer b.put "accountExpires", "nie" b.put "userAccountControl", "[NormalAccount, NoPasswordExpiration]" b.Put "userPrincipalName", Benutzer & "@testdom.loc" b.Put "profilePath", "\\S22\profile$\" & Benutzer b.Put "homeDirectory", "\\S22\home$\" & Benutzer b.Put "homeDrive", "H:" b.Put "mail", Mail b.Put "c", "CH" b.Put "co", "Schweiz" b.Put "l", "Zürich" b.Put "postalCode", "8000" b.Put "st", "Zürich" b.Put "streetAddress", "Seestrasse 19" & vbCrlf & "" & vbCrlf b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Kannst du mir dabei helfen? Was ist die Ursache dieses Problems? Gruss Ramon Zitieren Link zu diesem Kommentar
vohinh134 10 Geschrieben 28. Juli 2011 Melden Teilen Geschrieben 28. Juli 2011 (bearbeitet) Hi Leute, erstmal vielen Dank für geniale Script so sieht meine aus: Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("kundendaten.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Vorname = Feld(0) Nachname = Feld(1) Titel = Feld(2) Anmeldename= Feld(3) OU= Feld(4) Passwort =Feld(5) Telefon= Feld(6) Call BenuntzerAnlegen(Vorname,Nachname,Titel,Anmeldename,OU,Passwort,Telefon) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Vorname,Nachname,Titel,Anmeldename,OU,Passwort,Telefon) Dim ouo, b Set ouo = GetObject("LDAP://OU=Marketing,DC=nam,DC=nguyen,Dc=com") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Vorname b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@nam.nguyen.com" b.Put "profilePath", "\\W2008TEST\daten\profile\" & Benutzer b.Put "homeDirectory", "\\W2008TEST\daten\home\" & Benutzer b.Put "homeDrive", "C:"" b.SetPassword TestPW! b.AccountDisabled = False b.SetInfo WScript.Sleep(3) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub allerdings krieg ich diese Fehlermeldung Zeile 35 / Zeichen 21 / Anweisungsende erwartet Code 800A0401 Ich bin mit meinem Latein am Ende Wär super ,wenn mir da jemanden helfen kann LG Nam bearbeitet 28. Juli 2011 von vohinh134 Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 28. Juli 2011 Melden Teilen Geschrieben 28. Juli 2011 Moin, wenn man skriptet, sollte man auch einige Skriptgrundlagen beherrschen. Sonst führt das nicht weit. Was tust du denn, wenn dein Skript ein echtes Problem verursacht? b.Put "homeDrive", "C:""b.SetPassword TestPW! Hinter dem C: stehen zwei Anführungsstriche, nimm eins davon weg. Und das Kennwort solltest du in Anführungsstriche setzen, sonst nimmt VBS an, dass "TestPW" eine Variable sei und scheitert am nachfolgenden Ausrufezeichen. Gruß, Nils Zitieren Link zu diesem Kommentar
ramon67 10 Geschrieben 1. August 2011 Melden Teilen Geschrieben 1. August 2011 Hallo zusammen. Kann mir da jemand helfen? Komme nicht weiter und müsste dieses Skript demnächst bereit haben. Hier nochmals einen Auszug aus meinem letzten Beitrag.... Ich habe das Script angepasst. Lief ziemlich gut bis zu einem bestimmten Punkt. Auf Zeile 43 habe ich nun eine Fehlermeldung, die ich einfach nicht nachvollziehen kann. Der Fehler wird beim Befehl "b.SetInfo" aufgerufen. Ich erhalte ein Windows Script Host Fenster mit folgender Meldung Skript: c:\work\useradd.vbs Zeile: 43 Zeichen: 1 Fehler: Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig. Code: 8007200B Quelle: Active Directory Hier mein Script: Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Mail = Feld(4) Rufnummer = Feld(5) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=User,OU=Zürich,DC=testdom,DC=loc") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "displayName", Vorname & Nachname b.put "telephoneNumber", Rufnummer b.put "accountExpires", "nie" b.put "userAccountControl", "[NormalAccount, NoPasswordExpiration]" b.Put "userPrincipalName", Benutzer & "@testdom.loc" b.Put "profilePath", "\\S22\profile$\" & Benutzer b.Put "homeDirectory", "\\S22\home$\" & Benutzer b.Put "homeDrive", "H:" b.Put "mail", Mail b.Put "c", "CH" b.Put "co", "Schweiz" b.Put "l", "Zürich" b.Put "postalCode", "8000" b.Put "st", "Zürich" b.Put "streetAddress", "Seestrasse 19" & vbCrlf & "" & vbCrlf b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Kannst du mir dabei helfen? Was ist die Ursache dieses Problems? Gruss Ramon Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 1. August 2011 Melden Teilen Geschrieben 1. August 2011 Moin, mal abgesehen davon, das man beim skriptgesteuerten Zugriff auf AD wirklich wissen sollte, was man tut ... b.put "accountExpires", "nie"b.put "userAccountControl", "[NormalAccount, NoPasswordExpiration]" b.Put "co", "Schweiz" b.Put "streetAddress", "Seestrasse 19" & vbCrlf & "" & vbCrlf diese Felder sehen nicht gut aus. accountExpires nimmt keine Textwerte entgegen, userAccountControl auch nicht. Bei co steht, wenn ich mich richtig erinnere, ein Code und auch keine Zeichenkette (weshalb man das meist weglässt). Und bei streetAddress hängst du Zeichen an, die nicht in den Wert gehören. Gruß, Nils Zitieren Link zu diesem Kommentar
Bammboole 10 Geschrieben 7. April 2012 Melden Teilen Geschrieben 7. April 2012 Hi, hab auch mal ne Frage zu diesem Script. Hab das an meine vorhandene Domain angepasst. Und es funktioniert auch "fast" alles. Die benutzer werden angelegt. Die Ordner theoretisch auch.... Zumindest wenn ich die verz.cmd alleine ausführe. Wenn ich aber das script starte, endet es immer mit der Fehlrermeldung "Das System kann die angegebene Date nicht finden." Und als Zeile, die in der die Übergabe zur verz.cmd steht. Egel ob ich nur de Datei angebe oder mit Pfad. Jemand eine Idee? Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 9. April 2012 Melden Teilen Geschrieben 9. April 2012 Moin "Bamboole", da dieser Thread schon sehr lang und sehr alt ist, wäre es hilfreich, wenn du genau angibst, von welchem Skript du gerade sprichst und wie dein Code genau aussieht. Noch besser wäre es dann künftig, wenn du bei einer neuen Frage (denn das ist es) einen neuen Thread eröffnest und dabei ggf. auf einen vorhandenen Thread verweist. Also bitte deinen Code posten und genau angeben, wo wann der Fehler auftritt. Danke. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.