2

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

如果我运行:

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

}

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

但是查询计算机(将 ,group 更改为 ,computer)不会引发错误,但它似乎被忽略了(它返回所有对象?我还没有完全检查结果)。,用户也提出了错误。

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

4

1 回答 1

3

我相信你需要得到机器 - 团体是它的孩子。

尝试

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

随意用一些 LINQ 来为它增添趣味,但这应该会给你一个基本的想法。

于 2009-09-03T21:17:41.360 回答