{"id":4752,"date":"2016-01-04T10:14:04","date_gmt":"2016-01-04T15:14:04","guid":{"rendered":"http:\/\/jdhitsolutions.com\/blog\/?p=4752"},"modified":"2016-01-04T10:14:04","modified_gmt":"2016-01-04T15:14:04","slug":"updating-open-live-writer-auto-links-with-powershell","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/","title":{"rendered":"Updating Open Live Writer Auto Links with PowerShell"},"content":{"rendered":"<p><a href=\"http:\/\/openlivewriter.org\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"background-image: none; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 5px 0px 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.png\" alt=\"Open LIve Writer\" width=\"244\" height=\"192\" align=\"left\" border=\"0\" \/><\/a>I'm sure it comes as no surprise to you that I do a fair bit of blogging and writing. This means I am always on the look out for tools and tricks to make the process easier. Recently Scott Hanselmen and others <a href=\"http:\/\/www.hanselman.com\/blog\/AnnouncingOpenLiveWriterAnOpenSourceForkOfWindowsLiveWriter.aspx\" target=\"_blank\">announced<\/a> a resurrection of the old Microsoft Live Writer tool into an open source project. You can learn more about Open Live Writer <a href=\"http:\/\/openlivewriter.org\/\" target=\"_blank\">here<\/a>.<\/p>\n<p>I decided to give it a try and while obviously there's a lot of updating to do, one feature I like is the automatic linking.\u00a0 When I type something, like <a title=\"Read online help for this command\" href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkID=113314\" target=\"_blank\">Get-Eventlog<\/a> the program will automatically insert a link. You can manually set these links up in the program. But because I write a lot about PowerShell cmdlets, which have online links, I didn't want to manually have to create hundreds of links.<\/p>\n<p>So with some pointers from other community members I learned that the autolink information is stored as a simple XML file under $env:APPDATA\\OpenLiveWriter\\LinkGlossary\\linkglossary.xml. The file layout is pretty simple.<\/p>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb-1.png\" alt=\"image\" width=\"644\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<p>This means I can use PowerShell to create new entries.<\/p>\n<p>First, I get the existing XML content.<\/p>\n<pre class=\"lang:ps decode:true \">$Path =  \"$env:APPDATA\\OpenLiveWriter\\LinkGlossary\\linkglossary.xml\"\r\n[xml]$xml = Get-Content -Path $Path<\/pre>\n<p>Then I create new Entry element.<\/p>\n<pre class=\"lang:ps decode:true \">$entry = $xml.CreateNode(\"element\",\"entry\",\"\")<\/pre>\n<p>The node has properties for text, url, title, rel and openInNewWindow, all of which are case sensitive which is important to remember when working with XML.\u00a0 I'll need to create an entry for each property.\u00a0 The process is the same for all the items.<\/p>\n<pre class=\"lang:ps decode:true \">$textentry = $xml.CreateElement(\"text\")<\/pre>\n<p>Now I have a new XML object.<\/p>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb-2.png\" alt=\"image\" width=\"372\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>The text that I want to auto link to is going to be PowerShell.org.<\/p>\n<pre class=\"lang:ps decode:true \">$text = \"PowerShell.org\"\r\n$textentry.InnerText = $Text.Trim()<\/pre>\n<p>I like using Trim() on strings, to eliminate any extra spaces. Once this is complete all I need to do is append the text entry to the entry node.<\/p>\n<pre class=\"lang:ps decode:true \">$entry.AppendChild($textentry)<\/pre>\n<p>I repeat the process for the URL<\/p>\n<pre class=\"lang:ps decode:true \">$url = http:\/\/PowerShell.org\r\n$urlentry = $xml.CreateElement(\"url\")\r\n$urlentry.InnerText = $url.trim()\r\n$entry.AppendChild($urlEntry)\r\n\r\n<\/pre>\n<p>The Title:<\/p>\n<pre class=\"lang:ps decode:true \">$title = \"Learn more about PowerShell.org\"\r\n$titleEntry = $xml.CreateElement(\"title\")\r\n$titleEntry.InnerText = $Title\r\n$entry.AppendChild($titleEntry)\r\n\r\n<\/pre>\n<p>The Rel link I'm not using so I'll create an empy setting.<\/p>\n<pre class=\"lang:ps decode:true \">$relEntry = $xml.CreateElement(\"rel\")\r\n$relentry.InnerText = \"\"\r\n$entry.AppendChild($relEntry)\r\n\r\n<\/pre>\n<p>And finally whether the link should open in a new window.<\/p>\n<pre class=\"lang:ps decode:true \">$open = $xml.CreateElement(\"openInNewWindow\")\r\n$open.InnerText = \"True\"\r\n$entry.AppendChild($open)\r\n\r\n<\/pre>\n<p>Note that this needs to be a string and not a PowerShell boolean value. I now have a complete autolink entry.<\/p>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb-3.png\" alt=\"image\" width=\"644\" height=\"226\" border=\"0\" \/><\/a><\/p>\n<p>All I need to do is append it to the XML document and save the file.<\/p>\n<pre class=\"lang:ps decode:true \">$xml.glossary.AppendChild($entry)\r\n$xml.Save($Path)\r\n\r\n<\/pre>\n<p>Naturally I needed a function to do all of this which I have posted as a Gist on GitHub.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jdhitsolutions\/e226a6729c3c735a39cc.js\"><\/script>With this function, I also added code to update an existing entry. But now I can use PowerShell to find all commands that have a help link and add them to the autolink XML file.<\/p>\n<pre class=\"lang:ps decode:true \">get-command -CommandType cmdlet | where HelpURI | select name,HelpURI | Update-OLWLinkGlossary -Title \"Read online help for this command\"\r\n\r\n<\/pre>\n<p>I recommend updating the file when Open Live Writer is not in use. When you update the file, you should see all of your new entries.<\/p>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/attachment\/olw-links\/\" rel=\"attachment wp-att-4755\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-4755\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/olw-links.png\" alt=\"olw-links\" width=\"827\" height=\"799\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/olw-links.png 827w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/olw-links-300x290.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/olw-links-768x742.png 768w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/a><\/p>\n<p>You may not be a blogger or author, but hopefully my script will give you some pointers on working with XML files.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m sure it comes as no surprise to you that I do a fair bit of blogging and writing. This means I am always on the look out for tools and tricks to make the process easier. Recently Scott Hanselmen and others announced a resurrection of the old Microsoft Live Writer tool into an open&#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 from the blog: Updating Open Live Writer Auto Links with #PowerShell and XML","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":[4,8],"tags":[505,534,540,206],"class_list":["post-4752","post","type-post","status-publish","format-standard","hentry","category-powershell","category-scripting","tag-open-live-writer","tag-powershell","tag-scripting","tag-xml"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator<\/title>\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\/4752\/updating-open-live-writer-auto-links-with-powershell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"I&#039;m sure it comes as no surprise to you that I do a fair bit of blogging and writing. This means I am always on the look out for tools and tricks to make the process easier. Recently Scott Hanselmen and others announced a resurrection of the old Microsoft Live Writer tool into an open...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-04T15:14:04+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Updating Open Live Writer Auto Links with PowerShell\",\"datePublished\":\"2016-01-04T15:14:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/\"},\"wordCount\":475,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/image_thumb.png\",\"keywords\":[\"Open Live Writer\",\"PowerShell\",\"Scripting\",\"xml\"],\"articleSection\":[\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/\",\"name\":\"Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/image_thumb.png\",\"datePublished\":\"2016-01-04T15:14:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/image_thumb.png\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/image_thumb.png\",\"width\":244,\"height\":192},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/4752\\\/updating-open-live-writer-auto-links-with-powershell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/powershell\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Updating Open Live Writer Auto Links with PowerShell\"}]},{\"@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":"Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator","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\/4752\/updating-open-live-writer-auto-links-with-powershell\/","og_locale":"en_US","og_type":"article","og_title":"Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator","og_description":"I'm sure it comes as no surprise to you that I do a fair bit of blogging and writing. This means I am always on the look out for tools and tricks to make the process easier. Recently Scott Hanselmen and others announced a resurrection of the old Microsoft Live Writer tool into an open...","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/","og_site_name":"The Lonely Administrator","article_published_time":"2016-01-04T15:14:04+00:00","og_image":[{"url":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Updating Open Live Writer Auto Links with PowerShell","datePublished":"2016-01-04T15:14:04+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/"},"wordCount":475,"commentCount":2,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.png","keywords":["Open Live Writer","PowerShell","Scripting","xml"],"articleSection":["PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/","name":"Updating Open Live Writer Auto Links with PowerShell &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.png","datePublished":"2016-01-04T15:14:04+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.png","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/01\/image_thumb.png","width":244,"height":192},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4752\/updating-open-live-writer-auto-links-with-powershell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"PowerShell","item":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},{"@type":"ListItem","position":2,"name":"Updating Open Live Writer Auto Links with PowerShell"}]},{"@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":9389,"url":"https:\/\/jdhitsolutions.com\/blog\/books\/9389\/powershell-scripting-and-toolmaking\/","url_meta":{"origin":4752,"position":0},"title":"PowerShell Scripting and Toolmaking","author":"Jeffery Hicks","date":"May 24, 2024","format":false,"excerpt":"Several years ago Don Jones and I wrote what we hoped would be the definitive book on PowerShell scripting and toolmaking. The book takes all off our years of experience, not only from writing PowerShell code, to teaching and conference presentations where we hear first hand what people struggle with.\u2026","rel":"","context":"In &quot;Books&quot;","block_context":{"text":"Books","link":"https:\/\/jdhitsolutions.com\/blog\/category\/books\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4533,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4533\/powershell-pivot-tables-revisited\/","url_meta":{"origin":4752,"position":1},"title":"PowerShell Pivot Tables Revisited","author":"Jeffery Hicks","date":"September 26, 2015","format":false,"excerpt":"A few years ago I wrote a PowerShell function to create an Excel-like pivot table in a PowerShell console. The other day I decided to revisit the function. I was surprised that it didn't really need too much updating but I did spend some time updating the documentation and adding\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":8960,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8960\/introducing-psprojectstatus\/","url_meta":{"origin":4752,"position":2},"title":"Introducing PSProjectStatus","author":"Jeffery Hicks","date":"March 16, 2022","format":false,"excerpt":"I write a lot of PowerShell modules. And probably like you, I am working on more than one project at a time. I was finding it difficult to keep track of what I was working on and what I might be neglecting. So I turned to PowerShell and created a\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/03\/new-psprojectstatus.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":3117,"url":"https:\/\/jdhitsolutions.com\/blog\/scripting\/3117\/msdevwny-powershell-advanced-functions\/","url_meta":{"origin":4752,"position":3},"title":"MSDevWNY PowerShell Advanced Functions","author":"Jeffery Hicks","date":"June 20, 2013","format":false,"excerpt":"Last night I presented for the MSDevWNY user group in the Buffalo, NY area. They were an interested and enthusiastic audience and I think we could have spent another few hours talking about PowerShell. My presentation was one I've given before on Advanced PowerShell functions. I promised the group a\u2026","rel":"","context":"In &quot;Best Practices&quot;","block_context":{"text":"Best Practices","link":"https:\/\/jdhitsolutions.com\/blog\/category\/best-practices\/"},"img":{"alt_text":"talkbubble-v3","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2012\/05\/talkbubble-v3-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4529,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4529\/whats-the-weather\/","url_meta":{"origin":4752,"position":4},"title":"What\u2019s the Weather?","author":"Jeffery Hicks","date":"September 23, 2015","format":false,"excerpt":"I have used a PowerShell module I wrote a while ago to retrieve weather information from Yahoo.com. Yahoo offers a set of web APIs which are free to use, that will provide weather information for a given location. The location is determined by a \"Where On Earth ID\", or woeid.\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"clouds","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/09\/092315_1158_WhatstheWea1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":6142,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/6142\/join-me-for-a-2-day-powershell-scripting-workshop\/","url_meta":{"origin":4752,"position":5},"title":"Join Me for a 2 Day PowerShell Scripting Workshop","author":"Jeffery Hicks","date":"November 12, 2018","format":false,"excerpt":"I am very happy to announce a 2 day public PowerShell learning event. In association with the fine people behind the Techmentor conference, I will be presenting a 2 day PowerShell Scripting workshop in Dallas, TX on February 4-5, 2019. There is an option to attend virtually, but you'll really\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"announcer-blue","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2018\/11\/announcer-blue_thumb.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4752","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=4752"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4752\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=4752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=4752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=4752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}