zoukankan      html  css  js  c++  java
  • 扫描不同域下的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 ,和过滤器等类方法进行删除,像是找一个同学,不需要知道年级、班,只需要知道学生编号就好,因为即使手里掌握不同的学校名(域名),因编号是唯一的,也能找到他。

    
    
  • 相关阅读:
    ChemDraw绘制DNA结构的技巧
    几何画板中该如何插入公式
    MathType可以编辑带圈乘号吗
    几何画板是这样构造扇形内部的
    Chem 3D软件可以改变背景吗
    移动端上下滑动事件之--坑爹的touch.js
    在HTML5中如何提高网站前端性能
    git入门
    php 路由实现
    vb 定时执行php程序
  • 原文地址:https://www.cnblogs.com/shiningleo007/p/6907411.html
Copyright © 2011-2022 走看看