Se você pode usar o powershell em vez de ldapsearch, tente o seguinte:
$user = Get-ADUser John -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content c:\temp.jpg -Encoding byte
Estou usando o binário ldapsearch.exe que foi instalado junto com um cliente Oracle. Demorou algum tempo para extrair os argumentos que queria, mas eu sou capaz de se conectar com êxito ao AD e analisar atributos de texto (dado um nome de usuário, procure um e-mail, etc). Mas também gostaria de pegar as imagens de avatar que o Exchange / Lync usa. De acordo com a documentação da Microsoft que eu desenterrei, o nome do atributo é thumbnailPhoto . Eu não consegui descobrir no começo, mas esse comando não produz mensagens de erro irritadas:
ldapsearch -v -h xxx.yyy.edu -Z -b cn=USERNAME,ou=Computers,ou=yyy,dc=yyy,dc=edu cn=USERNAME thumbnailPhoto
Quando eu executo isso, recebo a seguinte saída:
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
Não há arquivo no diretório atual, não há arquivo em% TEMP%. Se eu usar -t com ou sem argumentos, nenhum arquivo será baixado. Nenhum lixo binário preenche a janela do console. Eu recebo um comportamento idêntico, quer eu execute ou não o comando do bash (msys) ou cmd.exe.
O que dá? Parece que estou fazendo tudo certo. Mas estou ficando sem maneiras de depurar. Eu nem estou usando as ferramentas certas?
Se você pode usar o powershell em vez de ldapsearch, tente o seguinte:
$user = Get-ADUser John -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content c:\temp.jpg -Encoding byte
Tags bash ldap active-directory lync