扫描不同域下的AD账户进行删除
public ResultModel GetEntryOneToDel(string sAMAccountName)
{
bool del=false;
ResultModel result = new ResultModel();
foreach (var ldap in LDAPStore)
{
ADHelper.DomainName = ldap.DomainName;
ADHelper.LDAPDomain = ldap.LDAPDomain; //ADHelper.DomainName = ldap.LDAPDomain;
ADHelper.ADPath = ldap.ADPath;
ADHelper.ADUser = ldap.ADUser;
ADHelper.ADPassword = ldap.ADPassword;
if (ADHelper.IsAccExists(sAMAccountName))
{
del = true;
break;
}
}
if (del == true)
{ DirectoryEntry de = null;
DirectoryEntry userEntry = new DirectoryEntry();
try
{
de = ADHelper.GetDirectoryObject();
DirectorySearcher deSearch = new DirectorySearcher(de);
deSearch.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" +
sAMAccountName + "))"; // LDAP 查询串
SearchResult sr = deSearch.FindOne();
userEntry = sr.GetDirectoryEntry();
de = userEntry.Parent;
de.Children.Remove(userEntry);
de.CommitChanges();
de.Dispose();
userEntry.Dispose();
result.ExecResult = ExecResult.Success;
return result;
}
catch (Exception ex)
{
de.Dispose();
userEntry.Dispose();
result.ExecResult = ExecResult.Failure;
LogHelper.WriteLog(new LogModel(Level.Error, DateTime.Now, "del ADAccount is error: " + ex.Message));
return result;
}
}
else
{
result.ExecResult = ExecResult.Failure;
result.ResultMessage = "无此帐号";
LogHelper.WriteLog(new LogModel(Level.Error, DateTime.Now, "del ADAccount is not Exists" ));
return result;
} }
利用ADHelper提供的共有方法,先扫描所有域(格式XML),如果存在SAMAccountName,则返回True,利用
DirectoryEntry ,和过滤器等类方法进行删除,像是找一个同学,不需要知道年级、班,只需要知道学生编号就好,因为即使手里掌握不同的学校名(域名),因编号是唯一的,也能找到他。
扫描不同域下的AD账户进行删除的更多相关文章
- .net core在Linux下获取AD域信息
.net core在Linux下获取AD域信息 .net Core 2.1.4 .net core现在System.DirectoryServices只支持Windows平台下使用. 参考: http ...
- 使用ADMT和PES实现window AD账户跨域迁移-介绍篇
使用 ADMT 和 pwdmig 实现 window AD 账户跨域迁移系列: 介绍篇 ADMT 安装 PES 的安装 ADMT:迁移组 ADMT:迁移用户 ADMT:计算机迁移 ADMT:报告生成 ...
- (原创)AD账户误删导致Exchange邮箱被删 莫苦恼
由于人员变动,离职人员AD账户和邮箱经常要删除.但是在删除AD账户的时候难免会犯错,将在用的用户给删除了,这是个痛苦的事情, 然后你会发现Exchange邮箱也会跟着删除,抓狂了..,还好,幸亏这里进 ...
- Hyper-V 2012 R2 故障转移群集之建立域控(AD DS)与加入域
Windows 2012 R2建立域控(AD DS)与加入域 Active Directory概述: 使用 Active Directory(R) 域服务 (AD DS) 服务器角 ...
- AD账户锁定策略
AD账户锁定策略在一个域中可以有多套,密码策略只能有一套
- IIS7下设置AD单点登录
简介:IIS7下设置AD单点登录 1.选中网站,双击“身份验证”: 2.启用“Window身份验证”.禁用“匿名身份验证”.启用“基本身份验证”: 3.在“基本身份验证”上面点右键,选择“编辑”,输入 ...
- 配置联想IMM使用AD账户登录
IMM是联想(IBM)服务器的管理卡Integrated Management Module的缩写,现在是第二个版本.通过它可以远程管理服务器,就像你在服务器面前操作一样.可以修改BIOS设置,可以重 ...
- [boost][filesystem] 扫描给定目录下所有项
Intro. Boost的filesystem可以用来扫描给定目录下的所有项. 实现 具体实现代码如下: 需要包含的头文件和使用的命名空间: #include <boost/filesystem ...
- Java反射1——扫描某个包下的所有类
1.从包package中获取所有的Class /** * 从包package中获取所有的Class * * @param pack * @return */ public static Set< ...
随机推荐
- spark的wordcount
在开发环境下实现第一个程序wordcount 1.下载和配置scala,注意不要下载2.13,在spark-core明确支持scala2.13前,使用2.12或者2.11比较好. https://ww ...
- Tomcat启动分析(一)-从脚本到main函数分析
当我们在Linux下启动tomcat的时候,通过ps查看其进程信息为,接下来的内容我们就以此进行分析: [tomcat@fdd ~]$ ps -ef |grep java tomcat : tty1 ...
- [Go] gocron源码阅读-flag包实现命令行参数获取
调用flag包可以方便的获取到命令行中传递的参数,比如可以实现类似nginx执行程序获取命令行参数执行不同操作的目标 package main import ( "flag" &q ...
- [日常] lscpu查看cpu的详细信息
查看自己电脑的cpu的详细信息 root@tao-PC:/home/tao# lscpu Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte Or ...
- [Linux] docker 方式安装和使用gitlab-ce
gitlab就相当于我们自己内网搭建的git服务,相当于公司内的github. 拉取镜像docker pull gitlab/gitlab-ce 创建宿主机的数据目录mkdir -p /mnt/git ...
- Drop_out--防止过拟合
With probability keep_prob, outputs the input element scaled up by 1 / keep_prob, otherwise outputs ...
- 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!
别告诉我你不知道 别告诉我你不知道可以使用键盘的 Shift 和 Ctrl 来多选表格行,因为这个在 Windows 文件资源管理器中的常用操作,此时的画风是这样的: 这个动图中进行了如下操作: 1. ...
- PMP132种工具与技术
<PMBOK ® 指南>第六版中共包括 132 种工具与技术 <PMBOK ® 指南>使用了以下工具与技术分组:1.数据收集技术.用于从各种渠道收集数据与信息.共有9 种数据收 ...
- 物联网架构成长之路(46)-Rancher部署应用入门
0.前言 上一篇已经安装好Rancher了,这一篇主要是简单的操作一下Rancher,了解一些常用功能.1.集群信息 选择对应的集群,查看对应集群信息. 还可以执行kubectl命令,命令可以参考前几 ...
- FFmpeg 常用结构体
0.FFmpeg 中最关键的结构体之间的关系 FFmpeg 中结构体很多.最关键的结构体可以分成以下几类: 1)解协议(http, rtsp, rtmp, mms) AVIOContext,URLPr ...