{"id":49653,"date":"2010-05-23T00:01:00","date_gmt":"2010-05-23T00:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2010\/05\/23\/hey-scripting-guy-weekend-scripter-using-the-get-acl-cmdlet-to-show-inherited-permissions-on-registry-keys\/"},"modified":"2010-05-23T00:01:00","modified_gmt":"2010-05-23T00:01:00","slug":"hey-scripting-guy-weekend-scripter-using-the-get-acl-cmdlet-to-show-inherited-permissions-on-registry-keys","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/hey-scripting-guy-weekend-scripter-using-the-get-acl-cmdlet-to-show-inherited-permissions-on-registry-keys\/","title":{"rendered":"Hey, Scripting Guy! Weekend Scripter: Using the Get-ACL Cmdlet to Show Inherited Permissions on Registry Keys"},"content":{"rendered":"<p><img decoding=\"async\" height=\"16\" width=\"125\" src=\"http:\/\/s7.addthis.com\/static\/btn\/v2\/lg-share-en.gif\" alt=\"Bookmark and Share\">\n&nbsp;<\/p>\n<p class=\"MsoNormal\">Microsoft Scripting Guy Ed Wilson here. I was sitting in the kitchen waiting for my pot of English Breakfast tea to steep when my mind began to wander back over the week that was nearly completed. One of these days I will write a script to count the number of words in all the documents in a folder. That suggestion is actually up on the white board in my office, but that day will not be today. What would be cool would be to write a script that uses the Twitter API and determines how many tweets I send in a week. But again that will not be happening today. Then it dawned on me&mdash;a question I was asked earlier in the week about using the <b>Get-ACL<\/b> cmdlet to show inherited permissions on registry keys. <\/p>\n<p class=\"MsoNormal\">To play around with this just a bit, I need to give a user specific permission to a registry key. This is shown in the following image where you can see I gave Teresa (the Scripting Wife) special permission. <\/p>\n<p class=\"Fig-Graphic\"><img decoding=\"async\" height=\"456\" width=\"377\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2010\/may\/hey0523\/wes-05-23-10-01.jpg\" alt=\"Image showing the Scriping Wife has special permission\" title=\"Image showing the Scriping Wife has special permission\" style=\"width: 377px;height: 456px\"><\/p>\n<p class=\"MsoNormal\">The actual permission page is shown in the following image, where the Scripting Wife is granted the query value permission. <\/p>\n<p class=\"Fig-Graphic\"><img decoding=\"async\" height=\"481\" width=\"377\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2010\/may\/hey0523\/wes-05-23-10-02.jpg\" alt=\"Image of permission page\" title=\"Image of permission page\" style=\"width: 377px;height: 481px\"><\/p>\n<p class=\"MsoNormal\">The permissions summary page tells me that this value is not inherited. This is seen in the following image.<\/p>\n<p class=\"Fig-Graphic\"><img decoding=\"async\" height=\"455\" width=\"600\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2010\/may\/hey0523\/wes-05-23-10-03.jpg\" alt=\"Image of permissions summary page \" title=\"Image of permissions summary page \" style=\"width: 600px;height: 455px\"><\/p>\n<p class=\"MsoNormal\">If I use the <b>Get-ACL<\/b> cmdlet to retrieve access control lists from a registry key, the default view is not very helpful. This is shown here:<\/p>\n<p class=\"CodeBlock\"><span style=\"font-size: 9.5pt\"><span style=\"background-color: #ededed\">PS C:&gt; Get-Acl -Path HKCU:SoftwareScriptingGuys<\/p>\n<p>Path<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>Owner<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Access<br \/>&#8212;-<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>&#8212;&#8211;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>&#8212;&#8212;<br \/>Microsoft.PowerShell.CoreRegistry::&#8230; NWTRADERSed<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>NWTRADERSTeresa Allow<span>&nbsp; <\/span>QueryValues&#8230;<\/p>\n<p>PS C:&gt;<\/p>\n<p><\/span><\/span><\/p>\n<p class=\"MsoNormal\">On the other hand, if I pipe the results of this command to the <b>Format-List<\/b> cmdlet and choose all of the properties, the display is a bit better. This is shown here where I use the <b>fl<\/b> alias instead of typing <b>Format-List<\/b>. <\/p>\n<p class=\"CodeBlock\"><span style=\"font-size: 9.5pt\"><span style=\"background-color: #ededed\">PS C:&gt; Get-Acl -Path HKCU:SoftwareScriptingGuys | fl *<\/p>\n<p>PSPath<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: Microsoft.PowerShell.CoreRegistry::HKEY_CURRENT_USERSoftwareScriptingGuys<br \/>PSParentPath<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: Microsoft.PowerShell.CoreRegistry::HKEY_CURRENT_USERSoftware<br \/>PSChildName<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: ScriptingGuys<br \/>PSDrive<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>: HKCU<br \/>PSProvider<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span>: Microsoft.PowerShell.CoreRegistry<br \/>AccessToString<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: NWTRADERSTeresa Allow<span>&nbsp; <\/span>QueryValues<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>NWTRADERSed Allow<span>&nbsp; <\/span>FullControl<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>NT AUTHORITYSYSTEM Allow<span>&nbsp; <\/span>FullControl<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <\/span>BUILTINAdministrators Allow<span>&nbsp; <\/span>FullControl<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>NT AUTHORITYRESTRICTED Allow<span>&nbsp; <\/span>ReadKey<br \/>AuditToString<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>:<br \/>Path<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: Microsoft.PowerShell.CoreRegistry::HKEY_CURRENT_USERSoftwareScriptingGuys<br \/>Owner<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: NWTRADERSed<br \/>Group<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>: NWTRADERSDomain Users<br \/>Access<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <\/span>: {System.Security.AccessControl.RegistryAccessRule, System.Security.AccessControl.RegistryAccessRule, System.Security.AccessControl.RegistryAccessRule, System.Security.AccessControl.<br \/>RegistryAccessRule&#8230;}<br \/>Sddl<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>: O:S-1-5-21-3746122405-834892460-3960030898-1115G:DUD:AI(A;CI;CC;;;S-1-5-21-3746122405-8348924<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>60-3960030898-1207)(A;OICIID;KA;;;S-1-5-21-3746122405-834892460-3960030898-1115)(A;OICIID;KA;<br \/><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<\/span>;;SY)(A;OICIID;KA;;;BA)(A;OICIID;KR;;;RC)<br \/>AccessRightType<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: System.Security.AccessControl.RegistryRights<br \/>AccessRuleType<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: System.Security.AccessControl.RegistryAccessRule<br \/>AuditRuleType<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: System.Security.AccessControl.RegistryAuditRule<br \/>AreAccessRulesProtected : False<br \/>AreAuditRulesProtected<span>&nbsp; <\/span>: False<br \/>AreAccessRulesCanonical : True<br \/>AreAuditRulesCanonical<span>&nbsp; <\/span>: True<\/p>\n<p><\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"background-color: #ffffff\"><br \/>A careful examination of the output above does not tell me where Teresa received her <b>QueryValues<\/b> permission. The <b>AccessToString<\/b> property gives me both inherited and non-inherited permissions, but it does not tell me where they came from. If this is all I need, I can use this syntax to receive better output.<\/p>\n<p><\/span><\/p>\n<p class=\"CodeBlock\"><span style=\"font-size: 9.5pt\"><span style=\"background-color: #ededed\">PS C:&gt; (Get-Acl -Path HKCU:SoftwareScriptingGuys).AccessToString<br \/>NWTRADERSTeresa Allow<span>&nbsp; <\/span>QueryValues<br \/>NWTRADERSed Allow<span>&nbsp; <\/span>FullControl<br \/>NT AUTHORITYSYSTEM Allow<span>&nbsp; <\/span>FullControl<br \/>BUILTINAdministrators Allow<span>&nbsp; <\/span>FullControl<br \/>NT AUTHORITYRESTRICTED Allow<span>&nbsp; <\/span>ReadKey<\/p>\n<p><\/span><\/span><\/p>\n<p class=\"MsoNormal\">One of the really cool things about Windows PowerShell is its support for the .NET Framework. The <b>Format-List<\/b> output from <b>Get-ACL<\/b> told me that the <b>Access<\/b> property that is returned is a series of <b>System.Security.AccessControl.RegistryAccessRule<\/b> .NET Framework classes. When I looked up <b>System.Security.AccessControl.RegistryAccessRule<\/b> <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/system.security.accesscontrol.registryaccessrule_members(v=VS.100).aspx\"><span style=\"font-family: Segoe\">on MSDN<\/span><\/a>, I found it returns a number of very helpful properties. Because there are several instances of the <b>Access<\/b> property returned for this particular registry key, I need to use the <b>Foreach-Object<\/b> cmdlet to display the <b>RegistryAccessRule<\/b> for each entry on the key. This is shown here where I use the <b>%<\/b> symbol for an alias for <b>Foreach-Object<\/b>. <\/p>\n<p class=\"CodeBlock\"><span style=\"font-size: 9.5pt\"><span style=\"background-color: #ededed\">PS C:&gt; Get-Acl -Path HKCU:SoftwareScriptingGuys | % { $_.access }<\/p>\n<p>RegistryRights<span>&nbsp;&nbsp;&nbsp; <\/span>: QueryValues<br \/>AccessControlType : Allow<br \/>IdentityReference : NWTRADERSTeresa<br \/>IsInherited<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: False<br \/>InheritanceFlags<span>&nbsp; <\/span>: ContainerInherit<br \/>PropagationFlags<span>&nbsp; <\/span>: None<\/p>\n<p>RegistryRights<span>&nbsp;&nbsp;&nbsp; <\/span>: FullControl<br \/>AccessControlType : Allow<br \/>IdentityReference : NWTRADERSed<br \/>IsInherited<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: True<br \/>InheritanceFlags<span>&nbsp; <\/span>: ContainerInherit, ObjectInherit<br \/>PropagationFlags<span>&nbsp; <\/span>: None<\/p>\n<p>RegistryRights<span>&nbsp;&nbsp;&nbsp; <\/span>: FullControl<br \/>AccessControlType : Allow<br \/>IdentityReference : NT AUTHORITYSYSTEM<br \/>IsInherited<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: True<br \/>InheritanceFlags<span>&nbsp; <\/span>: ContainerInherit, ObjectInherit<br \/>PropagationFlags<span>&nbsp; <\/span>: None<\/p>\n<p>RegistryRights<span>&nbsp;&nbsp;&nbsp; <\/span>: FullControl<br \/>AccessControlType : Allow<br \/>IdentityReference : BUILTINAdministrators<br \/>IsInherited<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: True<br \/>InheritanceFlags<span>&nbsp; <\/span>: ContainerInherit, ObjectInherit<br \/>PropagationFlags<span>&nbsp; <\/span>: None<\/p>\n<p>RegistryRights<span>&nbsp;&nbsp;&nbsp; <\/span>: ReadKey<br \/>AccessControlType : Allow<br \/>IdentityReference : NT AUTHORITYRESTRICTED<br \/>IsInherited<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>: True<br \/>InheritanceFlags<span>&nbsp; <\/span>: ContainerInherit, ObjectInherit<br \/>PropagationFlags<span>&nbsp; <\/span>: None<\/p>\n<p><\/span><\/span><\/p>\n<p class=\"MsoNormal\">&nbsp;<\/p>\n<p class=\"MsoNormal\">Pretty cool, huh? It all revolves around being willing to explore the .NET Framework classes. Luckily, they are all documented on MSDN. I hope you enjoy the rest of your weekend.&nbsp;<\/p>\n<p class=\"MsoNormal\">&nbsp;<\/p>\n<p class=\"MsoNormal\">If you want to know exactly what we will be looking at tomorrow, follow us on <a target=\"_blank\" href=\"http:\/\/bit.ly\/scriptingguystwitter\">Twitter<\/a> or <a href=\"http:\/\/bit.ly\/scriptingguysfacebook\">Facebook<\/a>. If you have any questions, send e-mail to us at <a target=\"_blank\" href=\"http:\/\/blogs.technet.commailto:scripter@microsoft.com\"><span style=\"font-family: Segoe\">scripter@microsoft.com<\/span><\/a> or post your questions on the <a target=\"_blank\" href=\"http:\/\/bit.ly\/scriptingforum\"><span style=\"font-family: Segoe\">Official Scripting Guys Forum<\/span><\/a>. See you tomorrow. Until then, peace.<br \/><span>&nbsp;<\/p>\n<p><\/span>\n<b><span>Ed Wilson and Craig Liebendorfer, Scripting Guys<\/span><\/b><\/p>\n<p><strong><span style=\"font-family: Segoe UI\"><\/span><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Microsoft Scripting Guy Ed Wilson here. I was sitting in the kitchen waiting for my pot of English Breakfast tea to steep when my mind began to wander back over the week that was nearly completed. One of these days I will write a script to count the number of words in all the [&hellip;]<\/p>\n","protected":false},"author":595,"featured_media":87096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[62,31,26,3,63,61,45],"class_list":["post-49653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-dacls-and-sacls","tag-operating-system","tag-registry","tag-scripting-guy","tag-security","tag-weekend-scripter","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>&nbsp; Microsoft Scripting Guy Ed Wilson here. I was sitting in the kitchen waiting for my pot of English Breakfast tea to steep when my mind began to wander back over the week that was nearly completed. One of these days I will write a script to count the number of words in all the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/49653","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\/595"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/comments?post=49653"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/49653\/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=49653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=49653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=49653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}