2012-04-18 13 views
4

これは私の最初の投稿ですので、優しくしてください。Javaを使用して簡単なActive Directory情報を探す

私は最近、ADグループの変更、AD情報の検索などPowershellの使用を開始しましたが、私はJavaについて多くのGUIが不足しています。

私はターゲットホスト名を入力する簡単な方法(またはコードの例)がありますか?私が求めている詳細が返されます。 ADメンバーシップグループ、アカウント情報など

私のJavaの知識は私のPowershellほど大きくはありませんので、できるだけ多くの助けが本当に便利になるでしょう。

おかげ

+0

Javaコードが必要な場合、あなたはそれのためのタグを追加する必要があります! –

+1

あなたが何を求めているのかは不明です。 javaを使用してADクエリを実行しますか? – zdan

+0

OPは、彼がpowershellスクリプト用のJava GUIアプリケーションを好きだと思ったのです。 – Rekin

答えて

6

は、Active-Directoryを照会するための完全なJavaのGUIを探しているなら、あなたはApache Directory Studioに見ていることがあります。

あなただけのJavaを使用してADを照会したい場合は、ここでのサンプルコードは次のとおりです。

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); 
    } 
    } 
} 
関連する問題