• WMI.NET枚举计算机用户和组


        最近在学习WMI.NET,主要的任务需求是写一个IIS WMI Provider来实现对IIS自动的监控,管理。所以在网上搜寻了很多关于WMI.NET的信息,

    今天我们主要来展示一下使用WMI.NET来枚举计算机用户和组。

        涉及到计算机用户和用户组的WMI Class主要有以下四类:

        1. Win32_Account

        2. Win32_UserAccount

          3. Win32_Group

        4. Win32_GroupUser

        为了获取所有用户,你需要执行此查询语句:

    select * from Win32_Account where Domain='YOURDOMAIN'

       为了获取所有的用户组,你需要执行此查询语句:

    Select * from Win32_GroupUser where Domain='YOURDOMAIN'

       获取所有计算机用户代码如下:

    代码
    /// <summary>
            
    /// 获取所有用户
            
    /// </summary>
            public static void GetUsers()
            {
                SelectQuery sQuery 
    = new SelectQuery("Win32_UserAccount""Domain='LMY-PC'");
                
    try
                {
                    ManagementObjectSearcher mSearcher 
    = new ManagementObjectSearcher(sQuery);

                    Console.WriteLine(
    "User Accounts");
                    Console.WriteLine(
    "");

                    
    foreach (ManagementObject mObject in mSearcher.Get())
                    {
                        Console.WriteLine(mObject[
    "Name"]);
                    }
                }
                
    catch(Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                Console.ReadKey();
            }

    获取计算机的所有用户组的代码如下:

    代码
     /// <summary>
            
    /// 获取所有用户组
            
    /// </summary>
            public static void GetGroups()
            {
                SelectQuery sQuery 
    = new SelectQuery("Win32_Group""Domain='LMY-PC'");

                
    try
                {
                    ManagementObjectSearcher mSearcher 
    = new ManagementObjectSearcher(sQuery);

                    Console.WriteLine(
    "User Groups");
                    Console.WriteLine(
    "");

                    
    foreach (ManagementObject mObject in mSearcher.Get())
                    {
                        Console.WriteLine(mObject[
    "Name"]);
                    }
                }
                
    catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                Console.ReadKey();
            }

    获取计算机特定用户组的所有用户的代码如下:

    代码
     public static void GetUsers(String DomainName, string GroupName)
            {
                
    #region Bulid WMI query using SelectQuery
                StringBuilder sBuilder 
    = new StringBuilder("GroupComponent=");
                sBuilder.Append(
    '"');
                sBuilder.Append(
    "Win32_Group.Domain=");
                sBuilder.Append(
    "'");
                sBuilder.Append(DomainName);
                sBuilder.Append(
    "'");
                sBuilder.Append(
    ",Name=");
                sBuilder.Append(
    "'");
                sBuilder.Append(GroupName);
                sBuilder.Append(
    "'");
                sBuilder.Append(
    '"');
                SelectQuery sQuery 
    = new SelectQuery("Win32_GroupUser", sBuilder.ToString());
                
    #endregion

                
    try
                {
                    ManagementObjectSearcher mSearcher 
    = new ManagementObjectSearcher(sQuery);
                    
    foreach (ManagementObject mObject in mSearcher.Get())
                    {
                        ManagementPath path 
    = new ManagementPath(mObject["PartComponent"].ToString());
                        
    if (path.ClassName =="Win32_UserAccount")
                        {
                            
    string[] names = path.RelativePath.Split(',');
                            Console.WriteLine(names[
    1].Substring(names[1].IndexOf("="+ 1).Replace('"'' ').Trim());
                        }
                    }
                }
                
    catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                Console.ReadKey();
            }
  • 相关阅读:
    清北学堂总结(未完待续。。。。。。。)
    洛谷p3372 线段树模版
    SPFA模版
    线段树 洛谷 p1531 I hate it(I hate it too)
    01 背包找装满方案数 洛谷 p1164 小a点菜
    01 找最大剩余体积 洛谷1049 装箱问题
    洛谷 p1880 石子合并 区间dp
    石子合并 最大值
    清北学堂入学测试d
    HTML 标记 3 —— 框架
  • 原文地址:https://www.cnblogs.com/limingyang/p/1637404.html
Copyright © 2020-2023  润新知