{"id":464,"date":"2017-03-28T10:01:09","date_gmt":"2017-03-28T10:01:09","guid":{"rendered":"http:\/\/imalogic.com\/blog\/?p=464"},"modified":"2017-06-29T06:30:06","modified_gmt":"2017-06-29T06:30:06","slug":"active-directory-overview","status":"publish","type":"post","link":"https:\/\/imalogic.com\/blog\/2017\/03\/28\/active-directory-overview\/","title":{"rendered":"Active Directory Overview"},"content":{"rendered":"<body><p><\/p>\n<h3 class=\"western\">Introduction<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Keeping track of everything on your network is a time-consuming task. Even on small networks, users tend to have difficulty finding network file and printer shares. Without some kind of network directory, medium and large networks are\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">impossible<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0to manage, and users will often have a difficult time finding resources on the network.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">A directory, in the most generic sense, is a comprehensive listing of objects. A phone book is a type of directory that stores information about people, businesses, and government organizations. Phone books typically record names, addresses, and phone numbers. Active Directory is similar to a phone book in several ways, and it is far more flexible. Active Directory will store information about organizations, sites, systems, users, shares, and just about any other network object that you can imagine. Not all objects are as similar to each other as those stored in the phone book, so Active Directory includes the ability to record different types of information about different objects. <\/span><\/span><\/span><\/p>\n<h3 class=\"western\"><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"465\" data-permalink=\"https:\/\/imalogic.com\/blog\/2017\/03\/28\/active-directory-overview\/microsoft-active-directory_102642\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?fit=200%2C200&amp;ssl=1\" data-orig-size=\"200,200\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"microsoft-active-directory_102642\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?fit=200%2C200&amp;ssl=1\" class=\"size-full wp-image-465 alignleft\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?resize=200%2C200&#038;ssl=1\" alt=\"\" width=\"200\" height=\"200\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?w=200&amp;ssl=1 200w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Active Directory stores information about network components. It allows clients to find objects within its\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">namespace<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">. The term namespace (also known as\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">console tree<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">) refers to the area in which a network component can be located. For example, the table of contents of this book forms a namespace in which chapters can be resolved to page numbers. <\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">DNS is a namespace that resolves host names to IP addresses. Telephone books provide a namespace for resolving names to telephone numbers. Active Directory provides a namespace for resolving the names of network objects to the objects themselves. Active Directory can resolve a wide range of objects, including users, systems, and services on a network.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Everything that Active Directory tracks is considered an\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">object<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">. <\/span><\/span><\/span><\/p>\n<ul>\n<li><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">An <\/span><\/span><\/span><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>object<\/b><\/span><\/span><\/span><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"> is any user, system, resource, or service tracked within Active Directory. The generic term\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">object<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0is used because Active Directory is capable of tracking a variety of items, and many objects can share common\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">attributes<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">.*<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>Attributes<\/b><\/span><\/span><\/span><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"> describe objects in Active Directory. For example, all User objects share attributes to store a user name, full name, and description. Systems are also objects, but they have a separate set of attributes that include a host name, an IP address, and a location.<\/span><\/span><\/span><\/li>\n<\/ul>\n<ul>\n<li><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">The set of attributes available for any particular object type is called <\/span><\/span><\/span><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">a<\/span><\/span><\/span><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>\u00a0<\/b><\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>schema<\/b><\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">. The schema makes object classes different from each other. Schema information is actually stored within Active Directory, which allows administrators to add attributes to object classes and have them distributed across the network to all corners of the domain, without restarting any domain controllers.<\/span><\/span><\/span><\/li>\n<\/ul>\n<ul>\n<li><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">A\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>container<\/b><\/span><\/span><\/span><\/em><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">is a special type of object used to organize Active Directory. It does not represent anything physical, like a user or a system. Instead, it is used to group other objects. Container objects can be nested within other containers.<\/span><\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Each object in an Active Directory has a\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">name<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">. These are not the names that you are accustomed to, like \u201cDavid\u201d or \u201cEric.\u201d They are LDAP\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">distinguished names<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">. LDAP distinguished names are complicated, but they allow any object within a directory to be identified uniquely regardless of its type. My distinguished name on the Microsoft network is \u201c\/O=Internet\/DC=COM\/DC=Microsoft\/ DC=MSPress\/CN=Users\/CN=David Lovera\u201d\u2026but you can call me David.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">The term\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\"><b>tree<\/b><\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0is used to describe a set of objects within Active Directory. When containers and objects are combined hierarchically, they tend to form branches\u2014hence the term. A related term is\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">contiguous subtree<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">, which refers to an unbroken branch of the tree.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Continuing the tree metaphor, the term\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">forest<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0describes trees that are not part of the same namespace but that share a common schema, configuration, and global catalog. Trees in a forest all trust each other, so objects in these trees are available to all users if the security allows it. Organizations that are divided into multiple domains should group the trees into a single forest.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">A\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">site<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">\u00a0is a geographical location, as defined within Active Directory. Sites correspond to logical IP subnets, and as such, they can be used by applications to locate the closest server on a network. Using site information from Active Directory can profoundly reduce the traffic on wide area networks.<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection125121120120\"><\/a> Security<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Active Directory plays an important role in the future of Windows networking. Administrators must be able to protect their directory from attackers and users, while delegating tasks to other administrators where necessary. This is all possible using the Active Directory security model, which associates an access control list (ACL) with each container, object, and object attribute within the directory.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">This high level of control allows an administrator to grant individual users and groups varying levels of permissions for objects and their properties. Administrators can even add attributes to objects and hide those attributes from certain groups of users. For example, the administrator could set the ACLs such that only managers can view the home phone numbers of other users. Nonmanagers would not even know that the attribute existed. <\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection126121120120\"><\/a> Use of DNS (Domain Name System)<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Domain Name System, or DNS, is necessary to any Internet-connected organization. DNS provides name resolution between common names, such as mspress.microsoft.com, and the raw IP addresses that network layer components use to communicate. Active Directory makes extensive use of DNS technology and relies on DNS to locate objects within Active Directory. This is a substantial change from previous Windows operating systems that require NetBIOS names to be resolved to IP addresses, and to rely on WINS or another NetBIOS name resolution technique.<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection127121120120\"><\/a> Global Catalog<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Active Directory provides a\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">global catalog\u00a0<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">(GC). No, this does not mean that you can find any piece of information on the planet\u2014but it is still very significant. Active Directory provides a single source to locate any object within an organization\u2019s network.<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection128121120120\"><\/a> Replication<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Administrators who implement Active Directory will quickly discover that their network relies heavily on its services. This reliance means that Active Directory must be available on multiple servers\u2014so that if a single server fails, clients can contact a server with duplicate services and information.\u00a0<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">One of the most complex parts of making redundant servers work properly is replicating the information and ensuring that all servers have the most up-to-date content. Active Directory uses\u00a0<em>multimaster replication,<\/em>\u00a0which is another way of stating that updates can occur on any Active Directory server. Each server keeps track of which updates it has received from which servers, and can intelligently request only necessary updates in case of a failure. <\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection130121120120\"><\/a> Schema: Attributes and Object Classes<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">As I defined the term earlier, a schema is a set of attributes used to describe a particular object class in Active Directory. Different types of information need to be tracked for different object classes, and that\u2019s why the schema is so important. For example, the Users object class needs attributes for a first name, last name, phone number, e-mail address, and mailing address. The Printer object class must have many different attributes\u2014users will want to know how fast a printer is and whether it can duplex or print in color.\u00a0<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection131121120120\"><\/a> Objects<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Many people are initially confused by the relationship between object classes, attributes, and the objects themselves. Objects are created based on an object class. Attributes describe an object class. When an object is created, it inherits all the attributes of its object class. Here\u2019s where it gets tricky:\u00a0<\/span><\/span><\/span><em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">object classes and attributes are also objects in Active Directory.\u00a0<\/span><\/span><\/span><\/em><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Fortunately, most user interfaces hide this fact.<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection133121120120\"><\/a>Lightweight Directory Access Protocol (LDAP)<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">Active Directory reflects Microsoft\u2019s trend toward relying on standard protocols. The Lightweight Directory Access Protocol (LDAP) is a product of the IETF (Internet Engineering Task Force). It defines how clients and servers exchange information about a directory. LDAP version 2 and version 3 are used by Windows 2000 Server\u2019s Active Directory.<\/span><\/span><\/span><\/p>\n<h3>Distinguished Names<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">It is very important to understand the structure of distinguished names, as you will be referring to them often in the course of your job. My distinguished name is \/O=Internet\/DC=COM\/DC=Microsoft\/ DC=MSPress\/CN=Users\/CN=David Lovera.<\/span><\/span><\/span><\/p>\n<h3><a name=\"XSLTsection134121120120\"><\/a>ADSI (Active Directory Service Interface)<\/h3>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">ADSI (Active Directory Service Interface) allows applications to interact with any directory service without being forced to know the internal details of the underlying protocols. Administrators can write programs and scripts that make use of ADSI to read or write to legacy Windows NT 4.0 directories, NetWare NDS directories, NetWare 3 binderies, and LDAP directories such as Active Directory. Developers can even create applications that make use of directories at the customer\u2019s site, without previous knowledge of the type of directory being used.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">For example, the following Microsoft Visual Basic code uses ADSI to display a list of users in the debug window:<\/span><\/span><\/span><\/p>\n<pre class=\"western\"><span style=\"color: #000000;\"><span style=\"font-size: small;\">Set ou = GetObject(\"LDAP:\/\/dcserver\/OU=Sales,<\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-size: small;\">DC=ArcadiaBay,DC=COM\")<\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-size: small;\">For Each obj In ou<\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"font-size: small;\">Debug.Print obj.Name<\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-size: small;\">Next<\/span><\/span><\/pre>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">As you can see, gathering a list of users is much simpler than in previous Windows operating systems. ADSI makes use of the Component Object Model (COM), so almost any Windows development environment can immediately make use of the interface. Developers will be interested to know that they can access Active Directory through the LDAP C API and through MAPI, though ADSI is the preferred interface.<\/span><\/span><\/span><\/p>\n<p><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\"><span style=\"font-size: small;\">e.g\u00a0: using ADSI in C++<\/span><\/span><\/span><\/p>\n<pre class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\"><span style=\"color: #2a2a2a;\"><span style=\"font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;\">HRESULT hr;<\/span><\/span><\/span><\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">IADs *pUser; <\/span><\/span><\/span>\r\n \r\n<span style=\"color: #008000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">\/\/ Bind to user object.<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">hr = ADsGetObject(L<\/span><\/span><span style=\"color: #a31515;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">\"LDAP:\/\/CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com\"<\/span><\/span><\/span><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">, IID_IADs, (<\/span><\/span><span style=\"color: #0000ff;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">void<\/span><\/span><\/span><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">**)&amp;pUser);<\/span><\/span><\/span>\r\n\r\n<span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\"><span style=\"color: #0000ff;\">if<\/span>(SUCCEEDED(hr)) <\/span><\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">{<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">BSTR bstrName;<\/span><\/span><\/span>\r\n\r\n<span style=\"color: #000000;\">    <span style=\"color: #008000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">\/\/ Get property.<\/span><\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">hr = pUser-&gt;get_Name(&amp;bstrName);<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"color: #0000ff;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">if<\/span><\/span><\/span><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">(SUCCEEDED(hr)) <\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">{<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">        <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">wprintf(bstrName);<\/span><\/span><\/span>\r\n \r\n<span style=\"color: #000000;\">        <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">SysFreeString(bstrName);<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\">    <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">}<\/span><\/span><\/span>\r\n\r\n<span style=\"color: #000000;\">    <span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">pUser-&gt;Release();<\/span><\/span><\/span>\r\n<span style=\"color: #000000;\"><span style=\"font-family: Consolas, Courier, monospace;\"><span style=\"font-size: small;\">}<\/span><\/span><\/span><\/pre>\n<p>\u00a0<\/p>\n<\/body>","protected":false},"excerpt":{"rendered":"<p>Introduction Keeping track of everything on your network is a time-consuming task. Even on small networks, users tend to have<\/p>\n","protected":false},"author":1,"featured_media":465,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[73,24,74,34,75],"class_list":["post-464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding","tag-active","tag-c","tag-directory","tag-microsoft","tag-windows"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2017\/06\/microsoft-active-directory_102642.png?fit=200%2C200&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8J21V-7u","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/comments?post=464"}],"version-history":[{"count":1,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"predecessor-version":[{"id":469,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/464\/revisions\/469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/media\/465"}],"wp:attachment":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}