询问当地团体

时间:2009-09-03 20:49:01

标签: c# .net adsi

我想在我的机器上检索所有本地组(W2k3域中的Vista)。

如果我跑:

using (DirectoryEntry de = new DirectoryEntry("WinNT://" + Environment.MachineName + ",group", null, null, AuthenticationTypes.Secure))
{

}

它会抛出“未知错误”0x80005000,这显然意味着“无效路径”

然而,查询计算机(更改,分组到,计算机)不会引发错误,但它似乎被忽略(它返回所有对象?我还没有完全检查结果)。 ,用户也会引发错误。

所以我的问题是,我是在正确的道路上吗?有没有办法应用过滤器,所以我不检索一切?如果是这样,我在哪里可以找到正确的语法?

1 个答案:

答案 0 :(得分:3)

我相信你需要得到这台机器 - 团队就是这样的孩子。

尝试

DirectoryEntry machine = new DirectoryEntry("WinNT://" + Environment.MachineName + ",Computer");
foreach (DirectoryEntry child in machine.Children)
{
    if (child.SchemaClassName == "Group")
    {
        Debug.WriteLine(child.Name);
    }
}

随意使用一些LINQ来加强它,但这应该给你基本的想法。