PHP LDAP class for Active Directory / News: Recent posts

adLDAP version 3.3.2 released

adLDAP, a PHP class that provides LDAP authentication and integration with Active Directory, has released version 3.3.2.

The changelog is as follows:

[+] New feature: Move the user to a new OU using user_move() function
[-] Bug fix: Prevent an 'undefined index' error in recursive_groups() when full PHP E_ALL logging is enabled
[-] Bug fix: user_groups() does not return primary group when objectsid is not given (Tracker ID:2931213)
[-] Bug fix: Undefined index in function user_info for non-existent users (Tracker ID:2922729)
[-] Bug fix: Force user_info to find objectCategory of person as if a sAMAccountName also exists in a group it will return that group. (Tracker ID:3006096)
[-] Bug fix: Return false for user_info if the user does not exist
[-] Bug fix: user_info, checks for for a "count" value that not exist in $entries array if "memberof" isn't passed in $fields array. (Tracker ID:2993172)
[-] Bug fix: In authenticate() if user authentication fails function returns and does not rebind with admin credentials - so the other funcions don't work anymore as $this->_bind === false. (Tracker ID:2987887)
[-] Bug fix: When calling $ldap->user_modify('user', array("expires"=>0)) the function fails due to the value being 0. Changed to isset (Tracker ID:3036726)

Posted by Richard 2010-09-29

adLDAP version 3.3 now available

The following is the change log for version 3.3

[+] New feature: Calling adLDAP without LDAP support in PHP will now throw an adLDAPException
[+] New feature: Specifying a NULL $_base_dn will now automatically attempt to detect the base_dn from your domain controller
[+] New feature: Most user objects can now be queried using a user's GUID as well as their username (samAccountName). Set the $isGUID optional parameter to true. To obtain a user's GUID either use the username2guid() function or decodeGuid()
[+] New function: username2guid($username) will return a string representation of the GUID for a given username
[+] New function: decodeGuid($binaryGuid) will convert a binary GUID to a string
[+] New function: find_base_dn() will return the base_dn from your domain controller
[+] New function: get_root_dse($attributes) will return root domain controller configuration attributes such as the default naming context, current DC time, etc
[+] New function: exchange_servers($attributes) will return a list of Exchange servers in your domain
[+] New function: exchange_storage_groups($exchangeServer, $attributes, $recursive) will return a list of Storage groups on any given Exchange server. Setting $recursive to true (or inheriting from the $_recursive_groups setting will automatically query the databases within a storage group)
[+] New function: exchange_storage_databases($storageGroup, $attributes) will return a list of Databases in any given storage group on any given Exchange server
[+] New function: exchange_add_X400($username, $country, $admd, $pdmd, $org, $surname, $givenname, $isGUID=false) will add an X400 address to the Exchange server
[-] Bug fix: Null comparison error in contact_mailenable()

Posted by Richard 2009-11-17

adLDAP version 3.2 now available

This version includes new functions as well connection over TLS support:

computer_groups - Get a list of groups a computer is in
computer_ingroup - Check to see if a computer is in a group

connect - Make a connection to a domain controller
disconnect - Disconnect from the domain controller

You only need to call connect and disconnect if you want to disconnect and reconnect part way through a script, otherwise the constructor and destructor handle it. ... read more

Posted by Richard 2009-06-25

adLDAP version 3.0 now available

adLDAP version 3.0 is now available. It's a big change and supports creating Exchange mailboxes, contact management and more.

Additionally PHP 4 is no longer supported

adLDAP is a PHP class that provides LDAP authentication with Active Directory.

Download the latest version at

Posted by Richard 2009-05-05

Subversion repository access now available

You can now checkout the latest changes to adLDAP directly from your subversion client. See for more information

Posted by Richard 2009-05-05