• WMI远程添加修改用户


    /// <summary>
        /// WMI用户操作
        /// </summary>
        public class Win32_UserAccount
        {
            private string ip = string.Empty;
            public string IP
            {
                get { return ip; }
                set { ip = value; }
            }

            private string username = string.Empty;
            public string UserName
            {
                get { return username; }
                set { username = value; }
            }

            private string password;

            public string PassWord
            {
                get { return password; }
                set { password = value; }
            }

            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="_ip">目标IP地址</param>
            /// <param name="_username">管理员用户名</param>
            /// <param name="_password">密码</param>
            public Win32_UserAccount(string _ip, string _username, string _password)
            {
                IP = _ip;
                UserName = _username;
                PassWord = _password;
            } 

            /// <summary>
            /// 返回所有用户
            /// </summary>
            /// <returns>帐号数组</returns>
            public string[] ViweUsers()
            {
                try
                {
                    ConnectionOptions options = new ConnectionOptions();
                    options.Username = UserName;
                    options.Password = PassWord;

                    ManagementScope Conn = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);
                    Conn.Connect();
                    //确定WMI操作的内容
                    ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_UserAccount");
                    ManagementObjectSearcher query1 = new ManagementObjectSearcher(Conn, oq);
                    //获取WMI操作内容
                    ManagementObjectCollection queryCollection1 = query1.Get();
                    //根据使用者选择,执行相应的远程操作
                    string[] s = new string[queryCollection1.Count];
                    int i=0;
                    foreach (ManagementObject mo in queryCollection1)
                    {
                        s[i] += mo.GetPropertyValue("Name");
                        i++;
                    }
                    return s;
                }
                //报错
                catch (Exception ee)
                {
                    throw ee;
                }
            }

            /// <summary>
            /// 修改帐号密码
            /// </summary>
            /// <param name="_ChangeUserName">要修改的帐号</param>
            /// <param name="_ChangePassWord">修改后的密码</param>
            /// <returns>是否成功</returns>
            public bool ChangePassWordByCmd(string _ChangeUserName,string _ChangePassWord)
            {
                try
                {

                    ConnectionOptions options = new ConnectionOptions();
                    options.Username = UserName;
                    options.Password = PassWord;

                    ManagementScope Conn = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);
                    Conn.Connect();

                    ManagementPath path = new ManagementPath("Win32_Process");
                    ManagementClass processClass = new ManagementClass(Conn, path, null);

                    ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

                    //Parameters for creation of process.
                    inParams["CommandLine"] = "net user " + _ChangeUserName + " "+_ChangePassWord+"";

                    //Invoke Method.
                    ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

                    return true;
                }
                //报错
                catch (Exception ee)
                {
                    return false;
                }
            }

            /// <summary>
            /// 添加用户
            /// </summary>
            /// <param name="_NewUserName">用户名</param>
            /// <param name="_NewPassWord">密码</param>
            /// <returns>是否成功</returns>
            public bool AddUserByCmd(string _NewUserName,string _NewPassWord)
            {
                try
                {

                    ConnectionOptions options = new ConnectionOptions();
                    options.Username = UserName;
                    options.Password = PassWord;

                    ManagementScope Conn = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);
                    Conn.Connect();

                    ManagementPath path = new ManagementPath("Win32_Process");
                    ManagementClass processClass = new ManagementClass(Conn, path, null);

                    ManagementBaseObject inParams1 = processClass.GetMethodParameters("Create");

                    //Parameters for creation of process.
                    inParams1["CommandLine"] = "net user "+_NewUserName+" "+_NewPassWord+" /add";


                    //Invoke Method.
                    ManagementBaseObject outParams1 = processClass.InvokeMethod("Create", inParams1, null);
                    ManagementBaseObject inParams2 = processClass.GetMethodParameters("Create");
                    inParams2["CommandLine"] = "net localgroup administrators " + _NewUserName + " /add ";
                    ManagementBaseObject outParams2 = processClass.InvokeMethod("Create", inParams2, null);
                    return true;
                }
                //报错
                catch
                {
                    return false;
                }
            }

            /// <summary>
            /// 删除用户
            /// </summary>
            /// <param name="_DelUserName">要删除的用户名</param>
            /// <returns>是否成功</returns>
            public bool DelUserByCmd(string _DelUserName)
            {
                try
                {
                    ConnectionOptions options = new ConnectionOptions();
                    options.Username = UserName;
                    options.Password = PassWord;

                    ManagementScope Conn = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);
                    Conn.Connect();

                    ManagementPath path = new ManagementPath("Win32_Process");
                    ManagementClass processClass = new ManagementClass(Conn, path, null);

                    ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

                    inParams["CommandLine"] = "net user " + _DelUserName + " /delete";

                    ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }

  • 相关阅读:
    jQuery源代码学习笔记_01
    jQuery学习心得
    前端笔试题目练习
    JavaScript Date学习实例:获取3分钟前的时间“hhmmss”格式
    JavaScript Date 学习心得
    Javascript 中的false、0、null、undefined和空字符串对象
    JavaScript比较运算符——"== != === !=="区别
    JavaScript运算符优先级——"++,--,&&,||“
    JavaScript操作符(=?,)优先级
    JavaScript控制流及关键字与C语言之比较
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1558448.html
Copyright © 2020-2023  润新知