paumus 10 Geschrieben 19. Februar 2007 Melden Teilen Geschrieben 19. Februar 2007 Hallo, ich habe hier schon einiges darüber gelesen, dass man eine firmeninterne Telefonliste im Active Directory pflegen kann. Wenn ich es richtig verstanden habe, wird die Telefonnummer einfach im AD-Benutzerkonto eingetragen und erscheint dann z.B. auch so in der Globalen Adressliste im Outlook. Ich habe dazu zwei Fragen: 1. Auf unserer Telefonliste (momentan ein handgepflegtes Word-Dokument) sind viele Telefonnummern für Räume, aber auch für Abteilungen hinterlegt (z.B. EDV - Nr. 123). Kann man diese Nummern auch im AD pflegen? Ist es klug, für diese einen Benutzer anzulegen und dessen Konto auf deaktiviert zu setzen? (z.B. Benutzer Malerwerkstatt - Tel. 456). Erscheint mir etwas unelegant. 2. Können die Nummern auch von jemandem gepflegt werden, der kein Administrator ist (z.B. einem Technik-Mitarbeiter). Habe schon etwas über "Objektverwaltung Delegieren" gelesen. Kann man dass soweit delegieren, dass dieser Technik-Mitarbeiter nur die Felder Name, Vorname, Abteilung und Tel-Nr. ändern kann, sonst aber nix? Vielen Dank für Eure Hilfe. paumus Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 19. Februar 2007 Melden Teilen Geschrieben 19. Februar 2007 Servus, 1. Auf unserer Telefonliste (momentan ein handgepflegtes Word-Dokument) sind viele Telefonnummern für Räume, aber auch für Abteilungen hinterlegt (z.B. EDV - Nr. 123). Kann man diese Nummern auch im AD pflegen? Schau Dir doch ein Benutzerobjekt an, dann siehst Du, welche Felder bzw. Reiter Dir zur Verfügung stehen. Es könnte sein, dass das eine oder andere Feld (Attribut) nicht im globalen Katalog repliziert wird, damit man Domänenübergreifend danach suchen könnte. Das Attribut kann man aber in den meisten Fällen zusätzlich in den GC replizieren lassen. Falls die Felder nicht Deinen Wünschen entsprechen, könnte man das Schema erweitern, was ich aber für dieses Vorhaben, nicht empfehlen würde. Da würde ich nach einer externen Lösung suchen. Ist es klug, für diese einen Benutzer anzulegen und dessen Konto auf deaktiviert zu setzen? (z.B. Benutzer Malerwerkstatt - Tel. 456). Erscheint mir etwas unelegant. Nein. Das halte ich für sehr unklug. Habe schon etwas über "Objektverwaltung Delegieren" gelesen. Kann man dass soweit delegieren, dass dieser Technik-Mitarbeiter nur die Felder Name, Vorname, Abteilung und Tel-Nr. ändern kann, sonst aber nix? Ja, dass kann man weitestgehend. Schau Dir dazu die "spezielle" Objektverwaltung an (siehe Link): Gruppenrichtlinien - Übersicht, FAQ und Tutorials Zitieren Link zu diesem Kommentar
Hirgelzwift 10 Geschrieben 19. Februar 2007 Melden Teilen Geschrieben 19. Februar 2007 man kann auch einen Kontakt anlegen und pflegen ohne gleich einen "echten" benutzer anlegen zu müssen. mit dem deligieren ist das so eine sache. da würde ich ungern einen ratschlag geben ohne das vorher in echt gesehen zu haben. Zitieren Link zu diesem Kommentar
marka 587 Geschrieben 19. Februar 2007 Melden Teilen Geschrieben 19. Februar 2007 Ich würde auch über einen Kontakt die Raum-Telefonnummern pflegen. Zitieren Link zu diesem Kommentar
paumus 10 Geschrieben 19. Februar 2007 Autor Melden Teilen Geschrieben 19. Februar 2007 Vielen Dank für die Antworten! Daim: Sehr hilfreicher Link, das werde ich mir anschauen. Vielleicht hast Du mich aber falsch verstanden mit den Raum-Telefonnummern. Die Telefonliste schaut vereinfacht etwa so aus: Installationsraum - 203 Müller - 123 Meier - 124 Schmidt - 175 Teeküche - 207 Also die Frage ist, ob man sowas wie Teeküche anlegen kann. Wie Hirgelzwift und marka sagen, kann man im AD auch einen Kontakt anlegen (probiere ich gerade). Ich glaube das ist genau das was ich suche! An dieser Stelle habe ich noch eine Frage: Könnte ein Technik-Mitarbeiter die Nummern auch bearbeiten, wenn er nicht auf einem Domänencontroller per RDP arbeitet? Habe schon gesehen, dass er mit dem Windows-Adressbuch (wab.exe) Benutzer im AD suchen und bearbeiten kann. Kann er mit diesem feinen Programm auch Kontakte erstellen / löschen? Oder gibt es noch einen anderen Weg, "von außen" Kontakte im AD zu erstellen? Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 20. Februar 2007 Melden Teilen Geschrieben 20. Februar 2007 Moin, Also die Frage ist, ob man sowas wie Teeküche anlegen kann. Du möchtest z.B. ein Feld haben, wo steht: Teeküche? Dazu musst Du das Schema erweitern, was ich für diesen Zweck nicht für sinnvoll halte. Dann lieber so, wie die anderen hier bereits erwähnt haben, über die Kontakte lösen. Oder gibt es noch einen anderen Weg, "von außen" Kontakte im AD zu erstellen? Ja, installiere das Adminpack auf folgende Weise (auf dem Client vom Techniker), denn somit, werden nur die AD-Tools und NICHT das gesamte (unnötige) Adminpack installiert. msiexec /i adminpak.msi ADDLOCAL=FeADTools /qb Zitieren Link zu diesem Kommentar
paumus 10 Geschrieben 28. Februar 2007 Autor Melden Teilen Geschrieben 28. Februar 2007 Vielen Dank für die Tipps! Das hat mir schon sehr geholfen. Mit Hilfe des AdminPaks kann man das ActiveDirectory von "normalen" Arbeitsrechnern aus bearbeiten. Mit "Objektverwaltung delegieren" kann ich den Zugriff auf die Objekte einschränken, so dass nur noch Telefonnummern bearbeitet werden können oder nur Objekte vom Typ "Kontakt" verändern werden können. Schließlich sind die Kontakte anscheinend auch eine ganz gute Lösung für die Telefonnummern, die keinem Benutzer zugeordnet werden können. Das hört sich schonmal sehr gut an! Jetzt werde ich noch schauen, ob ich mit Hilfe von vbscript und ADSI (schaue mir gerade SelfADSI : Das ADSI Scripting Tutorial an) eine klassische Telefonnummern-Liste generieren kann. Außerdem will ich auch noch schauen, ob ich die so gepflegten Kontakte auch an einem anderen Standort unserer Firma (die eine eigene EDV mit eigenem DC und eigener Domäne hat) zur Verfügung stellen kann, eine Standleitung gibt es. Grüße, paumus Zitieren Link zu diesem Kommentar
paumus 10 Geschrieben 27. März 2007 Autor Melden Teilen Geschrieben 27. März 2007 So, ich habe das Generieren einer Telefonliste jetzt mit PHP gelöst, das per LDAP auch Informationen aus dem AD ziehen kann. Das ist wirklich eine gute Sache. Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 27. März 2007 Melden Teilen Geschrieben 27. März 2007 So, ich habe das Generieren einer Telefonliste jetzt mit PHP gelöst, das per LDAP auch Informationen aus dem AD ziehen kann. Das ist wirklich eine gute Sache. Wie wäre es, wenn Du daraus einen kleinen Artikel bastelst und hier dem Forum (Windows Server How-To Guides: Home - ServerHowTo.de) zur Verfügung stellst ? Dadurch hätte es für jedermann einen Mehrwert ;) Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 27. März 2007 Melden Teilen Geschrieben 27. März 2007 Mensch die Lösung für die Telefonliste brauche ich,genau das was ich suche habe heute schon einen post dazu geschrieben, kann ich die PHP lösung per mail bekommen !? Zitieren Link zu diesem Kommentar
paumus 10 Geschrieben 27. März 2007 Autor Melden Teilen Geschrieben 27. März 2007 Ah, ich freue mich, dass Interesse besteht! Ich werde mal die Infos bei serverhowto studieren und was zu dem Thema schreiben. Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 27. März 2007 Melden Teilen Geschrieben 27. März 2007 Paumus sei doch so nett und poste mal den inhalt der php datei hier ins forum Zitieren Link zu diesem Kommentar
paumus 10 Geschrieben 27. März 2007 Autor Melden Teilen Geschrieben 27. März 2007 Ich habe jetzt die Seite wieder gefunden: mittels PHP das Windows Active Directory auslesen - administrator Daran habe ich mich orientiert. Mein eigenes Skript sieht so aus, ist allerdings auch noch lange nicht perfekt, sondern nur ein Ansatz: <?php // Dieses PHP-Skript durchsucht alle OUs unterhalb von // OU=Benutzer,DC=test,DC=local und listet deren User und Kontakte auf. // Bekannte Probleme: Skript funktioniert nicht bei verschachtelten OUs // (OUs und Unter-OUS), sondern nur auf der ersten Ebene der OUs. function vergleich($wert_a, $wert_b) { // Sortierung nach dem displayname $a = $wert_a["displayname"]; $b = $wert_b["displayname"]; if ($a == $b) { return 0; } return ($a < $b) ? -1 : +1; } echo "<html><head>"; echo "<title>LDAP-Zugriff auf ein Active Directory</title>"; echo "</head><body>"; // Parameter für den LDAP-Zugriff // Adresse des Domänencontrollers: $ldap_server = "ldap://192.168.1.100"; // Konto für den Zugriff: $auth_user = "Administrator@test.local"; $auth_pass = "admin"; // Mit Server verbinden: if (!($connect=@ldap_connect($ldap_server))) { die("Keine Verbindung zum Verzeichnis-Server möglich."); } // Diese Parameter sind nötig für den Zugriff auf ein Active Directory: ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($connect, LDAP_OPT_REFERRALS, 0); // An Server binden: if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) { die("Bind fehlgeschlagen."); } // Zunächst alle OUs suchen und in einem Array ($OUs) speichern: $base_dn = "OU=Benutzer,DC=test,DC=local"; $filter = "(objectClass=organizationalUnit)"; if (!($search=@ldap_search($connect,$base_dn,$filter))) { die("Durchsuchen des LDAP-Servers fehlgeschlagen."); } $info = ldap_get_entries($connect, $search); for ($i=0; $i<$info["count"]; $i++) { // utf8_decode dient zur korrekten Verarbeitung von Umlauten $aktuelleOU = utf8_decode($info[$i]["name"][0]); if ($aktuelleOU <> "Benutzer") $OUs[$i] = $aktuelleOU; } // Nun für jede Organisationseinheit in $OUs alle Kontakte und User ausgeben: foreach ($OUs as $aktuelleOU) { $base_dn = utf8_encode("OU=".$aktuelleOU.",OU=Benutzer,DC=test,DC=local"); $filter = "(|(objectClass=contact)(objectClass=user))"; echo "<h4>" . $aktuelleOU . "</h4>"; if (!($search=@ldap_search($connect,$base_dn,$filter))) { die("Durchsuchen des LDAP-Servers fehlgeschlagen."); } $anzahl = ldap_count_entries($connect,$search); $info = ldap_get_entries($connect, $search); // Nur die relevanten Teile des $info-Arrays in ein $ergebnis-Array übernehmen: // (Verbessert die Übersichtlichkeit) for ($i=0; $i<$anzahl; $i++) { $ergebnis[$i]["objectclass"] = $info[$i]["objectclass"][3]; $ergebnis[$i]["displayname"] = utf8_decode($info[$i]["displayname"][0]); $ergebnis[$i]["givenname"] = utf8_decode($info[$i]["givenname"][0]); $ergebnis[$i]["sn"] = utf8_decode($info[$i]["sn"][0]); $ergebnis[$i]["mail"] = $info[$i]["mail"][0]; $ergebnis[$i]["telephonenumber"]= $info[$i]["telephonenumber"][0]; } // Array alphabetisch sortieren, usort erwartet dazu eine Vergleichsfunktion: usort($ergebnis, 'vergleich'); // Array $ergebnis in einer Tabelle ausgeben: echo "<table border=0>"; for ($i=0; $i<$anzahl; $i++) { echo "<tr>"; echo "<td width=200>" . $ergebnis[$i]["displayname"] . "</td>"; if (empty($ergebnis[$i]["mail"])) echo "<td width=200> - </td>"; else echo "<td width=200>" . $ergebnis[$i]["mail"] . "</td>"; if (empty($ergebnis[$i]["telephonenumber"])) echo "<td width=100> - </td>"; else echo "<td width=100>" . $ergebnis[$i]["telephonenumber"] . "</td>"; echo "</tr>"; } echo "</table>"; echo "<br>"; echo "</body></html>"; } ?> Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 27. März 2007 Melden Teilen Geschrieben 27. März 2007 Mist und ich habe verschachtelte OUs, hat jemand ne lösung dafür ? Zitieren Link zu diesem Kommentar
lips 10 Geschrieben 28. März 2007 Melden Teilen Geschrieben 28. März 2007 hab auch verschachtelte OU's - also wenn jemand was hat..... *freu* Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.