{"id":4003,"date":"2013-03-19T00:01:00","date_gmt":"2013-03-19T00:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2013\/03\/19\/find-active-directory-user-info-with-the-powershell-provider\/"},"modified":"2013-03-19T00:01:00","modified_gmt":"2013-03-19T00:01:00","slug":"find-active-directory-user-info-with-the-powershell-provider","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/find-active-directory-user-info-with-the-powershell-provider\/","title":{"rendered":"Find Active Directory User Info with the PowerShell Provider"},"content":{"rendered":"<p><strong>Summary<\/strong>: Microsoft Scripting Guy, Ed Wilson, talks about how to use the Windows PowerShell provider to find user information in Active Directory.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/q-for-powertip.jpg\" alt=\"Hey, Scripting Guy! Question\" \/>&nbsp;Hey, Scripting Guy! I often need to find information in Active Directory, but I do not like having to write LDAP queries. To me, it is soooo last century&mdash;I mean, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fred_Flintstone\" target=\"_blank\">Fred Flintstone<\/a> used to write LDAP queries. I love the way that&#8230;<\/p>\n<p>&mdash;CH<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/a-for-powertip.jpg\" alt=\"Hey, Scripting Guy! Answer\" \/>&nbsp;Hello CH,<\/p>\n<p>Microsoft Scripting Guy, Ed Wilson, is here. CH, I know what you mean. I loved my first computer, but I have no desire to go back to using the CPM operating system. Luckily, with the Active Directory module provider, I have direct access to an AD: drive. This makes it easy to use Windows PowerShell to explore. Because of the Active Directory module provider, and the way that Windows PowerShell providers work, I need no special Active Directory Domain Services (AD&nbsp;DS) knowledge. In fact, I can use the same commands that I would use if I was exploring the file system, the registry, the environmental variables, or even the variable drive. Windows PowerShell abstracts the underlying data and permits me to use a file system analogy to work with the data.<\/p>\n<p style=\"padding-left: 30px\"><strong>Note<\/strong>&nbsp;&nbsp;&nbsp;This is the second in a series of blogs about working with the Active Directory module provider. You should definitely read <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2013\/03\/18\/playing-with-the-ad-drive-for-fun-and-profit.aspx\" target=\"_blank\">Playing with the AD: Drive for Fun and Profit<\/a> prior to reading today&rsquo;s blog because I am going to build on everything that went before.<\/p>\n<h2>Filtering by using the Where-Object cmdlet<\/h2>\n<p>The cool thing about the AD: drive is the ability to use standard Windows PowerShell cmdlets to find and to filter the AD DS data. In the example that follows, I import the Active Directory module, create a Windows PowerShell drive that exposes Charlotte organizational unit (OU) information, and filter out only the users from the OU. The commands is shown here (<strong>ipmo<\/strong> is an alias for <strong>Import-Module<\/strong>, sl is an alias for <strong>Set-Location<\/strong>, <strong>dir<\/strong> is an alias for <strong>Get-Childitem<\/strong>, and <strong>?<\/strong> is an alias for <strong>Where-Object<\/strong>).<\/p>\n<p style=\"padding-left: 30px\">ipmo activedirectory<\/p>\n<p style=\"padding-left: 30px\">New-PSDrive -PSProvider activedirectory -Name charlotte -Root &#8220;AD:\\ou=Charlotte,DC=Iammred,DC=net&#8221;<\/p>\n<p style=\"padding-left: 30px\">sl charlotte:<\/p>\n<p style=\"padding-left: 30px\">dir<\/p>\n<p style=\"padding-left: 30px\">dir | ? objectclass -eq user<\/p>\n<p>The commands and the output associated with the commands are shown in the image that follows.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/4426.hsg-3-19-13-01.png\"><img decoding=\"async\" title=\"Image of command output\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/4426.hsg-3-19-13-01.png\" alt=\"Image of command output\" \/><\/a><\/p>\n<h2>Finding a specific user<\/h2>\n<p>To find a specific user, I again use <strong>Where-Object<\/strong>. I have a couple of choices to use when filtering for the contact. I can use the <strong>Name<\/strong><em> <\/em>property or the <strong>DistinguishedName<\/strong><em> <\/em>property. Because the <strong>Name<\/strong><em> <\/em>property is shorter and requires less typing, I use that one as shown here.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; dir | ? name -match &#8216;ed wilson&#8217;<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectClass&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=ed wilson,OU=Charlotte,DC=iammred,DC&#8230;<\/p>\n<p>If I would like to directly access the user object instead of filtering to find the user object, I need to use the <strong>DistinguishedName <\/strong>attribute. But it is not as bad as it might sound. This is because the <strong>DistinguishedName<\/strong> property becomes the path to the object.<\/p>\n<p>I discovered this when I tried to use <strong>Get-Item<\/strong> to access the user object. Normally, a property such as <strong>Name<\/strong><em> <\/em>would what I would expect to use to find an object. In fact, that is what I did in my <strong>Where-Object<\/strong> command&ndash;I filtered on a value for the <strong>Name<\/strong><em> <\/em>attribute. When I use the name of the user in my <strong>Get-Item<\/strong> command to retrieve a user, an error message appears. This command and the message are shown here.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; Get-Item &#8216;ed wilson&#8217;<\/p>\n<p style=\"padding-left: 30px\">Get-Item : Cannot find path &#8216;charlotte:\\ed wilson&#8217; because it does not exist.<\/p>\n<p style=\"padding-left: 30px\">At line:1 char:1<\/p>\n<p style=\"padding-left: 30px\">+ Get-Item &#8216;ed wilson&#8217;<\/p>\n<p style=\"padding-left: 30px\">+ ~~~~~~~~~~~~~~~~~~~~<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp;&nbsp; + CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ObjectNotFound: (charlotte:\\ed wilson:String) [Get-Item], ItemNotFoundException<\/p>\n<p style=\"padding-left: 30px\">&nbsp;&nbsp;&nbsp; + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand<\/p>\n<p>Note that the error message is <em>ObjectNotFound, <\/em>and the FullyQualifiedErrorId<em> <\/em>is <em>PathNotFound. <\/em>Therefore, <strong>Get-Item<\/strong> is attempting to look for a path to an object and is not finding it. In fact, whenever I use <strong>Get-Item<\/strong>, I must specify a path to the object. For example, if I want to retrieve a log file, I specify the path. This is shown here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\&gt; Get-Item C:\\fso\\20110314.log<\/p>\n<p>If I am already in the C:\\fso folder, a period can be used to take the place of the C:\\fso portion of the path&mdash;but still, I must specify a path. This is shown here.<\/p>\n<p style=\"padding-left: 30px\">PS C:\\fso&gt; get-item .\\20110314.log<\/p>\n<p>If I think of OU=Charlotte, DC=Iammred, and DC=NET as folders (or directories), the file system analogy works. The <strong>DistinguishedName<\/strong> attribute is the full path to the object. Therefore, if I am in the OU=Charlotte folder, I only need to specify the last portion of the <strong>DistinguishedName<\/strong> attribute. This technique is shown here.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; Get-Item .\\&#8217;cn=ed wilson&#8217;<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cn=ed wilson,ou=Charlotte,DC=Iammred,DC&#8230;<\/p>\n<p>Luckily, the Active Directory module provider does not require the <strong>.\\<\/strong>&mdash;therefore, I can drop it as shown in this example.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; Get-Item &#8216;cn=ed wilson&#8217;<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ObjectClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cn=ed wilson,ou=Charlotte,DC=Iammred,DC&#8230;<\/p>\n<h2><span style=\"font-size: 1.5em\">Filtering directly by using Get-Item<\/span><\/h2>\n<p>Because the <strong>Get-Item<\/strong> cmdlet supports the use of the <strong>Filter<\/strong><em> <\/em>parameter, I can easily create a filter to find a specific user. All I need to do is to specify a value for the <strong>Name<\/strong><em> <\/em>attribute and use a wildcard character for the path. This technique is shown here when I am on the Charlotte Windows PowerShell drive.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; Get-Item -Filter &#8220;name=ed wilson&#8221; -Path *<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=ed wilson,ou=Charlotte,DC=Iammred,DC&#8230;<\/p>\n<p>The cool thing is that I can even filter for properties not normally returned. So for example, I can find users who have a city value of Charlotte (the lowercase<em> <\/em>L is the <strong>LDAP<\/strong> attribute)<em>. <\/em>This technique is shown here.<\/p>\n<p style=\"padding-left: 30px\">PS charlotte:\\&gt; Get-Item -Filter &#8220;l=charlotte&#8221; -Path *<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=ed wilson,ou=Charlotte,DC=Iammred,DC&#8230;<\/p>\n<p style=\"padding-left: 30px\">Teresa Wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=Teresa Wilson,ou=Charlotte,DC=Iammre&#8230;<\/p>\n<h2><span style=\"font-size: 1.5em\">Performing a recursive search by using Get-ChildItem<\/span><\/h2>\n<p>Perhaps I want to search for users that have a city value of Charlotte, but I do not know in which OU they reside. To do this, I can use the <strong>Get-ChildItem<\/strong> cmdlet and use the <strong>Recurse<\/strong><em> <\/em>parameter.<\/p>\n<p style=\"padding-left: 30px\">PS AD:\\dc=iammred,dc=net&gt; Get-ChildItem -Filter &#8220;l=charlotte&#8221; -Path * -Recurse<\/p>\n<p style=\"padding-left: 30px\">&nbsp;<\/p>\n<p style=\"padding-left: 30px\">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DistinguishedName<\/p>\n<p style=\"padding-left: 30px\">&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"padding-left: 30px\">ed wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=ed wilson,OU=Charlotte,dc=iammred,dc&#8230;<\/p>\n<p style=\"padding-left: 30px\">Teresa Wilson&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=Teresa Wilson,OU=Charlotte,dc=iammre&#8230;<\/p>\n<p style=\"padding-left: 30px\">MyNewUser&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CN=MyNewUser,OU=MyTestOU,dc=iammred,dc=net<\/p>\n<p>CH, that is all there is to using the Active Directory module provider in Windows PowerShell to find user information. Active Directory Week will continue tomorrow when I will talk about finding and modifying user information.<\/p>\n<p>I invite you to follow me on <a href=\"http:\/\/bit.ly\/scriptingguystwitter\" target=\"_blank\">Twitter<\/a> and <a href=\"http:\/\/bit.ly\/scriptingguysfacebook\" target=\"_blank\">Facebook<\/a>. If you have any questions, send email to me at <a href=\"mailto:scripter@microsoft.com\" target=\"_blank\">scripter@microsoft.com<\/a>, or post your questions on the <a href=\"http:\/\/bit.ly\/scriptingforum\" target=\"_blank\">Official Scripting Guys Forum<\/a>. See you tomorrow. Until then, peace.<\/p>\n<p><strong>Ed Wilson, Microsoft Scripting Guy<\/strong>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, talks about how to use the Windows PowerShell provider to find user information in Active Directory. &nbsp;Hey, Scripting Guy! I often need to find information in Active Directory, but I do not like having to write LDAP queries. To me, it is soooo last century&mdash;I mean, Fred Flintstone used [&hellip;]<\/p>\n","protected":false},"author":596,"featured_media":87096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[7,415,3,4,8,45],"class_list":["post-4003","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-active-directory","tag-psproviders","tag-scripting-guy","tag-scripting-techniques","tag-searching-active-directory","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>Summary: Microsoft Scripting Guy, Ed Wilson, talks about how to use the Windows PowerShell provider to find user information in Active Directory. &nbsp;Hey, Scripting Guy! I often need to find information in Active Directory, but I do not like having to write LDAP queries. To me, it is soooo last century&mdash;I mean, Fred Flintstone used [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/4003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/users\/596"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/comments?post=4003"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/4003\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media\/87096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media?parent=4003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=4003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=4003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}