{"id":8185,"date":"2021-02-16T10:01:15","date_gmt":"2021-02-16T15:01:15","guid":{"rendered":"https:\/\/jdhitsolutions.com\/blog\/?p=8185"},"modified":"2021-02-16T10:01:22","modified_gmt":"2021-02-16T15:01:22","slug":"scaling-the-active-directory-log-search-with-powershell","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/","title":{"rendered":"Scaling the Active Directory Log Search with PowerShell"},"content":{"rendered":"\n<div class=\"wp-block-image is-style-default\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"107\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg\" alt=\"\" class=\"wp-image-8186\"\/><\/a><\/figure><\/div>\n\n\n\n<p>Recently, <a href=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/8132\/searching-active-directory-logs-with-powershell\/\" target=\"_blank\" rel=\"noreferrer noopener\">I posted a demonstration<\/a> of how to find changes to your Active Directory using PowerShell. This process requires that you search through the Security event log on all your domain controllers. As a few people pointed out, myself included, this has the potential to not scale very well in large environments. I still believe that if you have a large Active Directory infrastructure, that you should look for professional and enterprise-grade management tools. PowerShell is good for filling in the gaps or ad-hoc work.<\/p>\n\n\n\n<p>However, there is a way to scale my search function and that is to use PowerShell 7.x and take advantage of parallel processing with <a href=\"https:\/\/docs.microsoft.com\/powershell\/module\/microsoft.powershell.core\/foreach-object?view=powershell-7.1&amp;WT.mc_id=ps-gethelp\" target=\"_blank\" rel=\"noreferrer noopener\">ForEach-Object.<\/a> I think this is a great use case for this feature. There is overhead involved in spinning up runspaces, so you need to make sure that the task justifies the expense. In this case, I think it does. While you may not be querying a lot of domain controllers, the log files could be large. My admittedly limited testing bears this out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Traditional Approach<\/h2>\n\n\n\n<p>I'm going to use my Get-ADuserAudit function as it is. I am not making any changes to it. Here's how I might query multiple domain controllers. First, I'll define a list.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$dcs\u00a0=\u00a0\"dom1\",\"dom2\",\"dom1\",\"offline\",\"dom2\",\"dom1\"<\/code><\/pre>\n\n\n\n<p>My test domain only has two domain controllers so I'll query them a few times. I also threw in a name that I know will fail. I need to dot source the script.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">.\u00a0C:\\scripts\\get-adlog.ps1<\/code><\/pre>\n\n\n\n<p>And now run it. I'm splatting a hashtable of parameter values to the function.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$get\u00a0=\u00a0@{\n\u00a0\u00a0\u00a0\u00a0DomainController\u00a0=\u00a0$dcs\n\u00a0\u00a0\u00a0\u00a0Since\u00a0=\u00a0\"2\/1\/2021\"\n\u00a0\u00a0\u00a0\u00a0Events\u00a0=\u00a0\"Created\",\"Deleted\",\"Disabled\"\n}\n$r\u00a0=\u00a0Get-ADUserAudit\u00a0@get<\/code><\/pre>\n\n\n\n<p>The command found 15 results in about 24 seconds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The PowerShell 7 Way<\/h2>\n\n\n\n<p>Now for PowerShell 7. I will use the same list of domain controllers with code like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$r\u00a0=\u00a0$dcs\u00a0|\u00a0foreach-object\u00a0-Parallel\u00a0{\n  .\u00a0C:\\scripts\\get-adlog.ps1\n  $get\u00a0=\u00a0@{\n\u00a0\u00a0\u00a0\u00a0DomainController\u00a0=\u00a0$_\n\u00a0\u00a0\u00a0\u00a0Since\u00a0=\u00a0\"2\/1\/2021\"\n\u00a0\u00a0\u00a0\u00a0Events\u00a0=\u00a0\"Created\",\"Deleted\",\"Disabled\"\n}\nGet-ADUserAudit\u00a0@get\n}<\/code><\/pre>\n\n\n\n<p>The scriptblock is run in a separate runspace for each piped in object, which in this case is the name of a domain controller. In each runspace I'm dot sourcing the function since it is not part of a module and defining my parameter hashtable which is in turn splatted to Get-ADUserAudit.<\/p>\n\n\n\n<p>This expression returned the same results but now in about 12 seconds. 12 vs 24 seconds on one hand isn't that big a deal. But I would expect this scale with more domain controllers and larger logs. Then 50% might really mean something. And with a large number of servers, you can also take advantage of throttling. I'm using the default of 5. You will have to test to see if there is any benefit to adjusting the throttle limit.<\/p>\n\n\n\n<p>If you try out the Get-ADUserAudit function, especially with this technique, I'd love to hear about your experiences.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I posted a demonstration of how to find changes to your Active Directory using PowerShell. This process requires that you search through the Security event log on all your domain controllers. As a few people pointed out, myself included, this has the potential to not scale very well in large environments. I still believe&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"New on the blog: Scaling the Active Directory Log Search with #PowerShell  #PS7Now","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,4,610],"tags":[539,226,534,624],"class_list":["post-8185","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-powershell","category-powershell-7","tag-active-directory","tag-eventlog","tag-powershell","tag-ps7now"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator<\/title>\n<meta name=\"description\" content=\"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-16T15:01:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-16T15:01:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg\" \/>\n<meta name=\"author\" content=\"Jeffery Hicks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:site\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeffery Hicks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Scaling the Active Directory Log Search with PowerShell\",\"datePublished\":\"2021-02-16T15:01:15+00:00\",\"dateModified\":\"2021-02-16T15:01:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/\"},\"wordCount\":441,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/pexels-shuxuan-cao-4432160.jpg\",\"keywords\":[\"Active Directory\",\"eventlog\",\"PowerShell\",\"PS7Now\"],\"articleSection\":[\"Active Directory\",\"PowerShell\",\"PowerShell 7\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/\",\"name\":\"Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/pexels-shuxuan-cao-4432160.jpg\",\"datePublished\":\"2021-02-16T15:01:15+00:00\",\"dateModified\":\"2021-02-16T15:01:22+00:00\",\"description\":\"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/pexels-shuxuan-cao-4432160.jpg\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/pexels-shuxuan-cao-4432160.jpg\",\"width\":160,\"height\":107},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/active-directory\\\/8185\\\/scaling-the-active-directory-log-search-with-powershell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Active Directory\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/active-directory\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scaling the Active Directory Log Search with PowerShell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/\",\"name\":\"The Lonely Administrator\",\"description\":\"Practical Advice for the Automating IT Pro\",\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\",\"name\":\"Jeffery Hicks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"caption\":\"Jeffery Hicks\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator","description":"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.","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:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/","og_locale":"en_US","og_type":"article","og_title":"Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator","og_description":"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.","og_url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/","og_site_name":"The Lonely Administrator","article_published_time":"2021-02-16T15:01:15+00:00","article_modified_time":"2021-02-16T15:01:22+00:00","og_image":[{"url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg","type":"","width":"","height":""}],"author":"Jeffery Hicks","twitter_card":"summary_large_image","twitter_creator":"@JeffHicks","twitter_site":"@JeffHicks","twitter_misc":{"Written by":"Jeffery Hicks","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Scaling the Active Directory Log Search with PowerShell","datePublished":"2021-02-16T15:01:15+00:00","dateModified":"2021-02-16T15:01:22+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/"},"wordCount":441,"commentCount":0,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg","keywords":["Active Directory","eventlog","PowerShell","PS7Now"],"articleSection":["Active Directory","PowerShell","PowerShell 7"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/","url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/","name":"Scaling the Active Directory Log Search with PowerShell &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg","datePublished":"2021-02-16T15:01:15+00:00","dateModified":"2021-02-16T15:01:22+00:00","description":"Searching Active Directory event logs with PowerShell may not scale very well. But with PowerShell 7 that might change with parallel searches.","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/02\/pexels-shuxuan-cao-4432160.jpg","width":160,"height":107},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8185\/scaling-the-active-directory-log-search-with-powershell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Active Directory","item":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},{"@type":"ListItem","position":2,"name":"Scaling the Active Directory Log Search with PowerShell"}]},{"@type":"WebSite","@id":"https:\/\/jdhitsolutions.com\/blog\/#website","url":"https:\/\/jdhitsolutions.com\/blog\/","name":"The Lonely Administrator","description":"Practical Advice for the Automating IT Pro","publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jdhitsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9","name":"Jeffery Hicks","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","caption":"Jeffery Hicks"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":148,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/148\/order-managing-active-directory-with-windows-powershell-tfm-finally\/","url_meta":{"origin":8185,"position":0},"title":"Order Managing Active Directory with Windows PowerShell: TFM &#8211; Finally!","author":"Jeffery Hicks","date":"September 22, 2008","format":false,"excerpt":"Yes, its finally true. You can finally get your hands on Managing Active Directory with Windows PowerShell: TFM. The book is being printed so you can get your copy today. You can order it today at ScriptingOutpost.com in both print and ebook format. Or if you prefer the best of\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1036,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1036\/join-me-in-orlando\/","url_meta":{"origin":8185,"position":1},"title":"Join Me in Orlando","author":"Jeffery Hicks","date":"December 30, 2010","format":false,"excerpt":"I will be presenting 3 sessions at Techmentor Orlando 2011. The conference runs March 14-18, 2011 at the Disney Yacht Club. My sessions are all on Wednesday March 16. In addition to all the other fabulous material at the conference I will be presenting the following: PowerShell Scripting Best Practices\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"Disney Yacht Club","src":"https:\/\/i0.wp.com\/techmentorevents.com\/design\/ecg\/techmentorevents\/home\/img\/portal_2011spring.gif?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8259,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8259\/active-directory-reporting-tools-released\/","url_meta":{"origin":8185,"position":2},"title":"Active Directory Reporting Tools Released","author":"Jeffery Hicks","date":"March 29, 2021","format":false,"excerpt":"Over the weekend, I published the 1.0 version of the ADReportingTools module to the PowerShell Gallery. I first wrote about this module a few weeks ago. I've made a number of changes since then and felt the module was ready for an official release. I'm continuing to add new features\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/open-adreportingtoolshelp.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/open-adreportingtoolshelp.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/open-adreportingtoolshelp.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/open-adreportingtoolshelp.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":37,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/37\/get-active-directory-user-information-in-powershell\/","url_meta":{"origin":8185,"position":3},"title":"Get Active Directory User Information in PowerShell","author":"Jeffery Hicks","date":"July 5, 2006","format":false,"excerpt":"One feature that PowerShell will likely be missing when it first ships is solid support for ADSI and working with Active Directory. You can use .NET DirectoryEntry objects but it feels more like programming and less like scripting. Another option for working with Active Directory in PowerShell is to use\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2856,"url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/2856\/techdays-san-francisco\/","url_meta":{"origin":8185,"position":4},"title":"TechDays San Francisco","author":"Jeffery Hicks","date":"March 12, 2013","format":false,"excerpt":"I'm very excited to announce that I'll be presenting at TechDays San Francisco this year. The event runs May 2nd and 3rd. You can find the schedule here. Registration will be forthcoming. Seating will be limited so you won't want to delay once it opens up. As you might expect\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"talkbubble-v3","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2012\/05\/talkbubble-v3-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2988,"url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/2988\/techdays-sf-presentations\/","url_meta":{"origin":8185,"position":5},"title":"TechDays SF Presentations","author":"Jeffery Hicks","date":"May 6, 2013","format":false,"excerpt":"Last week I presented a number of sessions at TechDays in beautiful San Francisco. Met some great people and had a great time. I presented 4 talks, almost all of them PowerShell-related. Actually, they all had some type of PowerShell content. I'm happy to share my session slides and PowerShell\u2026","rel":"","context":"In &quot;Active Directory&quot;","block_context":{"text":"Active Directory","link":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},"img":{"alt_text":"TechDays_logo250","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2013\/05\/TechDays_logo250.gif?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/8185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=8185"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/8185\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=8185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=8185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=8185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}