LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】winform开发之创建windows系统用户

admin
2025年4月23日 7:57 本文热度 73

概述

之前做了个服务器主机助手,其中有个功能就是使用程序创建系统账户。本文实例讲述了C#创建windows系统用户的方法。分享给大家供大家参考。主要介绍了C#创建windows系统用户的方法,涉及C#操作用户名、密码、显示名称、描述、是否强制修改密码、密码是否过期等技巧。

主要代码实现

1、添加系统(域)用户

  /// <summary>        /// 添加系统(域)用户        /// </summary>        /// <param name="strUserName"></param>        /// <param name="strPassword"></param>        /// <param name="strDescription"></param>        /// <param name="strGroup"></param>        /// <returns></returns>        public static bool  AddUser(string strUserName, string strPassword, string strDescription, string strGroup)        {            using (DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer"))            {                try                {                    DirectoryEntry User = null;                    try                    {                        User = AD.Children.Find(strUserName, "user");//找到要删除的用户                        if (User == null)                            User = AD.Children.Add(strUserName, "user");                    }                    catch                    {                        User = AD.Children.Add(strUserName, "user");                    }
                   User.Invoke("SetPassword", new object[] { strPassword });   // 密码                    User.Properties["description"].Add(strDescription);  //添加描述                    //User.Invoke("Put", new object[] { "Description", strDescription });                    User.Invoke("Put", "UserFlags", 66049); //密码永不过期                    User.CommitChanges();
                   try                    {                        DirectoryEntry Group = AD.Children.Find(strGroup, "group");                        if (strGroup != null)                            Group.Invoke("Add", new object[] { User.Path.ToString() });                    }                    catch { }                }                catch (Exception ex)                {                    EventLog.WriteEntry("autosystem", System.Reflection.MethodBase.GetCurrentMethod().Name.ToString() + ":" + ex.Message, EventLogEntryType.Error);                            }            }

2、修改密码

 /*         * 修改密码         */        public static bool PwdModify(string strUserName, string strPassword)        {            using (DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer"))            {                try                {                    DirectoryEntry User = AD.Children.Find(strUserName);                    //修改密码                    User.Invoke("SetPassword", new Object[] { strPassword });                    User.CommitChanges();                }                catch {                    return false;                }            }            return true;

3、 删除系统(域)用户

 /// <summary>        /// 删除系统(域)用户        /// </summary>        /// <param name="strUserName">用户名</param>        /// <returns></returns>        public static bool RemoveUser(string strUserName)        {            try            {                using (DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer"))                {                    DirectoryEntry User = AD.Children.Find(strUserName, "user");//找到要删除的用户                    if (User != null)                        AD.Children.Remove(User);                }            }            catch            {                return false;            }            return true;

4、判断组下的用户是否存在

  /// <summary>        /// 判断组下的用户是否存在        /// </summary>        /// <param name="strGroupName">组名</param>        /// <param name="strUserName">用户名</param>        /// <returns></returns>        public static bool GroupSiteExists(string strGroupName, string strUserName)        {            try            {                using (DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer"))                {                    DirectoryEntry Group = AD.Children.Find(strGroupName, "group");// 找到组                    object members = Group.Invoke("Members", null);                    foreach (object member in (System.Collections.IEnumerable)members)                    {                        //获取该组的每个成员                        DirectoryEntry x = new DirectoryEntry(member);                        if (strUserName == x.Name) //要移除的用户存在的话,则从该组中移除。                        {                            return true;                        }                    }                }                return false;            }            catch            {                return false;            }
       }    }

希望本文所述对大家有所帮助。


阅读原文:原文链接


该文章在 2025/4/23 10:14:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved