datazero
Goto Top

eMail-Adresse (Attribut otherMailbox) per LDAP auslesen (VBS)

Alle eMail-Adressen mit Hilfe eines VBS-Skript per LDAP aus einem Exchange 5.5 auslesen

Hallo,

ich habe vor alle Email-Adressen per LDAP aus einem Exchange 5.5 auszulesen und diese per Filter auszuwerten.
Ziel ist für bestimmte Aliase weitere Email-adressen zu erstellen.

Nun mein Problem:
Einem Objekt (Benutzer usw.) sind unterschiedlich viele Email-adressen (Attribut othermailBox) zugeordnet.

Wie kann ich diese per LDAP mit Hilfe eines VBScript auslesen?

Das klappt:
Set ou = GetObject("LDAP:/server/cn=,ou=,o=")
For Each obj In ou
wscript.echo obj.name
Next
Zeigt mir dann auch alle Objekte (Benutzer usw.) an.

Aber wie kann ich dann alle Attribute "otherMailbox" je Objekt ausgeben?
(Das Attribut otherMailbox kann mehrfach pro Objekt vorkommen)

Hilfe bin am verzweifeln....

Content-ID: 54137

Url: https://administrator.de/contentid/54137

Ausgedruckt am: 20.11.2024 um 10:11 Uhr

bastla
bastla 15.03.2007 um 12:41:15 Uhr
Goto Top
Hallo datazero und willkommen im Forum!

Vielleicht hilft Dir das ...

Grüße
bastla
datazero
datazero 15.03.2007 um 16:27:01 Uhr
Goto Top
Hi,

super, danke für den Link, er hat mir weitergeholfen.
Der Codeschnipsel dort geht zwar nicht, habe ihn mir aber umgebaut.

Nun hab ich noch das Problem dass das gute Stück abbricht sobald das gesuchte Attribut eines Objektes nicht existiert.

Wie kann ich dies denn prüfen? Beim Aufruf von obj.exists("otherMailbox") kommt die Fehlermeldung "Objekt unterstützzt die Methode obj.exists nicht" zurück.

Bin dankbar für jeden Tip.
bastla
bastla 15.03.2007 um 18:54:56 Uhr
Goto Top
Hallo datazero!

Üblicherweise sollte das (auf Basis des angesprochenen Schnipsels) etwa so gehen:
objMailbox.GetInfoEx Array("otherMailbox"), 0  
varAddrs = objMailbox.GetEx("otherMailbox")  
If Not IsNull(varAddrs) Then ...

Grüße
bastla
datazero
datazero 15.03.2007 um 23:44:52 Uhr
Goto Top
nochmal Hi,

danke für deine Antwort. Genau das habe ich gesucht. Werde ich gleich morgen früh mal testen.

Mir geht es darum dass jeder User mit einer Emailadresse username@domain.de auch eine Emailadresse username@domain.com bekommt. Eshandelt sich dabei um ein paar hundert User. Da wäre man tagelang beschäftigt das von Hand zu machen. Außerdem würde man wohl einige übersehen oder vergessen.

Nochmal danke für deine Hilfe.
datazero
datazero 16.03.2007 um 08:44:01 Uhr
Goto Top
Hallo,

habe eben mal If not IsNull(varAddrs) Then... probiert.
Gleicher Fehler wie vorher.
Bei einem Objekt ohne otherMailbox kommt ein Fehler und es bricht ab.
Wie kann man denn diese Prüfung sonst noch machen?
Bin um jeden Tip dankbar.
bastla
bastla 16.03.2007 um 09:48:34 Uhr
Goto Top
Hallo datazero!

Bevor wir gleich zu einem "On Error" greifen:
Stell bitte einmal den aktuellen Stand Deines Scripts herein und gib genau an, in welcher Zeile Du welchen Fehler erhältst.

Grüße
bastla
datazero
datazero 16.03.2007 um 10:28:32 Uhr
Goto Top
Hallo,

ich denke es liegt daran das sich nichts prüfen kann was nicht da ist.
Man kann nichts auf IsNull prüfen wenn es dies nicht gibt.

Dim varAddrs
Set ou = GetObject("LDAP://server/cn=...,ou=...,o=...")  
for each obj in ou
		obj.GetInfoEx Array("otherMailbox"), 0  
		varAddrs = obj.GetEx("otherMailbox")  
		For i = LBound(varAddrs) To UBound(varAddrs)
			ENAME = Split(varAddrs(i), "@")  
			wscript.echo varAddrs(i) & vbcr & ENAME(0) & "@domain.com"  
			' Anweisung die neue Adresse erstellt  
		Next
Next

Der Code läuft solange gut, bis er auf ein Objekt stößt in dem es kein otherMailbox gibt.
bastla
bastla 16.03.2007 um 12:23:48 Uhr
Goto Top
Hallo datazero!

Bitte nochmals genau: Bei welcher Zeile welche Fehlermeldung / -nummer?

Grüße
bastla
datazero
datazero 19.03.2007 um 14:10:48 Uhr
Goto Top
Hallo bastla,

hab es nun hinbekommen. Es war nur eine Typenunverträglichkeit.
Vielen Dank für deine Hilfe und Tips.