zoukankan      html  css  js  c++  java
  • 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();
            }
  • 相关阅读:
    beta分布
    python中os.walk浏览目录和文件
    (zz)Linux下Gcc生成和使用静态库和动态库详解
    GNU scientific library
    python 字典有序无序及查找效率,hash表
    Python代码分析工具之dis模块
    python里的坑。http://www.pythoner.com/356.html
    python实现单向链表
    Python 执行字符串表达式函数(eval exec execfile)
    版本管理神器git上手
  • 原文地址:https://www.cnblogs.com/limingyang/p/1637404.html
Copyright © 2011-2022 走看看