Вопрос по user-interface, powershell, active-directory, java – Использование Java для поиска простой информации Active Directory

4

Это мой первый пост, поэтому, пожалуйста, будьте осторожны.

Недавно я начал использовать Powershell на работе для изменения групп AD, поиска информации AD и т. Д., Но мне не хватает графического интерфейса, который мне так нравится в Java.

Есть ли простой способ (или пример кода), при котором я ввожу целевое имя хоста, и я вернулся с подробностями, которые я запрашиваю. AD memberhsip группы, информация об учетной записи и т. Д.?

Мое знание Java не так велико, как у моего Powershell, поэтому я буду очень признателен за максимально возможную помощь.

Спасибо

Неясно, о чем вы спрашиваете. Вы хотите выполнять запросы AD с использованием Java? zdan
Если вам нужен код Java, вы должны добавить тег для него! CB.
Да, я спрашиваю, как делать запросы AD с использованием JAVA obious
Почему бы просто не сделать графический интерфейс в PowerShell тоже? textbox, button и datagridview или, возможно, элемент управления браузера для отображения отчета в формате HTML. Вы можете создать его с помощью выигрышных форм или WPF. Andy Arismendi
Я думаю, что OP подразумевал, что он хотел бы приложение JAVA GUI для своего сценария powershell. Rekin

Ваш Ответ

1   ответ
8

Directory, вы можете взглянуть наApache Directory Studio.

Если вы хотите запросить AD только с помощью Java, вот пример кода:

class TestAD 
{ 
  static DirContext ldapContext; 
  public static void main (String[] args) throws NamingException 
  { 
    try 
    { 
      System.out.println("Début du test Active Directory"); 

      Hashtable<String, String> ldapEnv = new Hashtable<String, String>(11); 
      ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
      //ldapEnv.put(Context.PROVIDER_URL,  "ldap://societe.fr:389"); 
      ldapEnv.put(Context.PROVIDER_URL,  "ldap://dom.fr:389"); 
      ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); 
      //ldapEnv.put(Context.SECURITY_PRINCIPAL, "cn=administrateur,cn=users,dc=societe,dc=fr"); 
      ldapEnv.put(Context.SECURITY_PRINCIPAL, "cn=jean paul blanc,ou=MonOu,dc=dom,dc=fr"); 
      ldapEnv.put(Context.SECURITY_CREDENTIALS, "pwd"); 
      //ldapEnv.put(Context.SECURITY_PROTOCOL, "ssl"); 
      //ldapEnv.put(Context.SECURITY_PROTOCOL, "simple"); 
      ldapContext = new InitialDirContext(ldapEnv); 

      // Create the search controls          
      SearchControls searchCtls = new SearchControls(); 

      //Specify the attributes to return 
      String returnedAtts[]={"sn","givenName", "samAccountName"}; 
      searchCtls.setReturningAttributes(returnedAtts); 

      //Specify the search scope 
      searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); 

      //specify the LDAP search filter 
      String searchFilter = "(&(objectClass=user))"; 

      //Specify the Base for the search 
      String searchBase = "dc=dom,dc=fr"; 
      //initialize counter to total the results 
      int totalResults = 0; 

      // Search for objects using the filter 
      NamingEnumeration<SearchResult> answer = ldapContext.search(searchBase, searchFilter, searchCtls); 

      //Loop through the search results 
      while (answer.hasMoreElements()) 
      { 
        SearchResult sr = (SearchResult)answer.next(); 

        totalResults++; 

        System.out.println(">>>" + sr.getName()); 
        Attributes attrs = sr.getAttributes(); 
        System.out.println(">>>>>>" + attrs.get("samAccountName")); 
      } 

      System.out.println("Total results: " + totalResults); 
      ldapContext.close(); 
    } 
    catch (Exception e) 
    { 
      System.out.println(" Search error: " + e); 
      e.printStackTrace(); 
      System.exit(-1); 
    } 
  } 
}

Похожие вопросы