{"id":898,"date":"2010-09-01T11:31:59","date_gmt":"2010-09-01T15:31:59","guid":{"rendered":"http:\/\/jdhitsolutions.com\/blog\/?p=898"},"modified":"2010-09-01T11:31:59","modified_gmt":"2010-09-01T15:31:59","slug":"powershell-the-ultimate-ginsu-knife","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/","title":{"rendered":"PowerShell: The Ultimate Ginsu Knife"},"content":{"rendered":"<p>You don't have to stay up until the wee hours of the morning looking for an amazing tool that slices and dices like the famed <a href=\"http:\/\/en.wikipedia.org\/wiki\/Ginsu\" target=blank>Ginsu Knife<\/a>.  Are you looking for a way to speed up your work? Are you tired of the same old routine? Would you be surprised that your answer is already at your fingertips? Windows PowerShell is the amazing tool that can slice, dice, mince, sort, group and more all of your data. But wait...there's more.<!--more--><\/p>\n<p>I've been working on a question in the PowerShell forum at <a href=\"http:\/\/www.scriptinganswers.com\" Target=\"_blank\">ScriptingAnswers.com<\/a>. The admin wanted to report on all the user accounts that had been assigned the change user password permission. He wanted to see the user account and then what accounts they had permission to modify. His original thought was that he needed to get the permission from every user account and then go through every account again to see if they were in the list. Oh, and we're talking about 5000+ user accounts.<\/p>\n<p>This is a great example I think of the object paradigm shift in PowerShell. If I have an object for a user account that shows the permissions, I can analyze, sort, group, filter and more that data. I only need to make a single query to Active Directory. Note: my examples are meant to illustrate a concept. They are not necessarily production-ready commands.<\/p>\n<p>We suggested he use the Get-QADPermission from the free Quest AD cmdlets. We can use this cmdlet to find a particular permission.<br \/>\n[cc lang=\"Powershell\"]<br \/>\nPS R:\\> Get-QADPermission \"w.flash\" -Allow -ExtendedRight \"User-Change-Password\" -Inherited  |<br \/>\n>> Select Account,Rights,Source<br \/>\n>><br \/>\nPermissions for: jdhlab.local\/Employees\/William Flash<\/p>\n<p>Account                        Rights       Source<br \/>\n-------                        ------       ------<br \/>\nEveryone                ExtendedRight NotInherited<br \/>\nJDHLAB\\Jeff             ExtendedRight NotInherited<br \/>\nJDHLAB\\Exchange Servers ExtendedRight    Inherited<br \/>\n[\/cc]<br \/>\nThat's cool. So I'll get these permissions for all accounts in Employees organizational unit filtering out Everyone and all the Exchange related objects, and save the results to a variable.<br \/>\n[cc lang=\"PowerShell\"]<br \/>\n$all=get-qaduser -size 0 -searchroot \"OU=Employees,DC=jdhlab,DC=local\" |<br \/>\nGet-QADPermission -Allow -ExtendedRight \"User-Change-Password\" -Inherited |<br \/>\nwhere {$_.account -notmatch \"everyone|exchange\"}<br \/>\n[\/cc]<br \/>\nHmmm...how many accounts am I talking about?<br \/>\n[cc lang=\"PowerShell\"]<br \/>\nPS R:\\> $all.count<br \/>\n172<br \/>\n[\/cc]<br \/>\nNow for the slicing and dicing. What accounts are affected? I'll use Select-Object to return unique values for the TargetObject property.<br \/>\n[cc lang=\"PowerShell\"]<br \/>\n#these accounts have additional permissions<br \/>\nPS R:\\> $all | select targetobject -unique<br \/>\n[\/cc]<br \/>\nWhen I have data like this, I also like to group information.<br \/>\n[cc lang=\"Powershell\"]<br \/>\n#group permissions by target object<br \/>\nPS R:\\> $grouping=$all | Group-Object -Property TargetObject<br \/>\n[\/cc]<br \/>\nWith this, I can find out how many people have the permission for a given count. Remember, Group-Object creates a new type of object.<br \/>\n[cc lang=\"Powershell\"]<br \/>\nPS R:\\> $grouping | sort count| select Name,Count | format-table -autosize<\/p>\n<p>Name                 Count<br \/>\n----                 -----<br \/>\nJDHLAB\\W.Flash           1<br \/>\nJDHLAB\\rbiv              2<br \/>\nJDHLAB\\sapple            2<br \/>\nJDHLAB\\jshortz           2<br \/>\nJDHLAB\\M.Decree          3<br \/>\nJDHLAB\\S.Kahele          3<br \/>\nJDHLAB\\G.Twersky         3<br \/>\nJDHLAB\\M.Manger          3<br \/>\n...<br \/>\n[\/cc]<br \/>\nI wonder who these people are?<br \/>\n[cc lang=\"PowerShell\"]<br \/>\nPS R:\\> $grouping | select Name, @{name=\"Accounts\";Expression={$_.group | select AccountName}} <\/p>\n<p>Name               Accounts<br \/>\n----               --------<br \/>\nJDHLAB\\jshortz     {@{AccountName=JDHLAB\\Jeff}, @{AccountName=JDHLAB\\W.Flash}}<br \/>\nJDHLAB\\L.Pittenger {@{AccountName=JDHLAB\\Jeff}, @{AccountName=JDHLAB\\HelpDesk}, @{AccountName=JDHLAB\\jshortz}}<br \/>\nJDHLAB\\L.Ngov      {@{AccountName=JDHLAB\\Jeff}, @{AccountName=JDHLAB\\HelpDesk}, @{AccountName=JDHLAB\\jshortz}}<br \/>\n...<br \/>\n[\/cc]<br \/>\nI'm sure there are better ways to display this information, but I hope you get the point. There's so much you can do with this information. Ultimately, I think this is the expression the original poster was looking for to create the management report.<br \/>\n[cc lang=\"PowerShell\"]<br \/>\nPS C:\\> $all | sort Accountname | Format-table -groupby  AccountName -Property TargetObject,RightsDisplay -HideTableHeaders<br \/>\n   AccountName: JDHLAB\\HelpDesk<\/p>\n<p>JDHLAB\\B.Relihan                                               Change Password<br \/>\nJDHLAB\\J.Pingrey                                               Change Password<br \/>\nJDHLAB\\W.Fredricksen                                           Change Password<br \/>\nJDHLAB\\I.Alberda                                               Change Password<br \/>\nJDHLAB\\E.Cresto                                                Change Password<br \/>\n...<br \/>\n   AccountName: JDHLAB\\Jeff<\/p>\n<p>JDHLAB\\C.Medin                                                 Change Password<br \/>\nJDHLAB\\J.Norlander                                             Change Password<br \/>\nJDHLAB\\I.Alberda                                               Change Password<br \/>\n...<br \/>\n[\/cc]<br \/>\nThe longest part of this entire process was querying Active Directory, but I only had to do it once.<\/p>\n<p>The biggest challenge many admins still face is thinking \"object-ively\" but once grasped look at how much you can accomplish. Plus free shipping and handling to boot!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You don&#8217;t have to stay up until the wee hours of the morning looking for an amazing tool that slices and dices like the famed Ginsu Knife. Are you looking for a way to speed up your work? Are you tired of the same old routine? Would you be surprised that your answer is already&#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":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,4,17,8],"tags":[534,148,540],"class_list":["post-898","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-powershell","category-quest-software","category-scripting","tag-powershell","tag-quest","tag-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PowerShell: The Ultimate Ginsu Knife &#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\/898\/powershell-the-ultimate-ginsu-knife\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PowerShell: The Ultimate Ginsu Knife &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"You don&#039;t have to stay up until the wee hours of the morning looking for an amazing tool that slices and dices like the famed Ginsu Knife. Are you looking for a way to speed up your work? Are you tired of the same old routine? Would you be surprised that your answer is already...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-01T15:31:59+00:00\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"PowerShell: The Ultimate Ginsu Knife\",\"datePublished\":\"2010-09-01T15:31:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/\"},\"wordCount\":714,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"keywords\":[\"PowerShell\",\"Quest\",\"Scripting\"],\"articleSection\":[\"Active Directory\",\"PowerShell\",\"Quest Software\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/\",\"name\":\"PowerShell: The Ultimate Ginsu Knife &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"datePublished\":\"2010-09-01T15:31:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/898\\\/powershell-the-ultimate-ginsu-knife\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Active Directory\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/active-directory\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PowerShell: The Ultimate Ginsu Knife\"}]},{\"@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":"PowerShell: The Ultimate Ginsu Knife &#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\/898\/powershell-the-ultimate-ginsu-knife\/","og_locale":"en_US","og_type":"article","og_title":"PowerShell: The Ultimate Ginsu Knife &#8226; The Lonely Administrator","og_description":"You don't have to stay up until the wee hours of the morning looking for an amazing tool that slices and dices like the famed Ginsu Knife. Are you looking for a way to speed up your work? Are you tired of the same old routine? Would you be surprised that your answer is already...","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/","og_site_name":"The Lonely Administrator","article_published_time":"2010-09-01T15:31:59+00:00","author":"Jeffery Hicks","twitter_card":"summary_large_image","twitter_creator":"@JeffHicks","twitter_site":"@JeffHicks","twitter_misc":{"Written by":"Jeffery Hicks","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"PowerShell: The Ultimate Ginsu Knife","datePublished":"2010-09-01T15:31:59+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/"},"wordCount":714,"commentCount":1,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"keywords":["PowerShell","Quest","Scripting"],"articleSection":["Active Directory","PowerShell","Quest Software","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/","name":"PowerShell: The Ultimate Ginsu Knife &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"datePublished":"2010-09-01T15:31:59+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/898\/powershell-the-ultimate-ginsu-knife\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Active Directory","item":"https:\/\/jdhitsolutions.com\/blog\/category\/active-directory\/"},{"@type":"ListItem","position":2,"name":"PowerShell: The Ultimate Ginsu Knife"}]},{"@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":130,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/130\/techmentor-san-francisco-2008\/","url_meta":{"origin":898,"position":0},"title":"Techmentor San Francisco 2008","author":"Jeffery Hicks","date":"February 22, 2008","format":false,"excerpt":"I finished up my slide decks last week for the first Techmentor conference of the year in San Francisco (March 30 -April 3). If you've never been to a Techmentor conference you're missing a great opportunity to hear and see your favorite IT speakers. Plus it's a lot of fun\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":474,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/474\/powerpack-challenge-2009-judge\/","url_meta":{"origin":898,"position":1},"title":"PowerPack Challenge 2009 Judge","author":"Jeffery Hicks","date":"October 28, 2009","format":false,"excerpt":"If you are an active member of the PowerShell community you may have already seen this announcement, but just in case you haven\u2019t, Quest Software and the guys behind PowerGUI are running their annual PowerPack challenge. You could win a $1000 Amazon gift card. The contest ;runs from October 19,\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"powergui-train-web","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2009\/10\/powerguitrainweb.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":541,"url":"https:\/\/jdhitsolutions.com\/blog\/training\/541\/promoting-powershell\/","url_meta":{"origin":898,"position":2},"title":"Promoting PowerShell","author":"Jeffery Hicks","date":"January 6, 2010","format":false,"excerpt":"This question comes up quite often: \"How can I encourage adoption of Windows PowerShell in my organization?\" I periodically poll people about their adoption plans and what sort of things are standing in the way. Most of the obstacles in my opinion can be cleared with experience, exposure and education.\u2026","rel":"","context":"In &quot;CommandLine&quot;","block_context":{"text":"CommandLine","link":"https:\/\/jdhitsolutions.com\/blog\/category\/commandline\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7468,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/7468\/powershell-7-scripting-with-the-powershell-ise\/","url_meta":{"origin":898,"position":3},"title":"PowerShell 7 Scripting with the PowerShell ISE","author":"Jeffery Hicks","date":"May 11, 2020","format":false,"excerpt":"By now, everyone should have gotten the memo that with the move to PowerShell 7, the PowerShell ISE should be considered deprecated. When it comes to PowerShell script and module development for PowerShell 7, the recommended tool is Visual Studio Code. It is free and offers so much more than\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\/2020\/05\/ise-ps7.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/05\/ise-ps7.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/05\/ise-ps7.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2020\/05\/ise-ps7.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":9225,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9225\/automation-decisions\/","url_meta":{"origin":898,"position":4},"title":"Automation Decisions","author":"Jeffery Hicks","date":"February 28, 2023","format":false,"excerpt":"This post is an updated reprint from an article published to my premium PowerShell newsletter Behind the PowerShell Pipeline available on Substack. Subscribers receive 6-8 articles like this a month delivered to their inbox or available on the Substack app. I hope you\u2019ll consider subscribing. Trial subscriptions are available. I\u2019ve\u2026","rel":"","context":"In &quot;Best Practices&quot;","block_context":{"text":"Best Practices","link":"https:\/\/jdhitsolutions.com\/blog\/category\/best-practices\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1171,"url":"https:\/\/jdhitsolutions.com\/blog\/scripting\/1171\/powershell-deep-dive-formatting-and-extensions\/","url_meta":{"origin":898,"position":5},"title":"PowerShell Deep Dive Formatting and Extensions","author":"Jeffery Hicks","date":"February 25, 2011","format":false,"excerpt":"I just found out I will be presenting at the PowerShell Deep Dive April 18-19 that is part of TEC 2011. This promises to be THE PowerShell event everyone has been waiting for. I'll be presenting on format and type extensions. Mastering Format and Type Extensions Windows PowerShell is designed\u2026","rel":"","context":"In &quot;Conferences&quot;","block_context":{"text":"Conferences","link":"https:\/\/jdhitsolutions.com\/blog\/category\/conferences\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/898","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=898"}],"version-history":[{"count":0,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/898\/revisions"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}