select
Goto Top

Zwei Adressbücher in einem

Hallo liebe Leute face-smile

Hab da eine Frage.
Ich hab Firma A und Firma B.
Ich hab einen Server A und einen Server B.
In beiden Firmen hat es Mitarbeiter (im Active Directory versehen).
Alle Mitarbeiter haben eine E-Mail Adresse.
Die Mitarbeiter der Firma A haben im E-Mail Adressbuch nur die Mitarbeiter der Firma A.
Die Mitarbeiter der Firma B haben im E-Mail Adressbuch nur die Mitarbeiter der Firma B.
Nun will ich aber, das Firma A die Mitarbeiter der Firma A UND der Firma B und umgekehrt im E-Mail Adressbuch haben.
Da das aber eine Menge Arbeit geben würde, die alle manuell einzutragen und da Mitarbeiter der Firmen ein- und austreten könnten,
wäre es sinnvoll, wenn es ein Skript/Makro (z.B. VB/VBA) gäbe, mit dem das automatisch geht.
Ich weiss einfach, das man mit dem Skript/Makro versuchen muss, die Mitarbeiter des Active Directories von beiden Firmen
auszulesen, dabei die Mitarbeiterinformationen am besten auch mitspeichert und dies in die E-Mail Adressbücher der Mitarbeiter schreibt.
Wie würde das am besten gehen? Oder wie könnte ich das am besten angehen?

Mit freundlichen Grüssen
selEcT

Content-ID: 94100

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

Ausgedruckt am: 14.11.2024 um 11:11 Uhr

selEcT
selEcT 11.08.2008 um 14:33:33 Uhr
Goto Top
hat denn keiner ne gute idee? ^^
godlie
godlie 11.08.2008 um 14:54:16 Uhr
Goto Top
Hallo,
ich habe soetwas ähnliches derzeit in Arbeit sozusagen nen Exchange Ersatz.
Das ganze geht mir mit C# recht gut von der Hand.

Man könnte es auch mit Windows Scripting ( z.b. VBs ) lösen, nur wird das ein wenig aufwendig fürchte ich.

Set objSysInfo = CreateObject("ADSystemInfo")  

strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://x.x.x.x:389/"&strUser)  

strFullName = objUser.FullName
words = split(strFullname)
strName=words(1)
strSurname=words(0)
strTitle = objUser.Title
strDesc=objUser.description

Nur mal ein Auszug die Beschreibung der jeweiligen AD Felder findet man recht gut mit einem Ldap Browser raus.
Wenns probleme gibt kannst dich ja melden face-smile

grüße
selEcT
selEcT 11.08.2008 um 14:58:27 Uhr
Goto Top
Ist das C? Oder C++? C# kenn ich nicht.

Und das funktioniert? face-smile

THX für die Antwort. face-smile

Wenn es noch weitere Sachen gibt, einfach posten :D

MFG selEcT
godlie
godlie 11.08.2008 um 15:03:43 Uhr
Goto Top
oh hab ich ganz vergessen das ist Visual Basic in einem VBS Script.

C# ist die Abkürzung for C - Sharp <-- sehr empfehlenswert da durchgehend OOP
selEcT
selEcT 11.08.2008 um 15:06:24 Uhr
Goto Top
Also machst du jetzt mit Visual Basic oder C#? ^^
godlie
godlie 11.08.2008 um 15:12:13 Uhr
Goto Top
das codebeispiel ist in VBS aber man kanns nach c# umlegen.
meine applikation wird in c# erstellt.

Das Beispiel oben ist eben nur ein Auszug aus einer VBS mit dessen Hilfe ich dieverse Einträge aus dem AD gehohlt habe und damit eine Signatur erstellt habe vollautomatisch für Outlook.

Somit müssen nur die Bezeichnungen im AD angepasst werden und das Script aufgerufen werden damit eine Coorperate Identity Signatur für alle rausschaut face-smile
Ach ich schweife schon wieder vom Thema ab.


grüße
selEcT
selEcT 11.08.2008 um 15:34:35 Uhr
Goto Top
Ach so.. ok..

hmm.. hast du eine Anleitung, in der du siehst, mit welchem Befehl du was aus dem AD holst?

Ich bräuchte aber nicht die Signatur face-smile

MFG raphio
godlie
godlie 11.08.2008 um 15:40:12 Uhr
Goto Top
Wenn du dich ein wenig bemühst dann befrägst du Google face-smile

STichwort Active Directory VBS oder Active Directory Scripting.

Set objUser = GetObject("LDAP://x.x.x.x:389/"&strUser)  <-- hier wird das gesamte UserObject   
aus dem AD gehohlt.
objUser.description <-- steht für das Feld Description bei der Benutzerverwaltung innerhalb des AD's  
objUser.Title <-- steht für den Titel e.g. Dipl.Ing. Dr. .....

mfg
selEcT
selEcT 11.08.2008 um 15:48:55 Uhr
Goto Top
Ja ich weiss :D bin halt schon den ganzen Nachmittag dran, zu suchen und zu machen..

hmm.. die Definitionen der Befehle konnte ich mir denken.. welche Adresse muss ich angeben bei LDAP:? Die vom AD-Server?

Bei objUser kann ich hinten einfach dranhängen, was ich will (also name, surname usw.) und dann zeigt es auch nur die an?

Wo kann ich einen VBS Code reinschreiben? Editor?

MFG selEcT
godlie
godlie 11.08.2008 um 15:55:51 Uhr
Goto Top
Ja bei LDAP gehört die AD IP rein.
Naja du kannst schon dranhängen was du willst nur ist die Frage ob du es bekommst face-smile

VBS einfach im Notepad Tipseln und abspeichern mit Endung .vbs

zum Thema AD und VBS:

http://www.codeproject.com/KB/vbscript/VBS_AD-Exch_manipulation.aspx

so kann dieser besch.. Montag nicht bald erledigt sein face-smile

edit grml falscher link.
selEcT
selEcT 11.08.2008 um 16:04:01 Uhr
Goto Top
OK, thx..

Hmm.. diese Seite ist eigenartig :D

ja, mach in einer halben Stunde feierabend -.-

werde es mal versuchen, thx für die hilfe..

MFG selEcT

edit: ah, die seite sieht schon besser aus ^^
selEcT
selEcT 12.08.2008 um 08:46:41 Uhr
Goto Top
moin face-smile

gibt es irgendwo eine Liste mit den Active Directory Bezeichnungen? Also "name" und so? Weil für den Befehl "objUser.X" wäre das noch sehr praktisch face-smile dann wüsste ich, was dahin kommt..

Aber hab noch was, ich habe im Active Directory verschiedene Ordner mit den Abteilungen und dort Unterordner mit der Bezeichnung (Benutzer, Computer, Laptop, Laptop-Benutzer), dort sind auch die Mitarbeiter drin, die E-Mail haben, die im Ordner "Users" haben keine E-Mail Adresse und für mich unwichtig.. wie kann ich nur diejenigen User aus dem AD auslesen, die eine E-Mail Adresse haben (also natürlich schon mit Namen etc.)?

mit einer If-Abfrage geht das nicht oder? Hätte mir die so vorgestellt:

[code]If objUser.mail = "" Then
<<Befehl für nichts machen>> DO nothing (kA xD)
Else
strMail = objUser.mail[/code]

oder wie sollte das gehen? Hab halt nicht soviel Ahnung davon.. face-smile
selEcT
selEcT 15.08.2008 um 16:28:29 Uhr
Goto Top
na? Das script schon fertig? :D