none
Exportar informações em detalhes do AD RRS feed

  • Pergunta

  • Galera, sei que o que vou pedir é bizarro, mas foi pedido de diretoria...

    Sabem como faço pra exportar o registro de usuários do AD? Preciso do seguinte:

    ID/Usuário
    Nome completo
    Status: Ativo, inativo, bloqueado, etc.
    Data da criação do ID/usuário
    Data do último acesso do usuário
    Data da última alteração no usuário
    ID que realizou a última alteração
    Data do bloqueio
    Data de vencimento da senha
    Privilégios: administrador, auditor, etc


    E do seguinte:

    Além do acima arquivo com log de criação, alteração, bloqueio, exclusão, etc., de usuários do AD.

    E aí? Algum mágico de AD?

    terça-feira, 26 de junho de 2012 14:32

Respostas

Todas as Respostas

  • Segue o link que poderá lhe ajudar:

    http://gallery.technet.microsoft.com/scriptcenter/1e3eca73-21c5-4ee4-9bb0-e43ed138aec7


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    • Marcado como Resposta Richard Juhasz quinta-feira, 28 de junho de 2012 17:40
    terça-feira, 26 de junho de 2012 16:02
  • Outro link para exportar para um arquivo do excel:

    http://www.visualbasicscript.com/Export-Active-Directory-Users-to-Excel-Worksheet-m29830.aspx


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    terça-feira, 26 de junho de 2012 16:03
  • Não sei se vai lhe ajudar mas segue em C#

    Abra um novo form:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.DirectoryServices;
    using System.Text.RegularExpressions;
    using System.Configuration;
    
    namespace ListaAD
    {
        public partial class Form1 : Form
        {
            public string LDAP 
            {
                get
                {
                    return ConfigurationManager.AppSettings["LDAP"];
                }
            }
    
            public Form1()
            {
                InitializeComponent();
            }
            
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    string UserName = textBox1.Text;
    
                    using (DirectoryEntry root = new DirectoryEntry(LDAP))
                    {
                        using (DirectorySearcher searcher = new DirectorySearcher(root))
                        {
                            var username = Regex.Replace(UserName, @".*\\", string.Empty);
                            searcher.ReferralChasing = ReferralChasingOption.All;
                            searcher.SearchScope = SearchScope.Subtree;
    
                            //string account = string.Format("(sAMAccountName={0})", username);
                            //string filter = string.Format("(&(objectCategory=user)(objectClass=person){0})", (username.Length > 0 ? account : string.Empty));
    
                            string filter = "(&(objectCategory=user)(objectClass=person))";
    
                            searcher.Filter = filter;
                            SearchResultCollection foundUsers = searcher.FindAll();
    
                            List<Contatos> lstContatos = new List<Contatos>();
                            
                            foreach (SearchResult user in foundUsers)
                            {
                                try
                                {   
                                    var name = user.Properties["displayName"].Count == 0 ? string.Empty : user.Properties["displayName"][0].ToString();
                                    // variavel usuar recebe o login dos usuários
                                    var usuar = user.Properties["sAMAccountName"].Count == 0 ? string.Empty : user.Properties["sAMAccountName"][0].ToString();
                                    var mail = user.Properties["mail"].Count == 0 ? string.Empty : user.Properties["mail"][0].ToString();
                                    //System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString(); 
                                    if (!checkBox1.Checked || mail.Length > 0)
                                    {
                                        Contatos contato = new Contatos();
                                        contato.Nome = name;
                                        contato.Email = mail;  //pega o e-mail do AD mas caso não tenha cadastro real não aparece
                                        contato.Login = usuar +"@SUAEMPRESA.com.br"; // Adicionado para pegar o login do usuário + @SUAEMPRESA.com.br
                                        lstContatos.Add(contato);
                                    }
                                }
                                catch { }
                            }
    
                            if (lstContatos.Count > 0)
                            {
                                Contatos[] contatos = lstContatos.ToArray();
                                dataGridView1.DataSource = contatos;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }


    Crie um arquivo Contato.cs e coloque o seguinte código:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ListaAD
    {
        public class Contatos
        {
            public string Nome { get; set; }
            public string Email { get; set; }
            public string Login { get; set; }
        }
    }

    É meio antigo, mas creio que pode te ajudar foi oq me ajudou na época!

    Abraços,


    RODRIGO COIMBRA | Consultor de TI Gtalk / MSN: - coimbra.rodrigo [no] gmail [pto] com Home Page - http://projetoseti.com.br/ Twitter - @projetoseti (blog) | Twitter - @coimbrarodrigo (pessoal)


    • Editado Coimbra terça-feira, 3 de julho de 2012 00:26
    • Sugerido como Resposta Coimbra quinta-feira, 13 de dezembro de 2012 11:58
    terça-feira, 3 de julho de 2012 00:26