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