{"id":3744,"date":"2014-03-14T12:04:11","date_gmt":"2014-03-14T16:04:11","guid":{"rendered":"http:\/\/jdhitsolutions.com\/blog\/?p=3744"},"modified":"2014-03-14T12:04:11","modified_gmt":"2014-03-14T16:04:11","slug":"friday-fun-find-file-locking-process-with-powershell","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/","title":{"rendered":"Friday Fun: Find File Locking Process with PowerShell"},"content":{"rendered":"<p>I was asked on Twitter this morning about a way to find out what process has a lock on a given file. I'm not aware of any PowerShell cmdlet that can do that but I figured there had to be a .NET way and if I could find a code sample I could put something together in PowerShell. After some research I came to the conclusion that programmatic approaches were way above my pay grade but there is still an option I came up with.<\/p>\n<p>I'm a big believer in the right tool for the job and just because you can do something in PowerShell, doesn't mean you should. The best tool for this job is Handle.exe from the Sysinternals suite which you can download for free. You can specify part of a file name and it will show you the process that has a handle to that file.<\/p>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3745\" alt=\"handle\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.png\" width=\"300\" height=\"90\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle.png 837w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>But why not have your cake and eat it too? I can take this output and turn it into a PowerShell object. I posted a function recently to <a title=\"Convert Text to Object with PowerShell and Regular Expressions\" href=\"http:\/\/jdhitsolutions.com\/blog\/2014\/02\/convert-text-to-object-with-powershell-and-regular-expressions\/\" target=\"_blank\">convert command line output to objects<\/a> using regular expressions and named captures. All I need is a regular expression pattern.<\/p>\n<pre class=\"lang:msbatch decode:true\">PS Scripts:\\&gt;[regex]$matchPattern = \"(?&lt;Name&gt;\\w+\\.\\w+)\\s+pid:\\s+(?&lt;PID&gt;\\b(\\d+)\\b)\\s+type:\\s+(?&lt;Type&gt;\\w+)\\s+\\w+:\\s+(?&lt;Path&gt;.*)\"\r\nPS Scripts:\\&gt; g:\\sysinternals\\handle parent.lock | select -skip 5 | convertfrom-text $matchpattern<\/pre>\n<p><a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/converthandle.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3746\" alt=\"converthandle\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/converthandle-300x100.png\" width=\"300\" height=\"100\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/converthandle-300x100.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/converthandle.png 837w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Or you can create something specific to this task.<\/p>\n<pre class=\"lang:ps decode:true\">Function Get-LockingProcess {\r\n\r\n[cmdletbinding()]\r\nParam(\r\n [Parameter(Position=0,Mandatory=$True,\r\n HelpMessage=\"What is the path or filename? You can enter a partial name without wildcards\")]\r\n [Alias(\"name\")]\r\n [ValidateNotNullorEmpty()]\r\n [string]$Path\r\n)\r\n\r\n#define the path to Handle.exe\r\n$Handle = \"G:\\Sysinternals\\handle.exe\"\r\n\r\n[regex]$matchPattern = \"(?&lt;Name&gt;\\w+\\.\\w+)\\s+pid:\\s+(?&lt;PID&gt;\\b(\\d+)\\b)\\s+type:\\s+(?&lt;Type&gt;\\w+)\\s+\\w+:\\s+(?&lt;Path&gt;.*)\"\r\n\r\n$data = &amp;$handle $path \r\n$MyMatches = $matchPattern.Matches( $data )\r\n\r\nif ($MyMatches.value) {\r\n      $MyMatches | foreach {\r\n     [pscustomobject]@{ \r\n      FullName = $_.groups[\"Name\"].value\r\n      Name = $_.groups[\"Name\"].value.split(\".\")[0]\r\n      ID = $_.groups[\"PID\"].value\r\n      Type = $_.groups[\"Type\"].value\r\n      Path = $_.groups[\"Path\"].value\r\n     } #hashtable\r\n    } #foreach\r\n  } #if data\r\nelse {\r\n    Write-Warning \"No matching handles found\"\r\n  }\r\n} #end function<\/pre>\n<p>This requires Handle.exe. I've hardcoded the path which you need to adjust or make sure the utility is in your PATH. But now look what I can do!<br \/>\n<a href=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/getlockingprocess.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/getlockingprocess-300x170.png\" alt=\"getlockingprocess\" width=\"300\" height=\"170\" class=\"aligncenter size-medium wp-image-3748\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/getlockingprocess-300x170.png 300w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/getlockingprocess.png 837w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>I know some people get hung up on external dependencies but if it gets the job done I don't see the issue. Especially when the solution is free to begin with! <\/p>\n<p>Enjoy your weekend.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was asked on Twitter this morning about a way to find out what process has a lock on a given file. I&#8217;m not aware of any PowerShell cmdlet that can do that but I figured there had to be a .NET way and if I could find a code sample I could put something&#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 Friday Fun: Find File Locking Process with #PowerShell http:\/\/wp.me\/p1nF6U-Yo","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":[534,250,540,47],"class_list":["post-3744","post","type-post","status-publish","format-standard","hentry","category-powershell","category-scripting","tag-powershell","tag-regular-expressions","tag-scripting","tag-sysinternals"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Friday Fun: Find File Locking Process 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\/3744\/friday-fun-find-file-locking-process-with-powershell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Friday Fun: Find File Locking Process with PowerShell &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"I was asked on Twitter this morning about a way to find out what process has a lock on a given file. I&#039;m not aware of any PowerShell cmdlet that can do that but I figured there had to be a .NET way and if I could find a code sample I could put something...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-14T16:04:11+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Friday Fun: Find File Locking Process with PowerShell\",\"datePublished\":\"2014-03-14T16:04:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/\"},\"wordCount\":283,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/03\\\/handle-300x90.png\",\"keywords\":[\"PowerShell\",\"Regular Expressions\",\"Scripting\",\"Sysinternals\"],\"articleSection\":[\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/\",\"name\":\"Friday Fun: Find File Locking Process with PowerShell &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/03\\\/handle-300x90.png\",\"datePublished\":\"2014-03-14T16:04:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/03\\\/handle.png\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/03\\\/handle.png\",\"width\":837,\"height\":253},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/3744\\\/friday-fun-find-file-locking-process-with-powershell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/powershell\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Friday Fun: Find File Locking Process 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":"Friday Fun: Find File Locking Process 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\/3744\/friday-fun-find-file-locking-process-with-powershell\/","og_locale":"en_US","og_type":"article","og_title":"Friday Fun: Find File Locking Process with PowerShell &#8226; The Lonely Administrator","og_description":"I was asked on Twitter this morning about a way to find out what process has a lock on a given file. I'm not aware of any PowerShell cmdlet that can do that but I figured there had to be a .NET way and if I could find a code sample I could put something...","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/","og_site_name":"The Lonely Administrator","article_published_time":"2014-03-14T16:04:11+00:00","og_image":[{"url":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Friday Fun: Find File Locking Process with PowerShell","datePublished":"2014-03-14T16:04:11+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/"},"wordCount":283,"commentCount":4,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.png","keywords":["PowerShell","Regular Expressions","Scripting","Sysinternals"],"articleSection":["PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/","name":"Friday Fun: Find File Locking Process with PowerShell &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#primaryimage"},"thumbnailUrl":"http:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle-300x90.png","datePublished":"2014-03-14T16:04:11+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle.png","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/03\/handle.png","width":837,"height":253},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3744\/friday-fun-find-file-locking-process-with-powershell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"PowerShell","item":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},{"@type":"ListItem","position":2,"name":"Friday Fun: Find File Locking Process 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":4895,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4895\/friday-fun-a-sysinternals-powershell-workflow\/","url_meta":{"origin":3744,"position":0},"title":"Friday Fun: A SysInternals PowerShell Workflow","author":"Jeffery Hicks","date":"February 12, 2016","format":false,"excerpt":"Over the years I've come up with a number of PowerShell tools to download the SysInternals tools to my desktop. And yes, I know that with PowerShell 5 and PowerShellGet I could download and install a SysInternals package. But that assumes the package is current.\u00a0 But that's not really the\u2026","rel":"","context":"In &quot;Friday Fun&quot;","block_context":{"text":"Friday Fun","link":"https:\/\/jdhitsolutions.com\/blog\/category\/friday-fun\/"},"img":{"alt_text":"image","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-5.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-5.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-5.png?resize=525%2C300 1.5x"},"classes":[]},{"id":3881,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3881\/scraping-sysinternals\/","url_meta":{"origin":3744,"position":1},"title":"Scraping Sysinternals","author":"Jeffery Hicks","date":"June 16, 2014","format":false,"excerpt":"Recently I was conversing with someone about my PowerShell code that downloads tools from the live Sysinternals site. If you search the Internet, you'll find plenty of ways to achieve the same goal. But we were running into a problem where PowerShell was failing to get information from the site.\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"download-thumb","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2014\/06\/download-thumb.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":9130,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9130\/configure-sysinternals-eula-acceptance\/","url_meta":{"origin":3744,"position":2},"title":"Configure SysInternals EULA Acceptance","author":"Jeffery Hicks","date":"August 24, 2022","format":false,"excerpt":"I just saw a very, very handy thing on Twitter where you can set a registry key that will automatically accept all EULA prompts for the SysInternals tools. I know there is a command-line switch I can use, but I never remember to use it. Setting the registry key appears\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":3543,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/3543\/more-powershell-trace-window-fun\/","url_meta":{"origin":3744,"position":3},"title":"More PowerShell Trace Window Fun","author":"Jeffery Hicks","date":"November 6, 2013","format":false,"excerpt":"On my last Friday Fun, I posted an article about using Internet Explorer as a trace window. The idea was to put debug or trace messages in a separate application. I received a comment on the post that suggested I could do a similar thing using the Debug View utility\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"dbgview-trace","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2013\/11\/dbgview-trace-300x290.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3522,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell-3-0\/3522\/download-sysinternals-with-powershell\/","url_meta":{"origin":3744,"position":4},"title":"Download SysInternals with PowerShell","author":"Jeffery Hicks","date":"October 29, 2013","format":false,"excerpt":"Like many IT Pros, I'm a big fan of the utilities that make up the Sysinternals suite. A number of years ago, Microsoft created a \"live\" web directory (http:\\\\live.sysinternals.com\\tools) that allowed you direct access to each utility. While this is very handy, personally I prefer to keep a local version.\u2026","rel":"","context":"In &quot;Powershell 3.0&quot;","block_context":{"text":"Powershell 3.0","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell-3-0\/"},"img":{"alt_text":"sysinternals","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2013\/10\/sysinternals-150x150.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3510,"url":"https:\/\/jdhitsolutions.com\/blog\/scripting\/3510\/out-with-the-windows-old\/","url_meta":{"origin":3744,"position":5},"title":"Out with the Windows.old","author":"Jeffery Hicks","date":"October 23, 2013","format":false,"excerpt":"Over the last few days I've started the process of upgrading my test virtual machines to Windows Server 2012 R2, or in the case of my mini Hyper-V server, to the final bits of Windows Hyper-V Server 2012 R2. In many cases I had been running the preview bits. I\u2026","rel":"","context":"In &quot;CommandLine&quot;","block_context":{"text":"CommandLine","link":"https:\/\/jdhitsolutions.com\/blog\/category\/commandline\/"},"img":{"alt_text":"over-the-hill","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2013\/10\/over-the-hill.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/3744","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=3744"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/3744\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=3744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=3744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=3744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}