Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET:如何查询NT/用户数据库或记录?_.net_Windows - Fatal编程技术网

.NET:如何查询NT/用户数据库或记录?

.NET:如何查询NT/用户数据库或记录?,.net,windows,.net,Windows,如何查询机器上所有用户的NT/Users数据库?您可以使用名称空间来执行此操作。下面描述了如何使用该名称空间的类 下面是显示如何执行此操作的代码: DirectoryEntry entry = new DirectoryEntry("WinNT://MACHINE_NAME"); entry.AuthenticationType = AuthenticationTypes.Secure; DirectorySearcher deSearch = new DirectorySearcher(en

如何查询机器上所有用户的NT/Users数据库?

您可以使用名称空间来执行此操作。下面描述了如何使用该名称空间的类

下面是显示如何执行此操作的代码:

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 { }
}
您可以使用名称空间来执行此操作。下面描述了如何使用该名称空间的类

下面是显示如何执行此操作的代码:

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 { }
}
我想你用的是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();
        }
    }
}
我想你用的是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();
        }
    }
}

为了获得本地用户,您必须编写“WinNT://MACHINE\u NAME”而不是“LDAP://MYDOMAIN”,谢谢,Kay。更新了答案。为了获得本地用户,您必须写“WinNT://MACHINE\u NAME”而不是“LDAP://MYDOMAIN”谢谢,Kay。更新了答案。