.NET: Как запросить базу данных NT / Users или запись? - PullRequest
0 голосов
/ 26 мая 2009

как мы можем запросить базу данных NT / Users для всех пользователей на машине?

Ответы [ 2 ]

3 голосов
/ 26 мая 2009

Вы можете использовать пространство имен System.DirectoryServices , чтобы сделать это. Вот отличная статья 1004 *, показывающая, как использовать классы этого пространства имен.

Вот код, показывающий, как это сделать:

DirectoryEntry entry = new DirectoryEntry("WinNT://MACHINE_NAME");
entry.AuthenticationType = AuthenticationTypes.Secure;

DirectorySearcher deSearch = new DirectorySearcher(entry);
deSearch.Filter = "(&(objectClass=user))";

SearchResultCollection results = deSearch.FindAll();

foreach (SearchResult srUser in results)
{
      try
      {
            DirectoryEntry de = srUser.GetDirectoryEntry();
            lstbox.Items.Add(de.Properties["sAMAccountName"].Value.ToString());
      }
      catch { }
}
2 голосов
/ 26 мая 2009

Я предполагаю, что вы используете C #. Вы можете получить их, используя WMI:

using System.Management;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            SelectQuery query = new SelectQuery("Win32_UserAccount");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            foreach (ManagementObject envVar in searcher.Get())
            {
                Console.WriteLine("Username : {0}", envVar["Name"]);
            }

            Console.ReadLine();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...