{"id":52453,"date":"2009-09-16T03:01:00","date_gmt":"2009-09-16T03:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2009\/09\/16\/hey-scripting-guy-can-i-apply-security-settings-for-one-folder-to-many-other-folders\/"},"modified":"2009-09-16T03:01:00","modified_gmt":"2009-09-16T03:01:00","slug":"hey-scripting-guy-can-i-apply-security-settings-for-one-folder-to-many-other-folders","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/hey-scripting-guy-can-i-apply-security-settings-for-one-folder-to-many-other-folders\/","title":{"rendered":"Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?"},"content":{"rendered":"<p><SPAN class=\"sbmLink\">\n<TABLE cellSpacing=\"1\" cellPadding=\"1\">\n<TBODY>\n<TR>\n<TD class=\"sbmText\">Share this post: <\/TD>\n<TD><A title=\"Post it to Backflip!\" href=\"http:\/\/www.backflip.com\/add_page_pop.ihtml?url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/backflip4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Buddymark!\" href=\"http:\/\/buddymarks.com\/s_add_bookmark.php?bookmark_url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;bookmark_title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/buddymar4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Del.icio.us!\" href=\"http:\/\/del.icio.us\/post?url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/deliciou4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Digg!\" href=\"http:\/\/digg.com\/submit?phase=2&amp;url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/digg14.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Facebook!\" href=\"http:\/\/www.facebook.com\/sharer.php?u=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;t=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/telligent.evolution.components.attachments\/13\/4982\/00\/00\/01\/76\/53\/19\/facebook.JPG\"><\/A><\/TD>\n<TD><A title=\"Post it to Furl!\" href=\"http:\/\/www.furl.net\/store?s=f&amp;to=0&amp;u=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;ti=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/furl4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Netvouz!\" href=\"http:\/\/netvouz.com\/action\/submitBookmark?url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/netvouz4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Reddit!\" href=\"http:\/\/reddit.com\/submit?url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/reddit4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Spurl!\" href=\"http:\/\/www.spurl.net\/spurl.php?v=3&amp;url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/spurl8.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Technorati!\" href=\"http:\/\/technorati.com\/faves\/?add=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/technora4.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Wists!\" href=\"http:\/\/www.wists.com\/?action=add&amp;url=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;title=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/wists9.png\"><\/A><\/TD>\n<TD><A title=\"Post it to Yahoo!\" href=\"http:\/\/myweb.yahoo.com\/myresults\/bookmarklet?u=http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/09\/16\/hey-scripting-guy-september-16-2009.aspx&amp;t=Hey, Scripting Guy! Can I Apply Security Settings for One Folder to Many Other Folders?\" target=\"_blank\"><IMG border=\"0\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/yahoo9.png\"><\/A><\/TD><\/TR><\/TBODY><\/TABLE><\/SPAN>\n<P class=\"MsoNormal\"><IMG class=\"nearGraphic\" title=\"Hey, Scripting Guy! Question\" border=\"0\" alt=\"Hey, Scripting Guy! Question\" align=\"left\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/q-for-powertip.jpg\" width=\"34\" height=\"34\">Hey, Scripting Guy! Our company is in the process of obtaining the <A href=\"http:\/\/www.isoiec20000certification.com\/about\/whatis.asp\"><FONT face=\"Segoe\">ISO 20000 certification<\/FONT><\/A> for IT service management and as a result it seems we have to have documentation and processes in place for <EM>everything<\/EM>. In the past when I created a folder I would manually set the security when I was finished. If I had to create 15 folders, I would manually set the security on the 15 folders. Now I need to be able to show that the 15 folders have the same security settings. Do you have a script that will copy the security settings from one folder, and then apply the same security settings to 15 newly created folders? If you do, that would be awesome. If you don&#8217;t then I guess I will have to punt. \n<P class=\"MsoNormal\">&#8212; SD <BR>\n<P class=\"MsoNormal\"><IMG class=\"nearGraphic\" title=\"Hey, Scripting Guy! Answer\" border=\"0\" alt=\"Hey, Scripting Guy! Answer\" align=\"left\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/a-for-powertip.jpg\" width=\"34\" height=\"34\">Hello SD, <\/P>\n<P class=\"MsoNormal\">Microsoft Scripting Guy Ed Wilson here, I have not been involved with an ISO 20000 certification process. I imagine it is a pretty cool and exciting process, so I am green with envy at your opportunity to excel in this regard. If you have been following the Scripting Guys on <A href=\"https:\/\/twitter.com\/scriptingguys\/\">Twitter<\/A> you would have seen the tweet I made the other day about finally gaining access to the <A href=\"mailto:scripter@microsoft.com\">scripter@microsoft.com<\/A> e-mail box. The problem, as it turns out, is my mailbox was moved to a different server because I am running on the Exchange 14 <A href=\"http:\/\/en.wikipedia.org\/wiki\/Eat_one's_own_dog_food\"><FONT face=\"Segoe\">dog food server<\/FONT><\/A> and also beta testing Outlook 2010. Needless to say, things get pretty exciting at times. Anyway, I am close to 500 e-mails behind in answering the scripter e-mail. I anticipate a couple of long weekends and I will be caught up-\u2013so keep the e-mails coming. I have also begun doing additional tweets because as I am writing the Hey Scripting Guy articles, I often find new ways of doing things, and I like to share them as soon as I can. So that is my excitement right now. Perhaps now you can see why I am envious of your ISO 20000 project. I guess the best I can do, is help out by proxy. So I wrote the CreateFolderSetSecurity.ps1 script just for you. <\/P>\n<P class=\"MsoNormal\">The complete CreateFolderSetSecurity.ps1 script is seen here. \n<P class=\"CodeBlockScreenedHead\"><STRONG>CreateFolderSetSecurity.ps1 <\/P><\/STRONG>\n<P class=\"CodeBlockScreened\"><SPAN><FONT><FONT face=\"Lucida Sans Typewriter\">$templateFolder = &#8220;C:\\fso&#8221; <BR>if(-not(Test-Path -path $templateFolder)) <BR><SPAN>&nbsp; <\/SPAN>{ <BR><SPAN>&nbsp;&nbsp;&nbsp; <\/SPAN>&#8220;Folder $templateFolder not found. Check path and try again.&#8221; <BR><SPAN>&nbsp;&nbsp;&nbsp; <\/SPAN>Exit <BR><SPAN>&nbsp; <\/SPAN>} <BR>$templateAcl = Get-ACL -path $templateFolder <BR>$path = &#8220;C:\\myTest&#8221; <BR>$folderName = &#8220;TestFolder&#8221; <BR><BR>For($i = 0; $i -le 5 ; $i++) <BR>{ <BR><SPAN>&nbsp;<\/SPAN>New-Item -path $path -name $folderName$i -itemType Directory -force <BR><SPAN>&nbsp;<\/SPAN>Set-Acl -path (Join-Path -path $path -childpath $folderName$i) -aclObject $templateAcl <BR>} \n<P><\/FONT><\/FONT><\/SPAN>The first thing you need to do is to assign the path to use for the template folder. Use the <B>$templateFolder<\/B> variable to hold the path to the template folder. The template folder is the folder that has been given the security settings you wish to duplicate. To aid in managing the security settings, you may wish to give your template folders a naming convention that will assist in keeping track of the folders. For example, something like <B>__HRGroupTemplate<\/B> might be useful. By prefixing each folder name with a double underscore (<B>__<\/B>), you will cause all of your template folders to percolate to the top of the folder listing in Windows Explorer. This is seen in this image: <\/P>\n<P class=\"Fig-Graphic\"><IMG title=\"Image of double underscore prefix on template folder names\" alt=\"Image of double underscore prefix on template folder names\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2009\/september\/hey0916\/hsg-09-16-09-01.jpg\" width=\"600\" height=\"301\"> <BR>\n<P>The template folder that is used in the CreateFolderSetSecurity.ps1 script is the <B>C:\\fso<\/B> folder. The security on this folder has been modified to explicitly deny the guest user account access. This is seen here: <\/P>\n<P class=\"Fig-Graphic\"><IMG title=\"Image of C:\\fso set up to deny guest user account access\" alt=\"Image of C:\\fso set up to deny guest user account access\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2009\/september\/hey0916\/hsg-09-16-09-02.jpg\" width=\"367\" height=\"474\"> \n<P>If you are using a different folder than the <B>C:\\fso<\/B> folder for your template folder (which is more than likely), you will need to modify the line of code that is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">$templateFolder = &#8220;C:\\fso&#8221; \n<P><\/FONT><\/SPAN>If the CreateFolderSetSecurity.ps1 Windows PowerShell script is not able to access the template folder that is referenced by the path stored in the <B>$templateFolder<\/B> variable, the rest of the script will be meaningless. The <B>Test-Path<\/B> cmdlet is used to determine if the template folder exists. The <B>Test-Path<\/B> cmdlet returns true if the folder exists. It returns false if the folder does not exist.<SPAN>&nbsp; <\/SPAN>This is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">PS C:\\&gt; Test-Path -Path c:\\fso <BR>True <BR>PS C:\\&gt; Test-Path -Path c:\\fso12 <BR>False <BR>PS C:\\&gt; \n<P><\/FONT><\/SPAN>Because the <B>Test-Path <\/B>cmdlet returns true or false, the return value can be treated as a Boolean value, and a shortcut version of the <B>if<\/B> statement can be used. You would read the command as meaning &#8220;if the folder exists, do something.&#8221;<SPAN>&nbsp; <\/SPAN>This is illustrated here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">PS C:\\&gt; if(Test-Path -Path c:\\fso) { &#8220;it exists&#8221; } <BR>it exists <BR>PS C:\\&gt; if(Test-Path -Path c:\\fso12) { &#8220;it exists&#8221; } <BR>PS C:\\&gt; \n<P><\/FONT><\/SPAN>If the folder does not exist, a message is displayed on the Windows PowerShell console and the script will exit. The <B>\u2013not<\/B> operator is used to test for the absence of the folder. This is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">if(-not(Test-Path -path $templateFolder)) <BR><SPAN>&nbsp; <\/SPAN>{ <BR><SPAN>&nbsp;&nbsp;&nbsp; <\/SPAN>&#8220;Folder $templateFolder not found. Check path and try again.&#8221; <BR><SPAN>&nbsp;&nbsp;&nbsp; <\/SPAN>Exit <BR><SPAN>&nbsp; <\/SPAN>} \n<P><\/FONT><\/SPAN>Once you have ensured that the template folder exists, use the <B>Get-Acl<\/B> cmdlet to obtain the <A href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/system.security.accesscontrol.directorysecurity.aspx\">System.Security.AccessControl.DirectorySecurity<\/A> .NET Framework class. The <B>DirectorySecurity<\/B> object will be used when setting the security on the new folders. This is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">$templateAcl = Get-ACL -path $templateFolder \n<P><\/FONT><\/SPAN>Two more variables are assigned values. The first variable is the path that will hold the newly created folders. The <B>Test-Path<\/B> cmdlet is not used to check for the existence of the folder referenced by the <B>$path<\/B> variable because this folder will be created if it does not already exist. The second variable, <B>$folderName<\/B>, holds the folder name prefix. In this example, each of the five folders that are created will begin with the name <B>TestFolder<\/B>. This section of the script is shown here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">$path = &#8220;C:\\myTest&#8221; <BR>$folderName = &#8220;TestFolder&#8221; \n<P><\/FONT><\/SPAN>To create multiple folders with the same base name, use the <B>for<\/B> statement, which is composed of three parts. <\/P>\n<P class=\"Readeraidonly\">For more information on using the <B>for<\/B> statement, check out the <SPAN><A href=\"http:\/\/blogs.technet.com\/heyscriptingguy\/archive\/2009\/05\/04\/how-can-i-use-windows-powershell-to-handle-mind-numbing-repetitive-tasks.aspx\"><FONT face=\"Segoe\">Hey, Scripting Guy! How Can I Use Windows PowerShell to Handle Mind-Numbing, Repetitive Tasks?<\/FONT><\/A><\/SPAN> article. \n<P class=\"MsoNormal\">The opening section of the <B>for<\/B> statement is seen here: \n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\">For($i = 0; $i -le 5 ; $i++) <BR>{ <BR><BR>\n<P><\/FONT><\/SPAN><BR>Inside the script block (curly brackets), the <B>New-Item<\/B> cmdlet is used to create a new directory. The path is contained in the <B>$path<\/B> variable, and the name of the new folder is a concatenation of the folder name prefix stored in the <B>$folderName<\/B> variable and the current value of the <B>$i<\/B> variable. The <B>\u2013force<\/B> parameter is used to ensure the folder will be created even if the parent folder does not exist. This line of code is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\"><SPAN>&nbsp;<\/SPAN>New-Item -path $path -name $folderName$i -itemType Directory \u2013force \n<P><\/FONT><\/SPAN><BR>Once the new folder is created, the <B>Set-Acl<\/B> cmdlet is used to set the security on the new folder. The path to the new folder is created by using the <B>Join-Path<\/B> cmdlet. The <B>-path<\/B> parameter of the <B>Join-Path<\/B> cmdlet points to the parent path. The <B>\u2013childpath<\/B> parameter points to the last portion of the folder path. Because the <B>Join-Path<\/B> command is placed inside a set of parentheses, this part of the <B>Set-Acl<\/B> command is evaluated first. The last parameter of the <B>Set-Acl<\/B> cmdlet that is used is the <B>\u2013aclObject<\/B> parameter. It receives the <B>DirectorySecurity<\/B> object that is stored in the <B>$templateAcl<\/B> variable. This is seen here: <\/P>\n<P class=\"CodeBlock\"><SPAN><FONT face=\"Lucida Sans Typewriter\"><SPAN>&nbsp;<\/SPAN>Set-Acl -path (Join-Path -path $path -childpath $folderName$i) -aclObject $templateAcl <BR>} \n<P><\/FONT><\/SPAN>When the script is run, the folder structure shown here is created: <\/P>\n<P class=\"Fig-Graphic\"><IMG title=\"Image of folder structure created when script is run\" alt=\"Image of folder structure created when script is run\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2009\/september\/hey0916\/hsg-09-16-09-03.jpg\" width=\"600\" height=\"318\"> \n<P>The last thing that needs to be done is to inspect the security on the folders to ensure that the custom access control lists were properly applied. As seen in the following image, the script worked perfectly for our purposes: <\/P>\n<P class=\"Fig-Graphic\"><IMG title=\"Image of proof that script ran as expected\" alt=\"Image of proof that script ran as expected\" src=\"http:\/\/img.microsoft.com\/library\/media\/1033\/technet\/images\/scriptcenter\/qanda\/hsg\/2009\/september\/hey0916\/hsg-09-16-09-04.jpg\" width=\"367\" height=\"474\"> \n<P><BR>Well, SD, that is about all there is to copying security descriptors from a template folder and applying them to newly created folders. Thank you for the e-mail you sent to scripter@microsoft.com. <\/P>\n<P class=\"MsoNormal\">If you want to know exactly what we will be looking at tomorrow, follow us on <A href=\"http:\/\/www.twitter.com\/scriptingguys\/\" target=\"_blank\">Twitter<\/A> or <A href=\"http:\/\/www.new.facebook.com\/group.php?gid=5901799452\" target=\"_blank\"><FONT face=\"Segoe\">Facebook<\/FONT><\/A>. If you have any questions, send e-mail to us at <A href=\"mailto:scripter@microsoft.com\" target=\"_blank\">scripter@microsoft.com<\/A> or post your questions on the <A href=\"http:\/\/social.technet.microsoft.com\/Forums\/en\/ITCG\/threads\/\" target=\"_blank\">Official Scripting Guys Forum<\/A>. See you tomorrow. Until then, take care. <BR>\n<P><B><SPAN>Ed Wilson and Craig Liebendorfer, Scripting Guys \n<P>&nbsp;<\/P><\/SPAN><\/B>\n<P><B><FONT size=\"3\" face=\"Times New Roman\"><\/FONT><\/B><\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Share this post: Hey, Scripting Guy! Our company is in the process of obtaining the ISO 20000 certification for IT service management and as a result it seems we have to have documentation and processes in place for everything. In the past when I created a folder I would manually set the security when I [&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,3,63,45],"class_list":["post-52453","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-dacls-and-sacls","tag-scripting-guy","tag-security","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>Share this post: Hey, Scripting Guy! Our company is in the process of obtaining the ISO 20000 certification for IT service management and as a result it seems we have to have documentation and processes in place for everything. In the past when I created a folder I would manually set the security when I [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/52453","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=52453"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/52453\/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=52453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=52453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=52453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}