【转】winform 获取本地 用户 用户组 服务

//现在form上加一个System.Windows.Forms.TreeView viewPC;

private System.DirectoryServices.DirectoryEntry entryPC = new System.DirectoryServices.DirectoryEntry();

private void Form1_Load(object sender, EventArgs e)
{
    TreeNode users = new TreeNode("Users");
    TreeNode groups = new TreeNode("Groups");
    TreeNode services = new TreeNode("Services");
    viewPC.Nodes.AddRange(new TreeNode[] { users, groups, services });

    entryPC.Path = "WinNT://计算机名";

    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);
    }
}

private void AddPathAndProperties(TreeNode node, System.DirectoryServices.DirectoryEntry entry)
{
    node.Nodes.Add(new TreeNode("Path: " + entry.Path));
    TreeNode propertyNode = new TreeNode("Properties");
    node.Nodes.Add(propertyNode);
    foreach (string propertyName in entry.Properties.PropertyNames)
    {
        string oneNode = propertyName + ": " +
            entry.Properties[propertyName][0].ToString();
        propertyNode.Nodes.Add(new TreeNode(oneNode));
    }
}

posted @ 2013-05-22 19:19  cyes  阅读(91)  评论(0)    收藏  举报