Usuário com melhor resposta
Exportar informações em detalhes do AD

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?
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
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
-
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!
-
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)