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

    
    
  • 相关阅读:
    vue 启动报错:`TypeError: Cannot read property 'range' of null`
    手动创建自己的npm包
    uni-app 拦截页面传参
    uni-app的vue.config.js
    插入排序
    选择排序
    设计模式--享元模式
    设计模式--代理模式
    原型链图片
    深度优先遍历和广度优先遍历
  • 原文地址:https://www.cnblogs.com/shiningleo007/p/6907411.html
Copyright © 2011-2022 走看看