VBScript createKontakt mit CSV Import Problem
Kontakte per script in der AD anlegen ohne im GAB zu erscheinen (evtl sofort in einen verteiler kommen), möglich für alle Mitarbeiter.
Nach meiner kleinen erfolgreichen Suche für Script welches Kontakte in der AD anlegt impotiert aus einer Datei fand ich hier ein passendes da. Habe die Pfade angepasst und es erfolgreich getestet. Jedoch gefällt mir nicht das der Anzeigename extra erstellt wird und ich habe versucht die Variablen strLast und StrName stattdessen zu benutzen. Desweiteren habe ich ein Feld für die beschreibung mit Eingebaut. Oder es zumindest versucht, denn das script läuft zwar durch, erstellt aber keine Kontakte. Der LDAP Pfad stimmt, denn das "alte" script funktioniert mit denen. Ich denke es hapert an meinem Versuch den Anzeigenamen auf "Nachnamen, Vornamen" zu scripten?! Zusätzlich möchte ich noch das die Kontakte nicht im GAB angezeigt werden (ginge im Notfall aber wohl auch mit ADModify) und die Adressen am besten direkt in einem Verteiler Landen. Erstmal sollte es aber überhaupt funktionieren
Jemand eine Ahnung woran es liegen könnte?
Und die Passende CSV Datei:
Vielen Dank schon mal
gruß h.c.
Nach meiner kleinen erfolgreichen Suche für Script welches Kontakte in der AD anlegt impotiert aus einer Datei fand ich hier ein passendes da. Habe die Pfade angepasst und es erfolgreich getestet. Jedoch gefällt mir nicht das der Anzeigename extra erstellt wird und ich habe versucht die Variablen strLast und StrName stattdessen zu benutzen. Desweiteren habe ich ein Feld für die beschreibung mit Eingebaut. Oder es zumindest versucht, denn das script läuft zwar durch, erstellt aber keine Kontakte. Der LDAP Pfad stimmt, denn das "alte" script funktioniert mit denen. Ich denke es hapert an meinem Versuch den Anzeigenamen auf "Nachnamen, Vornamen" zu scripten?! Zusätzlich möchte ich noch das die Kontakte nicht im GAB angezeigt werden (ginge im Notfall aber wohl auch mit ADModify) und die Adressen am besten direkt in einem Verteiler Landen. Erstmal sollte es aber überhaupt funktionieren
Jemand eine Ahnung woran es liegen könnte?
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
' Kontakt
' Beschreibung
'
' Version: 1.1
' Datum: 08.06.2005
' Autor: Jon-Claude Hick
' Letzte Änderungen: 12.05.2006
'
' Jon-Claude Hick stellt dieses Skript ohne jede
' Gewährleistung zur Verfügung.
' Die Verwendung geschieht auf eigene Gefahr.
'
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
Option Explicit
Dim objRootLDAP, objContainer, objContact, strOU, strdomainname
Dim strContainer, strDNSDomain, FSO, file, User, line, strTargetAddress
Dim strContactName, strEmail, strFirst, strLast, strMapirecip, strDesc
Const ForReading = 1
Const filename="G:\X-Sonstiges\Kontakte.csv"
on error resume next
' ------------------------------
'please enter full LDAP path here
strOU = "Xerver/ou=Kontakttest,ou=MyBusiness,dc=X,dc=de"
' ------------------------------
strMapirecip = "FALSE"
Set objRootLDAP = GetObject("LDAP://rootDSE")
strdomainname = objRootLDAP.Get("DefaultNamingContext")
Set objContainer = GetObject("LDAP://" & strOU)
set FSO=CreateObject("Scripting.Filesystemobject")
Set File=FSO.OpenTextFile(filename, ForReading, false)
while not file.AtEndOfStream
line=file.Readline
User=Split(line,";")
strContactName = strLast & ", " & strFirst
strLast = User(0)
strFirst = User(1)
strEmail = User(2)
strDesc = User(3)
Set objContact = objContainer.Create("Contact",_
"cn=" & strContactName)
objContact.Put "Mail", strEmail
objContact.Put "targetaddress", strEmail
objContact.Put "givenName", strFirst
objContact.Put "sn", strLast
objContact.Put "description", strDesc
objContact.Put "mailnickname", strContactName
objContact.Put "mapirecipient", strMapirecip
strTargetAddress = "SMTP:" & strEmail
objContact.Put "TargetAddress", strTargetAddress
objContact.Put "InternetEncoding", 1310720
objContact.SetInfo
Wend
WScript.Quit
Und die Passende CSV Datei:
Muster;Max;Max@muster.de;Beschreibung
Vielen Dank schon mal
gruß h.c.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 88737
Url: https://administrator.de/contentid/88737
Ausgedruckt am: 25.11.2024 um 19:11 Uhr
11 Kommentare
Neuester Kommentar
salü
probier ma folgende änderung, welche mir bei kurzem durchschauen sofort aufgefallen ist!
anstatt
stelle um auf..
bei deiner methode weiss er ja noch gar nicht wie die strings strlast und strfirst gesetzt sind, respektive nimmt leere...
somit sollte das script zumindest wieder durchrennen
gruss
probier ma folgende änderung, welche mir bei kurzem durchschauen sofort aufgefallen ist!
anstatt
strContactName = strLast & ", " & strFirst
strLast = User(0)
strFirst = User(1)
stelle um auf..
strLast = User(0)
strFirst = User(1)
strContactName = strLast & ", " & strFirst
bei deiner methode weiss er ja noch gar nicht wie die strings strlast und strfirst gesetzt sind, respektive nimmt leere...
somit sollte das script zumindest wieder durchrennen
gruss
Hallo hagbardceline!
Die Angabe der OU (des LDAP-Pfades) sieht wirklich so aus?
Zum Testen wäre es übrigens generell sinnvoll, die Zeile 23 auszukommentieren, damit das Script bei einem Fehler abbricht und Du aus der Fehlermeldung Rückschlüsse ziehen kannst.
Grüße
bastla
Die Angabe der OU (des LDAP-Pfades) sieht wirklich so aus?
strOU = "Xerver/ou=Kontakttest,ou=MyBusiness,dc=X,dc=de"
Grüße
bastla
Moin hagbardceline,
ob es alle Probleme löst, weiß ich nicht, aber...
Grüße
Biber
[Edit] 30.5.2008
Sorry, hab mich missverständlich ausgedrückt mit dem verdrehten Vor- und Nachnamen.
..wäre nur bei Kontakten richtig, die den gleichen Vor- und Nachnamen haben stimmt natürlich schon gar nicht... es wäre auch bei Millionen von Asiaten in der Speicherungsform oben im Beitrag vollkommen korrekt.
Aber bei dem geposteten Beispiel "Mustermann;Max" würde ich schon den Vornamen/Rufnamen "Max" in das Feld "givenName" speichern.
[/Êdit]
ob es alle Probleme löst, weiß ich nicht, aber...
...
' #CHG# objContact.Put "givenName", strFirst
' #CHG# objContact.Put "sn", strLast
' wäre nur bei Kontakten richtig,
' die den gleichen Vor- und Nachnamen haben
objContact.Put "givenName", strLast
objContact.Put "sn", strFirst
objContact.Put "description", strDesc
objContact.Put "mailnickname", strContactName
'#CHG# objContact.Put "mapirecipient", strMapirecip
objContact.Put "mapirecipient", FALSE
' oder NICHTS setzen - false ist ja DEFAULT
....
...
Grüße
Biber
[Edit] 30.5.2008
Sorry, hab mich missverständlich ausgedrückt mit dem verdrehten Vor- und Nachnamen.
..wäre nur bei Kontakten richtig, die den gleichen Vor- und Nachnamen haben stimmt natürlich schon gar nicht... es wäre auch bei Millionen von Asiaten in der Speicherungsform oben im Beitrag vollkommen korrekt.
Aber bei dem geposteten Beispiel "Mustermann;Max" würde ich schon den Vornamen/Rufnamen "Max" in das Feld "givenName" speichern.
[/Êdit]
Hallo hagbardceline!
Könnte, wie schon angenommen, am Komma liegen (siehe http://support.microsoft.com/?scid=kb%3Ben-us%3B883419&x=11&y=1 ... ) ...
Grüße
bastla
Könnte, wie schon angenommen, am Komma liegen (siehe http://support.microsoft.com/?scid=kb%3Ben-us%3B883419&x=11&y=1 ... ) ...
Grüße
bastla
Moin hagbardceline,
vorab: im jetzigen Status der Forumssoftware werden wahrscheinlich nur die drei, die schon mal in diesem Beitrag gepostet haben, mitbekommen, dass Du eine neue Frage gestellt hast.
Mach lieber einen neuen Thread auf.
Zu Deiner Frage 1)
"member" ist in diesem Fall keine Variable, sondern ein Textparameter.
Damit gibst Du an, welches Detail-Info des Attributs "objGroup" Du haben willst.
Die Funktion GetEx() sollte immer für ein so genanntes Multivalued Attribute gerufen werden , also um z.B. ein Array abzuholen.
Dann kannst Du entweder den Index (0, 1, ..) bei mehrdimensionalen Objekten wie Resultsets oder den "Spaltennamen" mitgeben. Und eine "Spalte", eine Eigenschaft des Attributs "Group" ist "Member", eine andere ist "MemberOf".
zu 2) öhm... kannst Du die Frage etwas genauer formulieren?
Ist mir zu lang, um es auf Nachvollziehbarkeit zu prüfen.
Grüße
Biber
vorab: im jetzigen Status der Forumssoftware werden wahrscheinlich nur die drei, die schon mal in diesem Beitrag gepostet haben, mitbekommen, dass Du eine neue Frage gestellt hast.
Mach lieber einen neuen Thread auf.
Zu Deiner Frage 1)
"member" ist in diesem Fall keine Variable, sondern ein Textparameter.
Damit gibst Du an, welches Detail-Info des Attributs "objGroup" Du haben willst.
Die Funktion GetEx() sollte immer für ein so genanntes Multivalued Attribute gerufen werden , also um z.B. ein Array abzuholen.
Dann kannst Du entweder den Index (0, 1, ..) bei mehrdimensionalen Objekten wie Resultsets oder den "Spaltennamen" mitgeben. Und eine "Spalte", eine Eigenschaft des Attributs "Group" ist "Member", eine andere ist "MemberOf".
zu 2) öhm... kannst Du die Frage etwas genauer formulieren?
Ist mir zu lang, um es auf Nachvollziehbarkeit zu prüfen.
Grüße
Biber
Moin hagbardceline,
Aber als allererster hat es rony-x2 schon am Test-Tag der neuen Forumsversion am 23.5. angemerkt in diesem beliebten "Wartungsarbeiten heute abend"-Thread..
Na ja, und gegen spammige Beiträge gehe ich ja (manchmal relativ gerne) manuell vor. Wenn wir eine (Teil-)Frage hier beantworten können und ein Grüner Haken an einen Beitrag mit einem passenden Titel kommt, dann sehe ich es nicht als Spamm an.
Und was den geposteten Schnipsel betrifft... wenn Du jetzt weißt, dass es um Multivalue-Attribute geht, dann ist auch klar, dass dort eben nicht einfach ein Username als Inhalt des Attributes objgroup eingetragen werden darf, sondern in die (Teil-)Struktur "Member der Gruppe" eine Liste (=ein Array) bestehend aus einem Usernamen.
können wir aber auch morgen noch mal in Ruhe anschauen.
Grüße
Biber
aber ist das nicht etwas Spammig wenns jeder macht,
sonne normale ansicht der neuesten Beiträge wäre doch Sinnvoller oder?
Hmmja, und wie es der Zufall will, habe ich genau diesen Wunsch am Sonntag auch noch mal im AFABS als Issue #537 eingetragen.sonne normale ansicht der neuesten Beiträge wäre doch Sinnvoller oder?
Aber als allererster hat es rony-x2 schon am Test-Tag der neuen Forumsversion am 23.5. angemerkt in diesem beliebten "Wartungsarbeiten heute abend"-Thread..
Na ja, und gegen spammige Beiträge gehe ich ja (manchmal relativ gerne) manuell vor. Wenn wir eine (Teil-)Frage hier beantworten können und ein Grüner Haken an einen Beitrag mit einem passenden Titel kommt, dann sehe ich es nicht als Spamm an.
Und was den geposteten Schnipsel betrifft... wenn Du jetzt weißt, dass es um Multivalue-Attribute geht, dann ist auch klar, dass dort eben nicht einfach ein Username als Inhalt des Attributes objgroup eingetragen werden darf, sondern in die (Teil-)Struktur "Member der Gruppe" eine Liste (=ein Array) bestehend aus einem Usernamen.
können wir aber auch morgen noch mal in Ruhe anschauen.
Grüße
Biber