59769
Goto Top

Via Script Telefonnummern in Active Directory importieren

Hallo zusammen

Ich kenne mich mit Scripting leider noch nicht so aus. Habe im Forum schon einige Beiträge gefunden, die "mein" Problem behandeln, lösen konnte ich es damit aber noch nicht ;-(

Ich muss im Active Directory bei allen Usern die Telefonnummer hinterlegen. Die Nummern und Usernamen habe ich in einem Excelfile. Das File heisst Kontaktdaten.xls und liegt auf meinem Laufwerk D.

Hier mein bisheriger Script dazu:

Set XL = WScript.CreateObject("Excel.Application")
XL.Workbooks.Open "D:\Kontaktdaten.xls"
i = 1 'Zeilennummer der ersten Datenzeile
'Do While XL.Worksheets(1).Cells(i,1).Value <> ""
strVorname = XL.Worksheets(1).Cells(i,1).Value
strNachname = XL.Worksheets(1).Cells(i,2).Value
strBenutzername = XL.Worksheets(1).Cells(i,3).Value
strPhone = XL.Worksheets(1).Cells(i,4).Value


Set RootDSE = GetObject("LDAP:RootDSE")
path = "LDAP:
CN=Users," & RootDSE.Get("defaultNamingContext")
Set objContainer = GetObject(path)


Set objUser = objContainer.GetObject("user","CN=" & strBenutzername)
objUser.telephonenumber =

objUser.SetInfo

i = i + 1
Loop

WScript.Echo "Telefonnummer erfolgreich eingetragen!"
WScript.Quit



Es liest mir den richtigen Benutzernamen aus meinem Excelfile und wenn ich direkt im Script eine Nummer hinter "objUser.telephonenumber = " wird diese ins AD geschrieben, zum richtigen Benutzer.
Ich möchte aber, dass es mir die Nummer auch aus meinem Excelfile ausliest und dann beim entsprechenden Benutzer einträgt. Leider habe ich bis jetzt nicht rausgefunden, wie ich auf mein "strPhone" verweisen kann, dass es mir dann dieses "strPhone" einträgt.
Auch funktioniert der Loop nicht, wenn ich es so hinterlege. Kann mir jemand helfen?

Content-ID: 77742

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

Bayano
Bayano 10.01.2008 um 09:54:43 Uhr
Goto Top
Also du musst einfach die Variable der Telefonnumer gleichsetzen:

objUser.telephonenumber = strPhone

Bei mir funktioniert es so.
59769
59769 10.01.2008 um 10:08:16 Uhr
Goto Top
Bei mir funktioniert das leider nicht so...ich bekomme den Fehler:
(17,1) (null): Unbekannter Fehler.
Zeile 17 ist die mit dem objUser.telephonenumber = strPhone
Bayano
Bayano 10.01.2008 um 10:12:41 Uhr
Goto Top
Was steht denn bei dir in der Variable strPhone, kannst du die vorher mal ausgeben lassen per msgbox.
59769
59769 10.01.2008 um 10:18:55 Uhr
Goto Top
Wau!

Jetzt bin ich aber echt erstaunt! Ich habe die Excel Datei nur mal so zum testen gemacht und bei der Telefonnummer einfach 33 reingeschrieben. Jetzt habe ich aufgrund deiner Frage mal schnell eine "richtige" Telefonnummer reingeschrieben und es geht.
Tausend Dank! ich verstehe zwar nicht ganz, wieso das so ist, aber hauptsache es geht jetzt!
Vielen, vielen Dank!!
59769
59769 10.01.2008 um 10:28:28 Uhr
Goto Top
Ich habe noch eine kleine andere Frage, wenn ich mal jemanden gefunden habe, der sich damit auskennt face-wink
Wir haben in unserem AD verschiedene OU's und die Benutzer sind in einer OU die heisst Benutzer. Dort haben wir dann auch die GPO's drauf. Wenn ich in meinem Script die Zeile
path = "LDAP:CN=Users," & RootDSE.Get("defaultNamingContext") auf
path = "LDAP:
CN=Benutzer," & RootDSE.Get("defaultNamingContext") ändere, bekomme ich immer die Fehlermeldung dass ein solches Objekt auf dem Server nicht vorhanden sei. Kann ich den Script nur über den StandartADOrdner "Users" laufen lassen?
Bayano
Bayano 10.01.2008 um 10:42:49 Uhr
Goto Top
Nein, du kannst es überall drüber laufen lassen.

Nur wenn du es auf eine OU anwenden möchtest muss es "OU=" heißen und nicht "CN=".
59769
59769 10.01.2008 um 10:44:37 Uhr
Goto Top
Danke, Du bist "mein" Genie face-wink
Bayano
Bayano 10.01.2008 um 10:49:47 Uhr
Goto Top
Falls du sonst noch irgendwelche Fragen haben solltest zu VBScript und dem AD einfach melden.

MFG
Bayano