列出所有使用目录服务的本地用户
我创建的以下方法似乎不起作用。 foreach 循环总是会发生错误。
NotSupportedException 未处理...提供程序不支持 正在搜索,无法搜索到WinNT://WIN7,computer。
我正在查询本地机器
private static void listUser(string computer)
{
using (DirectoryEntry d= new DirectoryEntry("WinNT://" +
Environment.MachineName + ",computer"))
{
DirectorySearcher ds = new DirectorySearcher(d);
ds.Filter = ("objectClass=user");
foreach (SearchResult s in ds.FindAll())
{
//display name of each user
}
}
}
The following method I created seem does not work. An error always happens on foreach loop.
NotSupportedException was unhandled...The provider does not support
searching and cannot search WinNT://WIN7,computer.
I'm querying the local machine
private static void listUser(string computer)
{
using (DirectoryEntry d= new DirectoryEntry("WinNT://" +
Environment.MachineName + ",computer"))
{
DirectorySearcher ds = new DirectorySearcher(d);
ds.Filter = ("objectClass=user");
foreach (SearchResult s in ds.FindAll())
{
//display name of each user
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不能将
DirectorySearcher
与WinNT
提供商。从文档中:相反,请使用
DirectoryEntry.Children
属性< /a> 访问Computer
对象,然后使用SchemaClassName
属性 查找用户
对象。使用 LINQ:
不使用 LINQ:
You cannot use a
DirectorySearcher
with theWinNT
provider. From the documentation:Instead, use the
DirectoryEntry.Children
property to access all child objects of yourComputer
object, then use theSchemaClassName
property to find the children that areUser
objects.With LINQ:
Without LINQ:
以下是获取本地计算机名称的几种不同方法:
下一种是获取当前用户名的方法:
The following are a few different ways to get your local computer name:
The next one is a way to get the current user name: