2012-08-25 22 views
0

如何獲取Active Directory用戶列表(僅顯示在Windows登錄屏幕中的用戶)如何獲取Active Directory用戶列表(僅顯示在Windows登錄屏幕中的用戶)

我嘗試了很多使用Windows原理庫的方法& WMI Select命令。我不斷收到Admministrator,Guest &其他一些VUSRNEIL-DELL。這三個用戶帳戶都不會出現在登錄屏幕上。我如何才能在這些用戶類型之間進行決定?

+1

AD用戶通常不會出現在登錄屏幕上,是嗎?本地用戶呢。 – PhilMasterG

回答

1
//Add a reference on System.DirectoryServices.dll 
    using System.DirectoryServices;  
    //Connect to your LDAP 
    DirectoryEntry Ldap = new DirectoryEntry("LDAP://ADName", "Login", "Password"); 
    DirectorySearcher searcher = new DirectorySearcher(Ldap); 
    //specify that you search user only by filtering AD objects 
    searcher.Filter = "(objectClass=user)"; 
    //Loop on each users 
    foreach(SearchResult result in searcher.FindAll()) 
     { 
      // On récupère l'entrée trouvée lors de la recherche 
      DirectoryEntry DirEntry = result.GetDirectoryEntry(); 

      //On peut maintenant afficher les informations désirées 
      Console.WriteLine("Login : " + DirEntry.Properties["SAMAccountName"].Value); 
      Console.WriteLine("FirstName: " + DirEntry.Properties["sn"].Value); 
      Console.WriteLine("LastName: " + DirEntry.Properties["givenName"].Value); 
      Console.WriteLine("Email : " + DirEntry.Properties["mail"].Value); 
      Console.WriteLine("Phone: " + DirEntry.Properties["TelephoneNumber"].Value); 
      Console.WriteLine("Description : " + DirEntry.Properties["description"].Value); 

      Console.WriteLine("-------------------"); 
     } 
+0

這將給你**所有**用戶從整個域 - 即使只是列舉這些可能需要相當長的時間... –

+0

我不想在一個域上的用戶。我只是想在本地機器上使用用戶。在我的情況下,我有2個用戶(不在域上)在啓動時出現在登錄屏幕上。我只希望從我的方法返回的這2個帳戶(沒有管理員,訪客等) –

0

檢查Win32_LogonSessionWin32_LoggedOnUser類(其中Win32_LogonSession.LogonType = '2'),用於登錄的用戶的當前,然後可以涉及回Win32_Account類;)

相關問題