Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Server Forum


Alles zum Thema Windows Server sowie Windows IT Pro Themen — Q & A zu den Windows Server Versionen NT / 2000 / 2003 / 2003 R2 / 2008 / 2008 R2: Rollen, Features, Konfiguration, Troubleshooting


Antwort
     
Themen-Optionen
Alt 17.06.2006, 00:13   #1
Senior Member
 
Benutzerbild von autowolf
 
Offline
Registriert seit: 12-2004
Beiträge: 315
User mit VBScript und Mailbox anlegen

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

Signatur
Ein Fehler bei MS ist erst dann ein Fehler, wenn er nach einem Neustart immer noch auftritt.

    Mit Zitat antworten
Alt 17.06.2006, 00:47   #2
Member
 
Offline
Registriert seit: 03-2006
Ort: Siegen
Beiträge: 164
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
    Mit Zitat antworten
Alt 17.06.2006, 01:52   #3
Moderator
 
Benutzerbild von XP-Fan
 
Offline
Registriert seit: 08-2002
Beiträge: 10.038
Hallo,

schau mal hier :
http://www.mcseboard.de/showthread.php?t=72440 (AdsScripter - VB Scripte autmatisch erzeugen)

Signatur
Gruß und viel Erfolg !

www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt ist online!

    Mit Zitat antworten
Alt 17.06.2006, 20:19   #4
Senior Member
 
Benutzerbild von autowolf
 
Offline
Registriert seit: 12-2004
Beiträge: 315
@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

Signatur
Ein Fehler bei MS ist erst dann ein Fehler, wenn er nach einem Neustart immer noch auftritt.

    Mit Zitat antworten
Alt 20.06.2006, 00:08   #5
Member
 
Offline
Registriert seit: 03-2006
Ort: Siegen
Beiträge: 164
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

Geändert von Zoni (20.06.2006 um 00:23 Uhr).
    Mit Zitat antworten
Alt 20.06.2006, 20:31   #6
Senior Member
 
Benutzerbild von autowolf
 
Offline
Registriert seit: 12-2004
Beiträge: 315
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

Signatur
Ein Fehler bei MS ist erst dann ein Fehler, wenn er nach einem Neustart immer noch auftritt.

    Mit Zitat antworten
Alt 25.06.2006, 11:33   #7
Member
 
Offline
Registriert seit: 03-2006
Ort: Siegen
Beiträge: 164
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.
    Mit Zitat antworten
Alt 25.06.2006, 12:17   #8
Member
 
Offline
Registriert seit: 03-2006
Ort: Siegen
Beiträge: 164
Daumen hoch

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

Geändert von Zoni (25.06.2006 um 12:59 Uhr).
    Mit Zitat antworten
Alt 26.06.2006, 12:10   #9
Senior Member
 
Benutzerbild von autowolf
 
Offline
Registriert seit: 12-2004
Beiträge: 315
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.

Signatur
Ein Fehler bei MS ist erst dann ein Fehler, wenn er nach einem Neustart immer noch auftritt.

    Mit Zitat antworten
Alt 26.06.2006, 12:14   #10
Senior Member
 
Benutzerbild von autowolf
 
Offline
Registriert seit: 12-2004
Beiträge: 315
Hier die Zip Datei.

Schreib mal was du davon hälst (nur für windows 2003)
Angehängte Dateien
Dateityp: zip User Update.zip (2,3 KB, 37x aufgerufen)

Signatur
Ein Fehler bei MS ist erst dann ein Fehler, wenn er nach einem Neustart immer noch auftritt.

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
User und Mailbox remote via Powershell anlegen Thomas-Holger Windows Forum — Scripting 9 21.11.2008 16:21
move Mailbox von 2003 nach 2007 mit vbscript Mecko Windows Server Forum 3 17.12.2007 11:30
EX2K3 Mailbox anlegen Esta MS Exchange Forum 4 16.08.2007 09:26
Exchange Mailbox per Script anlegen... Nimrod Windows Forum — Scripting 11 25.07.2007 18:34
User anlegen via VBscript - Einwahl erlauben geht nicht CyberDoc Windows Forum — Scripting 16 06.06.2007 10:49


Alle Zeitangaben in MEZ/CET. Es ist jetzt 16:45 Uhr. Seite generiert in 0,049 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang