2014-06-11 89 views
0

我正在嘗試使用UNBoundID解鎖AD帳戶,但我無法成功。任何人都可以請幫助我。使用UNBoundID SDK解鎖用戶帳戶

我的一個嘗試下面的,

byte[] quotedPasswordBytes=null; 
    final String quotedPassword = '"' + flag + '"'; 
    try { 
    quotedPasswordBytes = quotedPassword.getBytes("UTF-16LE"); 
    } catch (UnsupportedEncodingException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    Modification mod=new Modification(ModificationType.REPLACE, "msDS-User-Account-Control-Computed",quotedPasswordBytes); 
    ModifyRequest modifyRequest= new ModifyRequest(userDn, mod); 
    /*ModifyRequest mr = new ModifyRequest(userDn, 
    [new Modification(ModificationType.REPLACE, "msDS-UserAccountDisabled", "TRUE".bytes)]);*/ 
    connection.modify(modifyRequest); 

僅供參考,

enter image description here

由於提前,

回答

1

您應該修改userAccountControl屬性來代替。訣竅是知道什麼值設置。

  • 512啓用帳戶
  • 514帳戶已停用
  • 544啓用,不需要密碼
  • 546殘疾人,不需要密碼
  • 66048啓用,密碼永不過期
  • 66050殘疾人,密碼不會過期
  • 66080啓用,密碼不會過期&不需要
  • 66082禁用,密碼永不過期&不要求

參考http://www.netvision.com/ad_useraccountcontrol.phphttp://rajnishbhatia19.blogspot.com.au/2008/11/active-directory-useraccountcontrol.html或谷歌的代碼。

try { 
     Modification mod = new Modification(ModificationType.REPLACE,"userAccountControl","512"); 
     ModifyRequest mr = new ModifyRequest(userdn,mod); 

     LDAPResult lr = ldapcon.modify(mr); 
     ResultCode rc = lr.getResultCode(); 
     if (!rc.equals(ResultCode.SUCCESS)) { 
      System.out.println("Something went wrong enabling the account for "+userdn); 
     } 
    } catch (LDAPException ex) { 
     System.out.println(ex.getMessage()); 
    } 
0

它已經有一段時間,因爲這是要求,而是要改變屬性是lockoutTime,這應該是0解鎖

相關問題