c# 操作ad域用户
测试环境:win2008r2服务器
ad域服务器安装参考:https://www.cnblogs.com/cnjavahome/p/9029665.html
密码策略修改参考:https://blog.csdn.net/zouyujie1127/article/details/40857675
工作机dns设置为ad域服务器的ip
using:
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
获取组织单位:
public DirectoryEntry GetOU(DirectoryEntry parent, string ouname){DirectorySearcher mySearcher = new DirectorySearcher(parent, "(objectclass=organizationalUnit)");DirectorySearcher deSearch = new DirectorySearcher();deSearch.SearchRoot = parent;deSearch.Filter = string.Format("(&(objectClass=organizationalUnit) (OU={0}))", ouname);SearchResult results = deSearch.FindOne();if (results != null){return results.GetDirectoryEntry();}else{return null;}}
建组织单位:
public void AddOU(DirectoryEntry parent, string ouname){DirectoryEntries ous = parent.Children;DirectoryEntry ou = ous.Add("OU=" + ouname, "organizationalUnit");ou.CommitChanges();ou.Close();}
建立连接:
public PrincipalContext createConnection(List<string> oupath = null){string path = "";foreach (string str in _domainArr){path += string.Format(",DC={0}", str);}if (oupath != null){string tmp = "";for (int i = oupath.Count - 1; i >= 0; i--){tmp += string.Format(",OU={0}", oupath[i]);}tmp = tmp.Substring(1);path = tmp + path;}else{path = path.Substring(1);}var context = new PrincipalContext(ContextType.Domain, _domain, path, ContextOptions.Negotiate, _adminName, _adminPass);return context;}
建用户:
public void AddUser(PrincipalContext context, string barcode, string userName, string passWord){using (UserPrincipal u = new UserPrincipal(context, barcode, passWord, true)){u.Name = barcode;u.DisplayName = userName;u.UserCannotChangePassword = true;u.PasswordNotRequired = true;u.PasswordNeverExpires = true;u.UserPrincipalName = barcode + "@" + _domain;u.Save();}}
修改密码:
public void EditPass(string userName, string passWord){using (var context = createConnection()){UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);if (user != null){user.SetPassword(passWord);user.Save();}}}
删除用户:
public void DelUser(string userName){using (var context = createConnection()){UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);if (user != null){user.Delete();}}}
登录验证:
public bool login(string name, string password){DirectoryEntry root = null;try{string ADPath = rootPath();root = new DirectoryEntry(ADPath, name, password, AuthenticationTypes.Secure);string strName = root.Name;root.Close();root = null;return true;}catch (Exception ex){System.Diagnostics.Debug.WriteLine(ex.Message);return false;}}
c# 操作ad域用户相关推荐
- 域用户指定计算机,什么是AD域,如何设置AD域用户仅登录到指定的计算机
什么是AD域? 简单理解:Active Directory域内的directory database(目录数据库)是被用来存储用户账户.计算机账户.打印机和共享文件夹等对象,而提供目录服务的组件就是A ...
- ad域控查看ldap端口命令_工作笔记(一)LDAP和AD介绍以及使用LDAP操作AD域
1. LDAP入门 1.1 定义 LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,LDAP标准实际上是在X.500标准基础上产生的一个简化 ...
- java修改AD域用户密码使用SSL连接方式
正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ...
- AD 域服务简介(二)- Java 获取 AD 域用户
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ...
- 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...
- SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
转:http://www.cnblogs.com/nbpowerboy/p/3355943.html 前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真 ...
- AD域用户密码过期-用户如何实现AD域密码自助修改或重置?
工作中我们经常会遇到AD域密码过期的情况,由于没有及时对AD域密码进行修改导致AD域密码过期,用户不能登录.AD域密码为什么会过期呢?这与IT管理员的AD域密码策略有关.为了防止恶意者进行密码攻击,I ...
- AD域用户密码重置_AD域自助管理之道
AD域管理一直以来都是企业IT管理员的一项重要工作之一.不过,IT管理员面临一些AD域用户管理问题时仍无法高效妥善处理.例如,由于域内执行密码策略,大量用户没有及时更改密码导致大量用户密码过期.管理员 ...
- ad域服务器信息怎么获取,获取AD域用户登入信息
获取AD用户登入信息 详细记录AD域用户登入过哪些终端电脑 1: Dim con Set objSysInfo = CreateObject("ADSystemInfo") str ...
最新文章
- JAVA String之contains方法使用
- 归一化EvoNorms
- 【工作相关】公子龙:工作后我变强了,暂时没秃
- 数据链路层: HDLC
- uva live 2326 - Moving Tables
- jenkins+docker+nginx服务并访问vue项目
- 软件安装 | SolidWorks2016软件安装,SW2010-2016.Activator.GUI.SSQ激活闪退解决办法
- NC21499-今天,你惹对象生气了吗(dfs)
- selenium3.0操作复选框
- Mac 激活win10-报错:所请求的操作需要提升特权
- Spring的运行原理
- mbr gpt 互转
- 物理机安装linux系统
- Python爬虫方法三部曲之二-实战训练
- 11.Django基础九之中间件
- 音视频基础:视频的编码
- 无人驾驶(目前的自动驾驶方案)
- linux awk sed strace,docker 中进行strace的三种方式
- 【SpringBoot】70、SpringBoot实现MySQL数据库自动备份管理系统
- 数据结构 图 的思维导图