autowolf 12 Geschrieben 16. Juni 2006 Melden Teilen Geschrieben 16. Juni 2006 Hi hab ein VB Script geschrieben. Leider komme ich nicht weiter. Habe schon hier im Froum und bei Googel 3 Stunden gesucht. Er legt mir keine Mailbox für den User an den ich aus der User.txt auslese. Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("c:\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 MSGBOX "Scriptverarbeitung abgeschlossen" & vbCrlf & "by Autowolf" Wscript.Quit(0) Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=TEST,DC=WUTM,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 "userPrincipalName", Benutzer & "@WUTM.local" b.Put "mail", Benutzer & "@lanwolf.de" b.Put "c", "DE" b.Put "co", "DEUTSCHLAND" b.Put "l", "Stadt" b.Put "postalCode", "PLZ" b.Put "postOfficeBox", "Postfach" b.Put "st", "Bundesland" b.Put "streetAddress", "Strasse Zeile 1" & vbCrlf & "Strasse Zeile 2" & vbCrlf b.SetInfo 'Password läuft nicht ab' b.SetPassword Passwort b.Put "userAccountControl", 66082 b.AccountDisabled = False b.SetInfo '40' 'Logincript' Set UserObj = GetObject("WinNT://WUTM/" & Benutzer) UserObj.LoginScript = "datev.bat" UserObj.SetInfo Set UserObj = Nothing 'Gruppe hinzufügen' Set GroupObj = GetObject("WinNT://SBS-SERVER/DATEVuser") GroupObj.Add ("WinNT://WUTM/" & Benutzer) Set DomainObj = Nothing Set GroupObj = Nothing 'Mailbox' 'Create Users Mailbox b.createMailbox "LDAP://CN=Postfachspeicher (SBS-SERVER),CN=Erste Speichergruppe,CN=Infromationsspeicher,CN=SBS-SERVER,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=wutm,DC=local" b.setInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Ich komme mit den Variabelen für den Exchange nicht ganz klar. Als Fehler bekomme ich immer "Einsolches Objekt ist auf dem Server nicht vorhanden" mit der Zeile wo "b.crateMailbox..... " steht. Ohne die Mailbox geht alles 1a System: Windows 2003 SBS SP1 Name: SBS-SERVER Domain: WUTM.local Hier noch mal der Originalcode auf dem Netz: 'Create Users Mailbox Dim oIADSUser Set oIADSUser = objRoot.OpenDSObject("LDAP://CN=" & firstName & " " & lastName & ",OU=Volunteers,DC=mydomain,DC=local", strAdminDN, strAdminPassword, ADS_SECURE_AUTHENTICATION) oIADSUser.createMailbox "LDAP://CN=Mailbox Store (MYSERVER),CN=First Storage Group,CN=InformationStore,CN=MYSERVER,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=My Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local" oIADSUser.setInfo Zitieren Link zu diesem Kommentar
Zoni 10 Geschrieben 16. Juni 2006 Melden Teilen Geschrieben 16. Juni 2006 Hallo, ich hab zwar keine Plan von VBScript, aber bei dem Original-Code ausm Netz ist ja noch die DIM und SET Zeile drin " Dim oIADSUser Set oIADSUser = objRoot.OpenDSObject("LDAP://CN=" & firstName & " " & lastName & ",OU=Volunteers,DC=mydomain,DC=local", strAdminDN, strAdminPassword, ADS_SECURE_AUTHENTICATION) " Das war in Deinem Code Beispiel nicht vorhanden. Für mich liest sich das schon so, als wenn die SET-Zeile wichtig ist, weil damit die entsprechende Verbindung zu dem User im AD hergestellt wird. Bekommst Du denn eine Fehlermeldung wenn Du den Mail-Teil bei Dir aktivierst, oder passiert einfach nur nix? Gruß Zoni Zitieren Link zu diesem Kommentar
XP-Fan 220 Geschrieben 16. Juni 2006 Melden Teilen Geschrieben 16. Juni 2006 Hallo, schau mal hier : http://www.mcseboard.de/showthread.php?t=72440 Zitieren Link zu diesem Kommentar
autowolf 12 Geschrieben 17. Juni 2006 Autor Melden Teilen Geschrieben 17. Juni 2006 @Zoni: Nein ist egal ob ich es rein mache oder nicht bekomme immer diese Fehlermeldung @XP-Fan Das Tool ist ganz net.. nur es geht nicht 1a. Habe es noch nie geschaft das die User 1a da sind. Zudem fehlen die Mailboxen somit ... Vielleicht hat ja noch einer ne idee Zitieren Link zu diesem Kommentar
Zoni 10 Geschrieben 19. Juni 2006 Melden Teilen Geschrieben 19. Juni 2006 Soo, ich habe mir mal ein Herz gefasst und einen Exchange installiert ;) Leider nur auf Englisch, da ich irgendwie nur ne Englische Windows 2003 R2 Trial gefunden habe. Ich habe dein Skript kopiert und für mich angepasst ;): Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("c:\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 MSGBOX "Scriptverarbeitung abgeschlossen" & vbCrlf & "by Autowolf" Wscript.Quit(0) Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=test,dc=zoni,dc=local") //Ich musste die OU erst noch anlegen 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 & "@zoni.local" b.Put "mail", Benutzer & "@zoni.de" b.Put "c", "DE" b.Put "co", "DEUTSCHLAND" b.Put "l", "Stadt" b.Put "postalCode", "PLZ" b.Put "postOfficeBox", "Postfach" b.Put "st", "Bundesland" b.Put "streetAddress", "Strasse Zeile 1" & vbCrlf & "Strasse Zeile 2" & vbCrlf b.SetInfo 'Password läuft nicht ab' b.SetPassword Passwort b.Put "userAccountControl", 66082 b.AccountDisabled = False b.SetInfo '40' 'Logincript' Set UserObj = GetObject("WinNT://ZONI/" & Benutzer) UserObj.LoginScript = "datev.bat" UserObj.SetInfo Set UserObj = Nothing 'Gruppe hinzufügen' Set GroupObj = GetObject("WinNT://ZONISRV/Test") GroupObj.Add ("WinNT://ZONI/" & Benutzer) Set DomainObj = Nothing Set GroupObj = Nothing 'Mailbox anlegen' Set oIADSUser = b oIADSUser.createMailbox "LDAP://CN=Mailbox Store (ZONISRV),CN=First Storage Group,CN=InformationStore,CN=ZONISRV,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=Zonitec,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=zoni,DC=local" oIADSUser.EnableStoreDefaults = FALSE // Legt Größen für die Mailbox direkt fest oIADSUser.StoreQuota = 10000 oIADSUser.OverQuotaLimit = 12000 oIADSUser.HardLimit = 15000 oIADSUser.setInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Folgende Probleme hatte ich : 1. OU existierte nicht ;) war ja schnell angelegt 2. Passwörter entsprachen nicht der Kennwortrichtlinie, einfach was dazu gepackt *g* Dieses Skript ist wohlgemerkt für Englisch angepasst. Für Deutsch müsstest Du dass selbst übernehmen. Am besten öffnest Du bei Dir ADSIEDIT (Start->Ausführen : "regsvr32 schmmgmt.dll" bestätigen, Start->Ausführen : "adsiedit.msc" bestätigen ) : Dort kannst Du Dich durch den Baum klicken, der ist nur umgekehrt. Das was hier unten steht ist in ADSIEDIT oben. oIADSUser.createMailbox "LDAP:// CN=Mailbox Store (ZONISRV)'Wird wohl Informationsspeicher (SERVERNAME) bei Dir lauten ,CN=First Storage Group'Erste Speichergruppe ,CN=InformationStore 'Informationsspeicher ,CN=ZONISRV'Servername ,CN=Servers ,CN=First Administrative Group'Erste Administrative Gruppe ,CN=Administrative Groups'Administrative Gruppen ,CN=Zonitec 'Organisation ,CN=Microsoft Exchange ,CN=Services ,CN=Configuration ,DC=zoni ,DC=local" Bei mir hat das Skript dann wunderbar funktioniert, die Exchange Reiter waren dann im AD bei dem Benutzer sichtbar. Die Email Adressen kamen dann automatisch über den Adresslisten-Update-Service nach ca. 5 Minuten. Man kann auch noch wesentlich mehr der Exchange Elemente anpassen. Für die CreateMailbox Prozedur muss man die Exchange Admin Tools installiert haben, wenn man das Skript nicht sowieso direkt auf dem Exchange laufen lässt. Gib bitte Rückmeldung ob es funktioniert hat. Gruß Zoni Zitieren Link zu diesem Kommentar
autowolf 12 Geschrieben 20. Juni 2006 Autor Melden Teilen Geschrieben 20. Juni 2006 So erstemal riesen dank. Habs soweit hinbekommen (bekomme keine Fehler mehr) Leider legt er mir keine Mailbox an. Die Reiter beim User fehlen. Ich habe ja eine SBS 2003 SP1 Deutsch. Das Lustige ist das der Exchange ein mischmasch von Deutsch und Englisch ist. Hier mal der Code: 'Mailbox anlegen' Set oIADSUser = b oIADSUser.createMailbox "LDAP://CN=Postfachspeicher (SBS-SERVER),CN=Erste Speichergruppe,CN=InformationStore,CN=SBS-SERVER,CN=Servers,CN=erste administrative gruppe,CN=Administrative Groups,CN=WUTM,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=WUTM,DC=local" oIADSUser.EnableStoreDefaults = FALSE oIADSUser.StoreQuota = 10000 oIADSUser.OverQuotaLimit = 12000 oIADSUser.HardLimit = 15000 Zitieren Link zu diesem Kommentar
Zoni 10 Geschrieben 25. Juni 2006 Melden Teilen Geschrieben 25. Juni 2006 Ich habe mir auch mal noch einen deutschen SBS installiert, bekomme aber als Meldung das die Gruppe nicht gefunden werden könnte. Werde mal heute schauen ob ich das noch in den Griff bekomme. Zitieren Link zu diesem Kommentar
Zoni 10 Geschrieben 25. Juni 2006 Melden Teilen Geschrieben 25. Juni 2006 Was schmeisst der denn bei Dir als Fehlermeldung raus? Oder kommen gar keine Fehler? Bir mir hats nun endlich geklappt. Hatte ich doch in meinem deutschen Skript noch ne englische Gruppe "Users" :) Ich poste jetzt nicht nochmal das ganz Skript sondern nur den Exchange Code Schnipsel : [...] 'Mailbox anlegen' Set oIADSUser = b oIADSUser.createMailbox "LDAP://SBSSERVER/CN=Postfachspeicher (SBSSERVER),CN=Erste Speichergruppe,CN=InformationStore,CN=SBSSERVER,CN=Servers,CN=erste administrative gruppe,CN=Administrative Groups,CN=SBSDOMAIN,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=sbsdomain,DC=local" oIADSUser.EnableStoreDefaults = FALSE oIADSUser.StoreQuota = 10000 oIADSUser.OverQuotaLimit = 12000 oIADSUser.HardLimit = 15000 oIADSUser.setInfo [...] Die fettgeschriebenen Teile müssten bei Dir angepasst werden. Es war bei mir auch nötig nach "LDAP://" den Servernamen einzutragen. Bei mir hat das nun wunderbar funktioniert, habe 5 User in die User.Txt eingetragen und das Skript gestartet. Läuft dann ein paar Sekunden und dann kommt das Hinweisfenster dass die Skriptverarbeitung abgeschlossen ist. Der Deutsch-Englisch Mischmasch kommt wohl daher dass das AD intern Englisch aufgebaut ist. Gruß Zoni Zitieren Link zu diesem Kommentar
autowolf 12 Geschrieben 26. Juni 2006 Autor Melden Teilen Geschrieben 26. Juni 2006 Cool werde ich mal heute abend testen. Ich habe in der zwichen Zeit noch ein Script geschrieben, wecheles User Accounds Updatet. Sprich du hast User in einer OU und willst ihnen ein Loginscript und E-Mail Adressen verpassen. Da das Forum nur 4000 Zeichen zuläst und ich keine lust habe es in 3 Blöcke hier zu posten werde ich es als Zip hier hinstellen. Zitieren Link zu diesem Kommentar
autowolf 12 Geschrieben 26. Juni 2006 Autor Melden Teilen Geschrieben 26. Juni 2006 Hier die Zip Datei. Schreib mal was du davon hälst (nur für windows 2003) User Update.zip Zitieren Link zu diesem Kommentar
Zoni 10 Geschrieben 26. Juni 2006 Melden Teilen Geschrieben 26. Juni 2006 Hallo, das ZIP ist leider noch nicht freigeschaltet. Aber für den von Dir beschriebenen Zweck gibt es ein sehr mächtiges Tool, früher von Microsoft entwickelt : Admodify .NET http://workspaces.gotdotnet.com/ADModify Damit kannst Du nach OUs , Usern , Gruppen selektieren, kannst Emails Adressen hinzufügen, den Ort ändern etc. Gruß Zoni 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.