{"id":8916,"date":"2022-02-24T13:37:05","date_gmt":"2022-02-24T18:37:05","guid":{"rendered":"https:\/\/jdhitsolutions.com\/blog\/?p=8916"},"modified":"2022-02-24T13:37:09","modified_gmt":"2022-02-24T18:37:09","slug":"managing-raw-directorysearcher-data","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/","title":{"rendered":"Managing Raw DirectorySearcher Data"},"content":{"rendered":"\n<p>Recently, I was chatting with my friend Gladys. As part of her work, she often creates Active Directory PowerShell-related tools for her colleagues. It is always good to be the toolmaker! Anyway, she doesn't want to rely on the Active Directory module from Remote Server Administration Tools (RSAT). There's no guarantee that the feature can be installed on a colleague's desktop, and for some of the tasks that need to be accomplished, it is overkill.<\/p>\n\n\n\n<p>Instead, Gladys often builds PowerShell tools for managing bits and pieces of Active Directory using the [System.DirectoryServices] namespace. These .NET classes have been around a long time and are what we used before Microsoft released the Active Directory module. These classes should be found on your computer and do not rely on the Active Directory module. One of the go-to classes is the DirectorySearcher.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$Searcher = New-Object System.DirectoryServices.DirectorySearcher<\/code><\/pre>\n\n\n\n<p>Gladys' company uses managed service accounts extensively, and she was searching for them in Active Directory. In my demonstration domain, I only have one.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$searcher.filter = \"(&amp;(objectClass=msDS-GroupManagedServiceAccount))\"\n$gmsa = $Searcher.FindOne()<\/code><\/pre>\n\n\n\n<p>The resulting object is a little different than what you might be familiar with. The properties are stored as a ResultPropertyCollection object. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"510\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png\" alt=\"DirectoryServices ResultsPropertyCollection\" class=\"wp-image-8918\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png 903w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection-300x169.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection-768x434.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection-850x480.png 850w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/a><\/figure>\n\n\n\n<p>Each property value is stored as a collection, so technically, you should use an index number to get the value, even if there is only a single item.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-properties.png\"><img loading=\"lazy\" decoding=\"async\" width=\"591\" height=\"56\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-properties.png\" alt=\"result property\" class=\"wp-image-8919\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-properties.png 591w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-properties-300x28.png 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/figure>\n\n\n\n<p>The property Gladys wanted to work with was msds-groupmsamembership, but when she got the value, it was a huge collection of numbers. It turns out that the result property was an array of bytes. The bytes represented a value. Gladys can see what the value should be using the Active Directory module.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"126\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount-1024x126.png\" alt=\"\" class=\"wp-image-8920\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount-1024x126.png 1024w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount-300x37.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount-768x94.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount-850x104.png 850w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adserviceaccount.png 1082w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>This looks like a security object. Looking at the property with Get-Member confirms it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"190\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property-1024x190.png\" alt=\"\" class=\"wp-image-8921\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property-1024x190.png 1024w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property-300x56.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property-768x142.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property-850x157.png 850w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/msds-property.png 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Remember, Gladys is trying to avoid using the Active Directory module. She needs to take the array of bytes and turn it into an ActiveDirectorySecurity object.<\/p>\n\n\n\n<p>During Gladys' research, she came across articles discussing how to convert the byte array into something more meaningful. But all of the articles were developer-oriented and relied on COM objects. I looked at these articles, and after banging my head against my desk for a bit and trying things in PowerShell, I finally made the mental connection on how to solve this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Looking for Constructors<\/h2>\n\n\n\n<p>I knew I needed a [System.DirectoryServices.ActiveDirectorySecurity] object. So I checked to see if there was a constructor. That is, a method to create a new instance of the object. And there was.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-new-constructor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"64\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-new-constructor.png\" alt=\"ActiveDirectorySecurity constructor\" class=\"wp-image-8922\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-new-constructor.png 777w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-new-constructor-300x25.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/ads-new-constructor-768x63.png 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/a><\/figure>\n\n\n\n<p>This looks easy. I was hoping there was a way to use the bytes which I've saved to a variable.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">[byte[]]$raw = $gmsa.Properties.'msds-groupmsamembership'[0]<\/code><\/pre>\n\n\n\n<p>But maybe the new ActiveDirectorySecurityObject will provide a clue, so I'll create one.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$adsec = [System.DirectoryServices.ActiveDirectorySecurity]::new()<\/code><\/pre>\n\n\n\n<p>This is why you need to know how to use Get-Member. I piped $adsec to Get-Member, looking for something that would give me a hint on how to use the array of bytes. I found a set method.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method-1024x300.png\" alt=\"SetSecurityDescriptorBinaryForm method.\" class=\"wp-image-8923\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method-1024x300.png 1024w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method-300x88.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method-768x225.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method-850x249.png 850w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/setsecuritydescriptor-method.png 1051w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>I already knew I needed to create some form of security descriptor, and this method takes an array of bytes as a parameter.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$adsec.SetSecurityDescriptorBinaryForm($raw)<\/code><\/pre>\n\n\n\n<p>I didn't get a result which isn't surprising since Get-Member indicates this method doesn't return anything. That is what 'void' is indicating. Did anything happen?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converted-adsec.png\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"128\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converted-adsec.png\" alt=\"The updated ActiveDirectorySecurity object\" class=\"wp-image-8924\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converted-adsec.png 526w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converted-adsec-300x73.png 300w\" sizes=\"auto, (max-width: 526px) 100vw, 526px\" \/><\/a><\/figure>\n\n\n\n<p>Success! I can pipe this to Get-Member to see what properties or methods I can use. Or pipe it to Select-Object.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"393\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all-1024x393.png\" alt=\"all activedirectorysecurity properties.\" class=\"wp-image-8925\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all-1024x393.png 1024w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all-300x115.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all-768x294.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all-850x326.png 850w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/adsec-all.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Gladys can use this object in her PowerShell scripting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Decoding the SID<\/h2>\n\n\n\n<p>But you know, there are a few more properties from the directory searcher result that might need to be converted. If for no other reason than to reinforce my process. The object's SID is also represented as a byte array.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">[byte[]]$rawsid = $gmsa.properties.objectsid[0]<\/code><\/pre>\n\n\n\n<p>What type of object do I need to create?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/objectsid-type.png\"><img loading=\"lazy\" decoding=\"async\" width=\"775\" height=\"183\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/objectsid-type.png\" alt=\"object sid type\" class=\"wp-image-8926\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/objectsid-type.png 775w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/objectsid-type-300x71.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/objectsid-type-768x181.png 768w\" sizes=\"auto, (max-width: 775px) 100vw, 775px\" \/><\/a><\/figure>\n\n\n\n<p>I already knew the property name. You may need to select all properties to pipe to Get-Member and narrow down your list.<\/p>\n\n\n\n<p>What kind of constructor options are available?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1018\" height=\"131\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor.png\" alt=\"SID constructors\" class=\"wp-image-8927\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor.png 1018w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor-300x39.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor-768x99.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/sid-constructor-850x109.png 850w\" sizes=\"auto, (max-width: 1018px) 100vw, 1018px\" \/><\/a><\/figure>\n\n\n\n<p>This looks promising!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$sid = [System.Security.Principal.SecurityIdentifier]::new($rawsid,0)<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid.png\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"113\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid.png\" alt=\"\" class=\"wp-image-8928\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid.png 913w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid-300x37.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid-768x95.png 768w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/unresolved-sid-850x105.png 850w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/a><\/figure>\n\n\n\n<p>Better. But not ideal. Piping $sid to Get-Member for guidance, I find the Translate() method. I know from previous experience how to use the method. If you didn't, you might have to do some research to learn how to use it. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/translated-sid.png\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"113\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/translated-sid.png\" alt=\"translated sid\" class=\"wp-image-8929\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/translated-sid.png 593w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/translated-sid-300x57.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/a><\/figure>\n\n\n\n<p>And this is what I expect since I already know the account name. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Object GUID<\/h2>\n\n\n\n<p>Remember, we're focusing on a process here. Let's try one more property and look at the object GUID, which is also stored as an array of bytes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">[byte[]]$rawguid = $gmsa.properties.objectguid[0]<\/code><\/pre>\n\n\n\n<p>I know this has to be a [System.Guid] object. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/guid-constructor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"124\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/guid-constructor.png\" alt=\"\" class=\"wp-image-8930\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/guid-constructor.png 787w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/guid-constructor-300x47.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/guid-constructor-768x121.png 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/a><\/figure>\n\n\n\n<p>This looks easy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converting-bytes-to-guid.png\"><img loading=\"lazy\" decoding=\"async\" width=\"397\" height=\"121\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converting-bytes-to-guid.png\" alt=\"\" class=\"wp-image-8931\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converting-bytes-to-guid.png 397w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/converting-bytes-to-guid-300x91.png 300w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/a><\/figure>\n\n\n\n<p>Writing simple PowerShell functions to make these conversions wouldn't be that difficult.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>I realize you may not have a need to use the DirectorySearcher, but you might find yourself in a situation with unknown data that you need to translate or convert. You might start with the process I've demonstrated here. If nothing else, I hope this has shown you the importance of knowing how to use Get-Member.<\/p>\n\n\n\n<p>Comments and questions are welcome.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I was chatting with my friend Gladys. As part of her work, she often creates Active Directory PowerShell-related tools for her colleagues. It is always good to be the toolmaker! Anyway, she doesn&#8217;t want to rely on the Active Directory module from Remote Server Administration Tools (RSAT). There&#8217;s no guarantee that the feature can&#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: Unraveling data from the Active Directory DirectorySearcher with #PowerShell","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,8],"tags":[184,539,667,534,540],"class_list":["post-8916","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-powershell","category-scripting","tag-net","tag-active-directory","tag-directorysearcher","tag-powershell","tag-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator<\/title>\n<meta name=\"description\" content=\"Ever get a PowerShell result that wasn&#039;t what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.\" \/>\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\/powershell\/8916\/managing-raw-directorysearcher-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"Ever get a PowerShell result that wasn&#039;t what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-24T18:37:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-24T18:37:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png\" \/>\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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Managing Raw DirectorySearcher Data\",\"datePublished\":\"2022-02-24T18:37:05+00:00\",\"dateModified\":\"2022-02-24T18:37:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/\"},\"wordCount\":826,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/resultpropertiescollection.png\",\"keywords\":[\".NET\",\"Active Directory\",\"DirectorySearcher\",\"PowerShell\",\"Scripting\"],\"articleSection\":[\"Active Directory\",\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/\",\"name\":\"Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/resultpropertiescollection.png\",\"datePublished\":\"2022-02-24T18:37:05+00:00\",\"dateModified\":\"2022-02-24T18:37:09+00:00\",\"description\":\"Ever get a PowerShell result that wasn't what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/resultpropertiescollection.png\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/resultpropertiescollection.png\",\"width\":903,\"height\":510},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/8916\\\/managing-raw-directorysearcher-data\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/powershell\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Raw DirectorySearcher Data\"}]},{\"@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":"Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator","description":"Ever get a PowerShell result that wasn't what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.","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\/powershell\/8916\/managing-raw-directorysearcher-data\/","og_locale":"en_US","og_type":"article","og_title":"Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator","og_description":"Ever get a PowerShell result that wasn't what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/","og_site_name":"The Lonely Administrator","article_published_time":"2022-02-24T18:37:05+00:00","article_modified_time":"2022-02-24T18:37:09+00:00","og_image":[{"url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png","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":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Managing Raw DirectorySearcher Data","datePublished":"2022-02-24T18:37:05+00:00","dateModified":"2022-02-24T18:37:09+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/"},"wordCount":826,"commentCount":2,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png","keywords":[".NET","Active Directory","DirectorySearcher","PowerShell","Scripting"],"articleSection":["Active Directory","PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/","name":"Managing Raw DirectorySearcher Data &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png","datePublished":"2022-02-24T18:37:05+00:00","dateModified":"2022-02-24T18:37:09+00:00","description":"Ever get a PowerShell result that wasn't what you expected? But you know what it should look like? Here is a process I used with the AD DirectorySearcher.","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/02\/resultpropertiescollection.png","width":903,"height":510},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8916\/managing-raw-directorysearcher-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"PowerShell","item":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},{"@type":"ListItem","position":2,"name":"Managing Raw DirectorySearcher Data"}]},{"@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":8228,"url":"https:\/\/jdhitsolutions.com\/blog\/active-directory\/8228\/better-active-directory-reporting-with-powershell\/","url_meta":{"origin":8916,"position":0},"title":"Better Active Directory Reporting with PowerShell","author":"Jeffery Hicks","date":"March 18, 2021","format":false,"excerpt":"I've been using Active Directory for over 20 years. I was even one of the first 2000 IT Pros worldwide to obtain an MCSE on Windows 2000. Over the years, I've used a variety of management tools from command-line tools, to VBScript, and eventually PowerShell. Like many of you, I've\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\/samplereport.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/samplereport.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2021\/03\/samplereport.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1036,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/1036\/join-me-in-orlando\/","url_meta":{"origin":8916,"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":148,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/148\/order-managing-active-directory-with-windows-powershell-tfm-finally\/","url_meta":{"origin":8916,"position":2},"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":130,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/130\/techmentor-san-francisco-2008\/","url_meta":{"origin":8916,"position":3},"title":"Techmentor San Francisco 2008","author":"Jeffery Hicks","date":"February 22, 2008","format":false,"excerpt":"I finished up my slide decks last week for the first Techmentor conference of the year in San Francisco (March 30 -April 3). If you've never been to a Techmentor conference you're missing a great opportunity to hear and see your favorite IT speakers. Plus it's a lot of fun\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":7700,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/7700\/active-directory-objects-and-the-powershell-pipeline\/","url_meta":{"origin":8916,"position":4},"title":"Active Directory Objects and the PowerShell Pipeline","author":"Jeffery Hicks","date":"September 28, 2020","format":false,"excerpt":"This article is something I've been meaning to write for sometime. As often as I tell people PowerShell is easy to use once you understand its core concepts, that isn't always the case.\u00a0 This is a problem my friend Gladys Kravitz brought to my attention some time ago. Like her,\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\/2020\/09\/Get-bits-revised-ad.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/09\/Get-bits-revised-ad.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/09\/Get-bits-revised-ad.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/09\/Get-bits-revised-ad.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/09\/Get-bits-revised-ad.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":4169,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4169\/friday-fun-updated-ise-scripting-geek-module\/","url_meta":{"origin":8916,"position":5},"title":"Friday Fun: Updated ISE Scripting Geek Module","author":"Jeffery Hicks","date":"January 9, 2015","format":false,"excerpt":"A few years ago I published a module with a number of functions and enhancements for the PowerShell ISE. This ISEScriptingGeek module has remained popular over the last few years. But I wrote it for PowerShell v2. I have also come up with a number of new additions to the\u2026","rel":"","context":"In &quot;Friday Fun&quot;","block_context":{"text":"Friday Fun","link":"https:\/\/jdhitsolutions.com\/blog\/category\/friday-fun\/"},"img":{"alt_text":"geek","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/01\/geek-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/8916","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=8916"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/8916\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=8916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=8916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=8916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}