{"id":2828,"date":"2013-04-26T14:12:58","date_gmt":"2013-04-26T13:12:58","guid":{"rendered":"https:\/\/dn-www.azurewebsites.net\/2013\/04\/26\/auditing-users-in-active-directory\/"},"modified":"2025-07-24T13:03:05","modified_gmt":"2025-07-24T12:03:05","slug":"auditing-users-in-active-directory","status":"publish","type":"post","link":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/","title":{"rendered":"Auditing Users in Active Directory"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2828\" class=\"elementor elementor-2828\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-49f71cd5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"49f71cd5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d61cd05\" data-id=\"d61cd05\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-409159f3 elementor-widget elementor-widget-text-editor\" data-id=\"409159f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Active Directory (AD) is Microsoft&#8217;s proprietary take on the widely utilised Lightweight Directory Access Protocol (LDAP) hierarchical database engine and underpins access control and central management for any Microsoft Windows based enterprise network.<\/p>\n<p>It is an incredibly powerful system, but can become very difficult to administer if not handled carefully. As a result, regularly reviewing the AD setup should form a critical part of any organisation&#8217;s Information Security Management System (ISMS).<\/p>\n<p>I recently discussed a mechanism for auditing passwords in use in AD (<a href=\"https:\/\/www.dionach.com\/blog\/active-directory-password-auditing\">https:\/\/www.dionach.com\/blog\/active-directory-password-auditing<\/a>) and so I will move onto looking at the user and group objects themselves.<\/p>\n<p>One of the most common mistakes that technical people make when trying to audit AD is to treat it like a classic relational database, rather than a hierarchical database which is a very different beast. While there are similarities \u2013 both are designed to store and retrieve large amounts of data quickly and accurately \u2013 there are many differences, not least of which is the way that they handle relationships between data and queries. For a high level overview of the two models, please review the following Wikipedia articles:<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Hierarchical_database_model\">https:\/\/en.wikipedia.org\/wiki\/Hierarchical_database_model<\/a><br><a href=\"https:\/\/en.wikipedia.org\/wiki\/Relational_database\">https:\/\/en.wikipedia.org\/wiki\/Relational_database<\/a><\/p>\n<p>There are a number of tools and utilities out there for querying AD, some are freely available, some are commercial and proprietary, however, it is possible to get all of the information that you need with a little bit of programming knowledge, and the following code examples will demonstrate some common queries that will help to identify the issues I most often find whilst auditing and penetration testing against AD.<\/p>\n<p>Please note that these code samples are written in C#, and require the Microsoft.Net Framework version 4 or later. You will also need to make use of the following namespaces, which are included as part of Microsoft.Net &#8220;System.DirectoryServices.AccountManagement&#8221;, &#8220;System.Linq&#8221;, and &#8220;System.Collections.Generics&#8221;.<\/p>\n<p>The first thing we need to do is make a connection to AD. This means creating a context. I will refer to this later as simply &#8220;context&#8221;:<\/p>\n<div class=\"codeblock\"><code>PrincipalContext ADContext(string domain, string username, string password) {<br>PrincipalContext context = new PrincipalContext(ContextType.Domain, domain, username, password);<br>return context;<br>}<\/code><\/div>\n<p>With our context, we can now query for whatever information we need. A particularly common problem I have encountered is unnecessary administrative users. AD has three main groups which are typically used for administrative access; &#8220;Administrators&#8221;, &#8220;Domain Admins&#8221;, and &#8220;Enterprise Admins&#8221;. These are used as follows:<\/p>\n<p>Administrators: Members of this group have full control over Domain Controllers within a given AD domain. Members include the &#8220;Domain Admins&#8221; and &#8220;Enterprise Admins&#8221; groups by default.<br>Domain Admins: This group has full control over a given domain within an AD forest.<br>Enterprise Admins: This group has full control over all domains within an AD forest.<\/p>\n<p>For a detailed breakdown of these groups and their intended use, please refer to the following Microsoft TechNet article:<\/p>\n<p><a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/cc756898\">https:\/\/technet.microsoft.com\/en-us\/library\/cc756898<\/a>(v=WS.10).aspx<\/p>\n<p>In order to get a comprehensive list of the administrators within a domain, we need to query membership of all three of the above groups, as well as any groups which are nested within them as these will inherit the same permissions. The following code sample shows how this can be done:<\/p>\n<div class=\"codeblock\"><code>private List&lt;Principal&gt; Administrators() {<br>PrincipalSearcher searcher = new PrincipalSearcher(new GroupPrincipal(context) { SamAccountName = \"Administrators\" });<br>GroupPrincipal admins = (GroupPrincipal)searcher.FindOne();<br>PrincipalSearchResult&lt;Principal&gt; members = admins.GetMembers(true);<br>return members.ToList&lt;Principal&gt;();<br>}<\/code><\/div>\n<p>We can then get the list of nested member groups or users with the following code samples respectively:<\/p>\n<div class=\"codeblock\"><code>List&lt;GroupPrincipal&gt; memberGroups = Administrators().Where(p =&gt; p is GroupPrincipal);<br>List&lt;UserPrincipal&gt; memberUsers = Administrators().Where(p =&gt; p is UserPrincipal);<\/code><\/div>\n<p>Another common issue I have seen is users with passwords in description fields. There is no easy way to programmatically identify whether a description field has a password contained in it; this is a manual checking process. However, it is straightforward to obtain a list of users with a non-empty description which we can then filter and manually review. The following code sample shows how:<\/p>\n<div class=\"codeblock\"><code>private List&lt;UserPrincipal&gt; GetDescriptions() {<br>PrincipalSearcher searcher = new PrincipalSearcher(new UserPrincipal(context)));<br>PrincipalSearchResult&lt;Principal&gt; principals = searcher.FindAll();<br>return principals.Where(p =&gt; ((UserPrincipal)p).Description != \"\" &amp;&amp; ((UserPrincipal)p).Description != null).Select(p =&gt; p as UserPrincipal).ToList&lt;UserPrincipal&gt;();<br>}<\/code><\/div>\n<p>Finally, another common issue is active user accounts with passwords that do not expire, or have not been changed in some time. These can be obtained relatively easily with the following code samples.<\/p>\n<p>This example shows how to retrieve a list of active accounts with non-expiring passwords:<\/p>\n<div class=\"codeblock\"><code>List&lt;UserPrincipal&gt; GetNonExpiringAccounts() {<br>PrincipalSearcher searcher = new PrincipalSearcher(new UserPrincipal(context));<br>PrincipalSearchResult&lt;Principal&gt; principals = searcher.FindAll();<br>return principals.Where(p =&gt; (((UserPrincipal)p).Enabled.HasValue &amp;&amp; ((UserPrincipal)p).Enabled.Value) &amp;&amp; ((UserPrincipal)p).PasswordNeverExpires).Select(p =&gt; p as UserPrincipal).ToList&lt;UserPrincipal&gt;();<br>}<\/code><\/div>\n<p>This sample shows how to retrieve a list of user accounts whose passwords are older than a specified number of days. An expiry time of 90 days is used as a default, however this can be changed to suit. Please note that some accounts may be ignored by this query incorrectly as the date on which their passwords were changed may not have been set:<\/p>\n<div class=\"codeblock\"><code>List&lt;UserPrincipal&gt; GetUnchangedPasswords(byte days=90) {<br>PrincipalSearcher searcher = new PrincipalSearcher(new UserPrincipal(context));<br>PrincipalSearchResult&lt;Principal&gt; principals = searcher.FindAll();<br>return principals.Where(p =&gt; (((UserPrincipal)p).Enabled.HasValue &amp;&amp; ((UserPrincipal)p).Enabled.Value) &amp;&amp; (((UserPrincipal)p).LastPasswordSet.HasValue &amp;&amp; ((UserPrincipal)p).LastPasswordSet.Value.AddDays(days) &lt; DateTime.UtcNow)).Select(p =&gt; p as UserPrincipal).ToList&lt;UserPrincipal&gt;();<br>}<\/code><\/div>\n<p>This is by no means the limit of what can be extracted from AD; I would recommend that anyone auditing their own AD infrastructure familiarise themselves with the other classes, properties and functions exposed by the &#8220;System.DirectoryServices.AccountManagement&#8221; namespace. Further information is available at the following URL:<\/p>\n<p><a href=\"https:\/\/msdn.microsoft.com\/en-GB\/library\/system.directoryservices.accountmanagement.aspx\">https:\/\/msdn.microsoft.com\/en-GB\/library\/system.directoryservices.account&#8230;<\/a><\/p><p><br><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Active Directory (AD) is Microsoft&#8217;s proprietary take on the widely utilised Lightweight Directory Access Protocol (LDAP) hierarchical database engine and underpins access control and central management for any Microsoft Windows based enterprise network. It is an incredibly powerful system, but can become very difficult to administer if not handled carefully. As a result, regularly reviewing [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":23290,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[211],"class_list":["post-2828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-researchblog","tag-active_directory","wpbf-post"],"contentshake_article_id":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Auditing Users in Active Directory<\/title>\n<meta name=\"description\" content=\"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Auditing Users in Active Directory\" \/>\n<meta property=\"og:description\" content=\"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/\" \/>\n<meta property=\"og:site_name\" content=\"Dionach\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dionachcyber\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-26T13:12:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-24T12:03:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dionach Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dionachcyber\" \/>\n<meta name=\"twitter:site\" content=\"@dionachcyber\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dionach Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/\"},\"author\":{\"name\":\"Dionach Admin\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#\\\/schema\\\/person\\\/e73f3537233924cf4944f7807068b3c8\"},\"headline\":\"Auditing Users in Active Directory\",\"datePublished\":\"2013-04-26T13:12:58+00:00\",\"dateModified\":\"2025-07-24T12:03:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/\"},\"wordCount\":790,\"publisher\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1\",\"keywords\":[\"active directory\"],\"articleSection\":[\"researchblog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/\",\"url\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/\",\"name\":\"Auditing Users in Active Directory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1\",\"datePublished\":\"2013-04-26T13:12:58+00:00\",\"dateModified\":\"2025-07-24T12:03:05+00:00\",\"description\":\"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1\",\"width\":2048,\"height\":1365},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/auditing-users-in-active-directory\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Auditing Users in Active Directory\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#website\",\"url\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/\",\"name\":\"Dionach\",\"description\":\"Real Security in a Virtual World\",\"publisher\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#organization\",\"name\":\"Dionach\",\"url\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/cropped-Dionach-vertical-col-yel-nomios-black-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dionach.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/cropped-Dionach-vertical-col-yel-nomios-black-1.jpg\",\"width\":512,\"height\":512,\"caption\":\"Dionach\"},\"image\":{\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dionachcyber\",\"https:\\\/\\\/x.com\\\/dionachcyber\",\"https:\\\/\\\/uk.linkedin.com\\\/company\\\/dionach-ltd\",\"https:\\\/\\\/www.instagram.com\\\/dionachcyber\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dionach.com\\\/en-us\\\/#\\\/schema\\\/person\\\/e73f3537233924cf4944f7807068b3c8\",\"name\":\"Dionach Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g\",\"caption\":\"Dionach Admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Auditing Users in Active Directory","description":"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/","og_locale":"en_US","og_type":"article","og_title":"Auditing Users in Active Directory","og_description":"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.","og_url":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/","og_site_name":"Dionach","article_publisher":"https:\/\/www.facebook.com\/dionachcyber","article_published_time":"2013-04-26T13:12:58+00:00","article_modified_time":"2025-07-24T12:03:05+00:00","og_image":[{"width":2048,"height":1365,"url":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","type":"image\/jpeg"}],"author":"Dionach Admin","twitter_card":"summary_large_image","twitter_creator":"@dionachcyber","twitter_site":"@dionachcyber","twitter_misc":{"Written by":"Dionach Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#article","isPartOf":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/"},"author":{"name":"Dionach Admin","@id":"https:\/\/dionach.com\/en-us\/#\/schema\/person\/e73f3537233924cf4944f7807068b3c8"},"headline":"Auditing Users in Active Directory","datePublished":"2013-04-26T13:12:58+00:00","dateModified":"2025-07-24T12:03:05+00:00","mainEntityOfPage":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/"},"wordCount":790,"publisher":{"@id":"https:\/\/dionach.com\/en-us\/#organization"},"image":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","keywords":["active directory"],"articleSection":["researchblog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/","url":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/","name":"Auditing Users in Active Directory","isPartOf":{"@id":"https:\/\/dionach.com\/en-us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#primaryimage"},"image":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","datePublished":"2013-04-26T13:12:58+00:00","dateModified":"2025-07-24T12:03:05+00:00","description":"Learn how to audit user accounts in Active Directory to identify security risks, clean up stale users, and enforce proper access control policies.","breadcrumb":{"@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#primaryimage","url":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","width":2048,"height":1365},{"@type":"BreadcrumbList","@id":"https:\/\/dionach.com\/en-us\/auditing-users-in-active-directory\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dionach.com\/en-us\/"},{"@type":"ListItem","position":2,"name":"Auditing Users in Active Directory"}]},{"@type":"WebSite","@id":"https:\/\/dionach.com\/en-us\/#website","url":"https:\/\/dionach.com\/en-us\/","name":"Dionach","description":"Real Security in a Virtual World","publisher":{"@id":"https:\/\/dionach.com\/en-us\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dionach.com\/en-us\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dionach.com\/en-us\/#organization","name":"Dionach","url":"https:\/\/dionach.com\/en-us\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dionach.com\/en-us\/#\/schema\/logo\/image\/","url":"https:\/\/www.dionach.com\/wp-content\/uploads\/2025\/02\/cropped-Dionach-vertical-col-yel-nomios-black-1.jpg","contentUrl":"https:\/\/www.dionach.com\/wp-content\/uploads\/2025\/02\/cropped-Dionach-vertical-col-yel-nomios-black-1.jpg","width":512,"height":512,"caption":"Dionach"},"image":{"@id":"https:\/\/dionach.com\/en-us\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dionachcyber","https:\/\/x.com\/dionachcyber","https:\/\/uk.linkedin.com\/company\/dionach-ltd","https:\/\/www.instagram.com\/dionachcyber\/"]},{"@type":"Person","@id":"https:\/\/dionach.com\/en-us\/#\/schema\/person\/e73f3537233924cf4944f7807068b3c8","name":"Dionach Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3061726a64a760303f6ea8f0976d3e8e0a6997b4da543be9a650b81584b4e79e?s=96&d=mm&r=g","caption":"Dionach Admin"}}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/dionach.com\/wp-content\/uploads\/2025\/07\/AdobeStock_1139648766.jpeg?fit=2048%2C1365&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/ph4Ojq-JC","_links":{"self":[{"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/posts\/2828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/comments?post=2828"}],"version-history":[{"count":0,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/posts\/2828\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/media\/23290"}],"wp:attachment":[{"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/media?parent=2828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/categories?post=2828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dionach.com\/en-us\/wp-json\/wp\/v2\/tags?post=2828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}