No Windows XP em um ambiente de diretório ativo - qual é a maneira mais fácil de consultar o endereço de e-mail de um usuário do AD, dado seu nome de usuário na linha de comando.
(Supondo que eu saiba onde ele é mantido normalmente na árvore).
(Conheço o nome de login / domínio do usuário da rede, mas só quero o elemento de endereço de e-mail de volta.)
dsquery user -name "Nome Sobrenome" | dsget user -email
Se o e-mail que você deseja também for o nome principal do usuário, você pode obtê-lo com
No entanto, isso só funciona para obter o e-mail do usuário atual, não de qualquer usuário como a pergunta postulada originalmente.
algo como este dsquery pode funcionar.
consulta de e-mail por nome de usuário dsquery.exe * -filter "(&(objectClass=user)(!(objectClass=computer)(sAMAccountName=username)))" | dsget user -email
Eu li mal o post primeiro e pensei que você queria o nome de usuário do nome de e-mail. Por isso postei esse. dsquery.exe * -filter "(&(objectClass=user)(!(objectClass=computer)([email protected])))" -attr username
baseado em alguns scripts no trabalho e neste site que tem algumas outras idéias http://www.petri.co.il/forums/showthread.php?t=18464 sobre o uso do csvde.exe
adfind -sc u: "username" mail
Instale o Powershell e o pacote de complementos QuestAD. Então é algo como:
Você pode escrever VBScript simples para consultar através do LDAP Criar um arquivo com extensão VBS
Coloque dentro algo assim
Coloque o NOME DE USUÁRIO correto na string de consulta LDAP, execute o arquivo VBS e aproveite :)
Se for a primeira vez que trabalha com o LDAP, poderá ser um pouco complicado escrever a consulta do LDAP Para reconhecer o caminho do LDAP para o utilizador (isto é, o que precisa de colocar depois de LDAP://) poderá descarregar o Active Directory Explorer do Microsoft Run explorer, navegue até o usuário e veja o que ele mostra na caixa de texto Caminho
No meu caso era algo como CN=[nome do usuário],CN=Usuários,DC=[nome_da_cidade],DC=[nome_da empresa],DC=com,
LINQ para tudo ! Por conveniência:
1) Nas propriedades de consulta do LinqPad, adicione uma referência a System.DirectoryServices.AccountManagement.dll. 2) Importação de namespace adicional: System.DirectoryServices.AccountManagement
Encontrei este tópico que me ajudou a conseguir o que eu queria. Para obter quaisquer atributos de usuários do AD em variáveis de ambiente. Este script pega todos os atributos desejados do usuário logado e configura uma variável de ambiente correspondente. Eu prefixei as variáveis, mas isso é opcional, então o nome da variável se torna "AD [nome do atributo]". Atributos é de sua escolha, basta adicionar ou remover seu atributo após -attr. No entanto, não é muito útil para atributos de vários valores. O último (um) valor vai para a variável de ambiente.
Este script é local para o cmd.exe atual
Para obter variáveis de ambiente globais no Windows, podemos usar "setx" no Windows 7. (Para loginscript talvez... mas muito mais lento.)
:EDIT: um caractere de espaço no final da instrução set no exemplo 2 fez com que o valor terminasse com um espaço vazio. Removi para corrigir. ( Set %%A=%%B& setx... ) Também descobri que você deve exportar pelo menos dois atributos para que o script funcione corretamente.
Uma resposta tardia, mas se puder ajudar alguém, estou feliz.
Eu não sei se é compatível com a média do iniciador de rosca ou não. Mas acabei de encontrar uma solução para o meu problema existente que já foi resolvido depois de navegar neste tópico. Localizando USER LOGIN ID com base em KNOWN MAIL ADDRESS . :)
O arquivo [ salesforce-uid-mail-address.txt ] contém uma lista de endereços de e-mail. O arquivo [ salesforce-uid-cn.txt ] contém "CN completo com caminho". E o arquivo [ salesforce-uid-samid.txt ] contém "found SAMID" alias "user login name". Isso é tudo, pessoal. Qualquer ideia de melhoria é bem-vinda. :)