Jump to content

User mit VBScript und Mailbox anlegen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...