Wie lade ich das Avatar-Image von einem Active Directory-Server herunter?


7

Ich verwende die Binärdatei ldapsearch.exe, die zusammen mit einem Oracle-Client installiert wurde. Es hat eine Weile gedauert, um die gewünschten Argumente herauszufiltern, aber ich kann erfolgreich eine Verbindung zu AD herstellen und Textattribute analysieren (einen Benutzernamen angeben, eine E-Mail nachschlagen usw.). Ich möchte aber auch die Avatar-Bilder aufnehmen, die Exchange / Lync verwendet. Laut einer von mir ausgegrabenen Microsoft-Dokumentation lautet der Attributname thumbnailPhoto . Ich konnte es zunächst nicht herausfinden, aber dieser Befehl erzeugt keine verärgerten Fehlermeldungen:

ldapsearch -v -h xxx.yyy.edu -Z -b cn=USERNAME,ou=Computers,ou=yyy,dc=yyy,dc=edu cn=USERNAME thumbnailPhoto

Wenn ich das ausführe, erhalte ich die folgende Ausgabe:

ldap_open( xxx.yyy.edu, 389 )
filter pattern: cn=USERNAME
returning: thumbnailPhoto
filter is (cn=USERNAME)
CN=USERNAME,OU=Computers,OU=yyy,DC=yyy,DC=edu
1 matches

Es gibt keine Datei im aktuellen Verzeichnis, es gibt keine Datei in% TEMP%. Wenn ich -t mit oder ohne Argumente verwende, werden keine Dateien heruntergeladen. Kein binärer Müll füllt das Konsolenfenster. Ich erhalte ein identisches Verhalten, unabhängig davon, ob ich den Befehl über bash (msys) oder cmd.exe ausführe.

Was gibt? Es sieht so aus, als würde ich alles richtig machen. Aber mir gehen die Möglichkeiten zum Debuggen aus. Benutze ich nicht einmal die richtigen Werkzeuge?


ldapsearchsollte gut sein. Erhalten Sie nützliche Ausgaben, wenn Sie Textfelder abfragen (z. B. ... cn=USERNAME givenName)? Sind Sie sicher, dass USERNAME eine hat thumbnailPhoto? Vielleicht '(&(cn=USERNAME)(thumbnailPhoto=*))'stattdessen filtern und auch suchen jpegPhoto.
Hagen von Eitzen

Ich hätte -A verwenden sollen. Weder jpegPhoto noch thumbnailPhoto werden angezeigt ... aber das ist seltsam, da ich mein eigenes Lync-Bild definitiv als festgelegt sehe.
John O

Was passiert, wenn Sie explizit angeben, dass die Ausgabe ldif formatiert werden soll : ldapsearch -L?
Mathias R. Jessen

Hier ist ein Beispiel dafür, wie es in C # gemacht wird , von dem Sie möglicherweise zusätzliche Informationen erhalten.
Will

Antworten:


3

Wenn Sie Powershell anstelle von ldapsearch verwenden können, versuchen Sie Folgendes:

$user = Get-ADUser John -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content c:\temp\1.jpg -Encoding byte
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.