{"id":15861,"date":"2011-01-19T00:01:00","date_gmt":"2011-01-19T00:01:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2011\/01\/19\/use-the-powershell-add-history-cmdlet-to-customize-the-console\/"},"modified":"2011-01-19T00:01:00","modified_gmt":"2011-01-19T00:01:00","slug":"use-the-powershell-add-history-cmdlet-to-customize-the-console","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/use-the-powershell-add-history-cmdlet-to-customize-the-console\/","title":{"rendered":"Use the PowerShell Add-History Cmdlet to Customize the Console"},"content":{"rendered":"<p>&nbsp;&nbsp;<\/p>\n<p><b>Summary:<\/b> Learn how to use the Windows PowerShell <b>Add-History<\/b> cmdlet to customize the console for more efficient automation.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><img decoding=\"async\" height=\"34\" width=\"34\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/q-for-powertip.jpg\" align=\"left\" alt=\"Hey, Scripting Guy! Question\" border=\"0\" title=\"Hey, Scripting Guy! Question\" \/><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>Hey, Scripting Guy! I love using the Windows PowerShell history cmdlets to simplify my server and workstation automation needs. It is much easier to <b>Invoke-History<\/b> than it is to write a script, even a simple script. This is especially true because in many places where I work the script execution policy is not enabled. Ed, it would be great if I could save my command session. I know I can create a transcript, open the transcript, cut, and paste into the Windows PowerShell shell, but I am hoping for a better way. <\/p>\n<p>&#8212; PD<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><span style=\"font-size: 10pt\"><img decoding=\"async\" height=\"34\" width=\"34\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/a-for-powertip.jpg\" align=\"left\" alt=\"Hey, Scripting Guy! Answer\" border=\"0\" title=\"Hey, Scripting Guy! Answer\" \/><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>Hello PD, Microsoft Scripting Guy Ed Wilson here. When the Scripting Wife and I arrived at the hotel in St. Augustine, Florida I had to head out to the beach. The smell of the salt in the air, the sound of the sea gulls squawking as they patrolled the coastline for food and the chill of the breeze running along the sand dunes make for an enthralling experience. This time of year, St. Augustine is not thronged with tourists, and so I was able to get a pretty decent picture of the beach, and the ocean.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/76\/18\/8865.HSG-1-19-11-1.JPG\" border=\"0\" \/>&nbsp;<\/p>\n<p>PD, When I am working in Windows PowerShell and I have a collection of commands that are working exactly the way I want them to work, I usually copy them to a script file. Of course, those script files eventually get lost, and months later, I end up reinventing the wheel (so to speak). A better way is to export the history cmdlets<span>&nbsp; <\/span>so that they can be reintroduced to the Windows PowerShell command environment later. <\/p>\n<p>I know what you are thinking&hellip; (Really I do, because I had the same thought myself when I was talking to one of the developers about the history cmdlets). <\/p>\n<p>I said (and I quote), &ldquo;You have missed a real need with the history cmdlets. You need an <b>Export-History<\/b> cmdlet.&rdquo; <\/p>\n<p>To this, he patiently explained that all I have to do is to pipeline the results of the <b>Get-History<\/b> cmdlet to <b>Explort-Clixml<\/b>. &ldquo;Oh,&rdquo; I said, &ldquo;That makes sense.&rdquo; <\/p>\n<p>Suppose I have been working in the Windows PowerShell console for a while, and I have typed several commands that I want to use again. I decide to save the commands, not as cut and paste from the console, nor as a transcript text file that includes both commands and output, but instead as rich command history objects. I want to check my history queue before exporting the commands, because there might be things in it that I do not want to save and reintroduce to my Windows PowerShell environment later. The following figure shows the results of the <b>Get-History<\/b> command. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/76\/18\/4101.HSG-1-19-11-2.JPG\" border=\"0\" \/>&nbsp;<\/p>\n<p>To perform the task of exporting my command history, all I have to do is to use the <b>Get-History<\/b> Windows PowerShell cmdlet to retrieve the history of my previously typed cmdlets and I pipeline it to the <b>Export-CliXML<\/b> cmdlet to store the commands in an XML format that will permit reconstituting the commands back into a command history object. The exact command that I typed into my Windows PowerShell console appears here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">Get-History | Export-Clixml -Path c:\\fso\\mycommands.xml<\/span><\/p>\n<p>The path <b>c:\\fso<\/b> points to the &ldquo;scratch&rdquo; directory on my local computer. That folder is my junk folder that holds various text files I use for input when I am speaking at user groups. I use those same &ldquo;demo&rdquo; files for testing when writing scripts as well. The path has the advantage of being short, and I have used it since the introduction of VBScript (incidentally that is why it is called fso &ndash;for <b>FileSystemObject<\/b> which was the name of one of the more important COM objects in VBScript). Now it is as anachronistic as talking about &ldquo;dialing&rdquo; a telephone number, or looking at the &ldquo;face&rdquo; of a clock. <\/p>\n<p>I now close out my Windows PowerShell console, and after reopening it, I use the <b>Add-History<\/b> cmdlet to my saved Windows PowerShell commands into the console. The command that achieves this task appears here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">Add-History -InputObject (Import-Clixml -Path C:\\fso\\mycommands.xml)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>I now use the <strong>Get-History<\/strong> cmdlet to confirm that the command completed successfully. The results obtained by the <b>Get-History<\/b> cmdlet appear in the following figure.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/76\/18\/3056.HSG-1-19-11-3.JPG\" border=\"0\" \/>&nbsp;<\/p>\n<p>Well, that worked well enough. The <b>Get-History<\/b> command (command ID 1) is the one I typed to prove that the command worked properly. However, what is unexpected is the <b>Get-History<\/b> command that appears at command ID 6. I must have typed that earlier, and it is unwanted. If I want to confirm my suspicions, I can import the command history file into a variable by using the <b>Import-Clixml<\/b> cmdlet. I will then be able to directly check its contents. The commands that do this, together with the associated output appear here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; $xml = Import-Clixml C:\\fso\\mycommands.xml<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; $xml<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>Id CommandLine<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>&#8212; &#8212;&#8212;&#8212;&#8211;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>1 Get-Service<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>2 Get-Process<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>3 Get-EventLog -LogName application -Newest 3<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>4 Get-History<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Just as I suspected, there is an additional command in my file. Yesterday, I <a href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2011\/01\/18\/use-powershell-history-to-speed-repetitive-commands.aspx\">talked about how to use Get-History and Invoke-History<\/a> to retrieve and to run Windows PowerShell commands. <\/p>\n<p>That would be the next step here if I were finished. However, I want to have a clean command history file and not one with extraneous commands in it. To accomplish that task, I have to use a selective <b>Get-History<\/b> command. First, I check to see what is in my command history by using the alias <i>h<\/i> (instead of typing the full command name <b>Get-History<\/b>), and then I select the specific tasks (ID&rsquo;s 3 through 5) using the technique I discussed yesterday. The commands and their associated output appear her.<span>&nbsp; <\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; h<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>Id CommandLine<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>&#8212; &#8212;&#8212;&#8212;&#8211;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>1 Get-History<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>2 Add-History -InputObject (Import-Clixml -Path C:\\fso\\mycommands.xml)<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>3 Get-Service<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>4 Get-Process<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>5 Get-EventLog -LogName application -Newest 3<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>6 Get-History<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>7 Get-History<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>8 $xml = Import-Clixml C:\\fso\\mycommands.xml<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>9 $xml<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>10 cls<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; Get-History (3..5) | Export-Clixml -Path C:\\fso\\mycommands1.xml<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Now I close and reopen the Windows PowerShell console, and import the commands from <b>mycommands1.xml<\/b>. I use the following <b>Add-History<\/b> command.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">Add-History -InputObject (Import-Clixml C:\\fso\\mycommands1.xml)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>When I use <b>Get-History<\/b> to check the contents of my Windows PowerShell history buffer, the results shown in the following figure appear. <\/p>\n<p class=\"Num-Caption\"><span style=\"font-family:Symbol\"><span><img decoding=\"async\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/76\/18\/7450.HSG-1-19-11-4.JPG\" border=\"0\" \/><\/span><\/span>&nbsp;<\/p>\n<p>If the presence of the <b>Add-History<\/b> command in the command history queue is bothersome, you can clear the history by using the <b>Clear-History<\/b> cmdlet. The sequence to do this appears here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; Add-History -InputObject (Import-Clixml C:\\fso\\mycommands1.xml)<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; Clear-History 1<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; h<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>Id CommandLine<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp; <\/span>&#8212; &#8212;&#8212;&#8212;&#8211;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>2 Get-Service<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>3 Get-Process<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>4 Get-EventLog -LogName application -Newest 3<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\"><span>&nbsp;&nbsp; <\/span>5 Clear-History 1<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">&nbsp;<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Of course, then you have a <b>Clear-History<\/b> command in your buffer. After you have imported your command, you run them by piping the results of the <b>Get-History<\/b> cmdlet to the <b>Invoke-History<\/b> cmdlet using the technique I discussed yesterday. <\/p>\n<p>If the commands are something that you always want to have available, add the Add-History command to your <a href=\"http:\/\/blogs.technet.com\/search\/SearchResults.aspx?q=profile&amp;sections=7618\">Windows PowerShell profile<\/a>. PD, there is one last thing I have to tell you. The maximum number of history commands is stored as a preference variable that is set to 64 as seen here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; $MaximumHistoryCount<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">64<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>To change this number (either by increasing or decreasing the number) perform a direct value assignment as shown here.<\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; $MaximumHistoryCount = 128<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt; $MaximumHistoryCount<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">128<\/span><\/p>\n<p style=\"margin-left: 0.5in\"><span style=\"font-family: courier new,courier\">PS C:\\&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>This will last until you restart Windows PowerShell. To make the change permanent, add it to your Windows PowerShell profile. <\/p>\n<p>PD, that is all there is to using the <b>Add-History<\/b> cmdlet. Neglected cmdlet week will continue tomorrow. <\/p>\n<p>I invite you to follow me 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 email to me at <a target=\"_blank\" href=\"mailto:scripter@microsoft.com\">scripter@microsoft.com<\/a> or post them on the <a target=\"_blank\" href=\"http:\/\/bit.ly\/scriptingforum\">Official Scripting Guys Forum<\/a>. See you tomorrow. Until then, peace.<\/p>\n<p>&nbsp;<\/p>\n<p><b>Ed Wilson, Microsoft Scripting Guy<\/b>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Summary: Learn how to use the Windows PowerShell Add-History cmdlet to customize the console for more efficient automation. &nbsp; Hey, Scripting Guy! I love using the Windows PowerShell history cmdlets to simplify my server and workstation automation needs. It is much easier to Invoke-History than it is to write a script, even a simple [&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":[51,3,4,45],"class_list":["post-15861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-getting-started","tag-scripting-guy","tag-scripting-techniques","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>&nbsp;&nbsp; Summary: Learn how to use the Windows PowerShell Add-History cmdlet to customize the console for more efficient automation. &nbsp; Hey, Scripting Guy! I love using the Windows PowerShell history cmdlets to simplify my server and workstation automation needs. It is much easier to Invoke-History than it is to write a script, even a simple [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/15861","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=15861"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/15861\/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=15861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=15861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=15861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}