root就是网上邻居的全体用户的意思Children指的是它下面所有域和工作组的集合DirectoryEntry domain 指这些域和工作组中的一个取得一个doamin, 把它加到lb_pcName的下拉列表里再循环取理此doamin下的pc, 如果pc的名称不是"Schema", 也把pc的名字加到combobox里头去
就这两个循环啊

解决方案 »

  1.   

    呵呵!先試試好像還有一個用 select 語句的
      

  2.   

    foreach(DirectoryEntry domain in root.Children) //例举根域中的各个主域
    {
    lb_pcName.Items.Add("★★★"+domain.Name+"★★★");
    foreach(DirectoryEntry pc in domain.Children) //该域主中的主机
    {
    if(pc.Name!="Schema") //Schema是结束标记
    lb_pcName.Items.Add(" "+pc.Name);
    }
    }楼上的select 是指WMI 查询
      

  3.   

    不就是两个循环嘛~~代码本身都已经是很清晰了。
    顺便问阿利一句:WMI查询指的是什么?
      

  4.   

    楼主:我将你的代码编译,提示我错误
    D:\Net\C#\找出局域网中找出所有的机器\Form1.cs(102): The type or namespace name 'root' could not be found (are you missing a using directive or an assembly reference?)是否应该加using *****?请指教
      

  5.   

    看看帮助文件吧!很详细了
    foreach(System.DirectoryServices.DirectoryEntry child 
    in entryPC.Children) 
    {
    TreeNode newNode = new TreeNode(child.Name);
    switch (child.SchemaClassName) 
    {
    case "User" :
    users.Nodes.Add(newNode);   
    break;
    case "Group" :
    groups.Nodes.Add(newNode);   
    break;
    case "Service" :
    services.Nodes.Add(newNode);   
    break;
    }
    AddPathAndProperties(newNode, child);
    } }
      

  6.   

    root 和 entryPC 要引用哪个命名空间?
      

  7.   

    using System.DirectoryServices;private System.DirectoryServices.DirectoryEntry root;这样做很容易被用户砍的,
    我发现要列出40台机子都要2分钟,
    谁都会疯掉的。
    用多线程不知道如何?那位达人做过教教我们。
      

  8.   

    要引用System.DirectoryServices.dll到程序集