<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>PowerShell Articles on Dave&#39;s Technical Journal</title>
        <link>https://thedavecarroll.com/powershell/</link>
        <description>Recent content in PowerShell Articles on Dave&#39;s Technical Journal</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <copyright>Dave Carroll</copyright>
        <lastBuildDate>Tue, 11 Mar 2025 00:00:00 +0000</lastBuildDate>
        <atom:link href="https://thedavecarroll.com/powershell/index.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>Mentorship - T-SQL Tuesday</title>
            <link>https://thedavecarroll.com/powershell/mentorship-tsqltuesday/</link>
            <pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/mentorship-tsqltuesday/</guid>
            <description><img src="https://thedavecarroll.com/images/tsqltuesday/tsql2sday-150x150.png" alt="Featured image of post Mentorship - T-SQL Tuesday" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Hello reader, it’s been quite some time since I’ve written an article.
In fact, it’s been almost 2 years.
I’ve definitely had some things to say, but I have lacked the motivation.
Obviously that has changed &lt;em&gt;(at least for the time being)&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;sql-saturday-atlanta&#34;&gt;SQL Saturday Atlanta&lt;/h2&gt;
&lt;p&gt;This past weekend, I attended my first SQL Saturday event in Atlanta and I had a blast.
I spoke on Writing Cross-Platform PowerShell, and I met many wonderful people in the data community.
Though I&amp;rsquo;m a self-declared SQL-adjacent, they were very welcoming.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Soft Skills - Part 3 - Motivation and Inspiration</title>
            <link>https://thedavecarroll.com/powershell/soft-skills-part-3/</link>
            <pubDate>Mon, 10 Apr 2023 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/soft-skills-part-3/</guid>
            <description><img src="https://thedavecarroll.com/images/soft-skills/psconfbookv2.png" alt="Featured image of post Soft Skills - Part 3 - Motivation and Inspiration" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This article is the last in a series of three which is a republishing of my chapter on soft skills from the &lt;a href=&#34;https://leanpub.com/psconfbook2&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PowerShell Conference Book Volume 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t read the article on &lt;a href=&#34;https://thedavecarroll.com/powershell/soft-skills-part-1/&#34;&gt;communication&lt;/a&gt;
or article on &lt;a href=&#34;https://thedavecarroll.com/powershell/soft-skills-part-2/&#34;&gt;collaboration&lt;/a&gt;,
that&amp;rsquo;s okay, as each article has it&amp;rsquo;s own topics.
I would suggest to read them though, as it will help round out your general knowledge of soft skills.&lt;/p&gt;
&lt;h2 id=&#34;motivation-and-inspiration&#34;&gt;Motivation and Inspiration&lt;/h2&gt;
&lt;h3 id=&#34;how-to-motivate-others&#34;&gt;How to Motivate Others&lt;/h3&gt;
&lt;p&gt;Effective leaders know how to motivate.
As a leader, you must challenge your team to grow and support them along the way.
Empower them to do their job and protect their time so they can do it.
Maximize strengths within the team and minimize weaknesses.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Soft Skills - Part 2 - Collaboration</title>
            <link>https://thedavecarroll.com/powershell/soft-skills-part-2/</link>
            <pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/soft-skills-part-2/</guid>
            <description><img src="https://thedavecarroll.com/images/soft-skills/psconfbookv2.png" alt="Featured image of post Soft Skills - Part 2 - Collaboration" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This article is the second in a series of three which is a republishing of my chapter on soft skills from the &lt;a href=&#34;https://leanpub.com/psconfbook2&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PowerShell Conference Book Volume 2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t read the &lt;a href=&#34;https://thedavecarroll.com/powershell/soft-skills-part-1/&#34;&gt;first article on communication&lt;/a&gt;,
that&amp;rsquo;s okay, as each article has it&amp;rsquo;s own topics.
I would suggest to read it though, as it will help round out your general knowledge of soft skills.&lt;/p&gt;
&lt;h2 id=&#34;collaboration&#34;&gt;Collaboration&lt;/h2&gt;
&lt;p&gt;Collaboration isn&amp;rsquo;t easy.&lt;/p&gt;
&lt;p&gt;Personalities often collide, fueling negative emotions which break down the connections that allow for collaboration.
This happens because everyone is a unique individual, a human being capable of myriad emotions (some simultaneously).&lt;/p&gt;</description>
        </item>
        <item>
            <title>Soft Skills - Part 1 - Communication</title>
            <link>https://thedavecarroll.com/powershell/soft-skills-part-1/</link>
            <pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/soft-skills-part-1/</guid>
            <description><img src="https://thedavecarroll.com/images/soft-skills/psconfbookv2.png" alt="Featured image of post Soft Skills - Part 1 - Communication" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A few years ago, maybe the first part of 2019, I was asked to contribute a chapter for the PowerShell Conference Book Volume 2.
So much has happened since then and I don&amp;rsquo;t remember who did the asking.
The odds are decent enough though to guess &lt;a href=&#34;https://www.commandline.ninja/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Mike Kanakos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This article is the first in a series of three which will be a republishing of my chapter on soft skills.
I&amp;rsquo;ve only gently edited a few items from the original material.&lt;/p&gt;</description>
        </item>
        <item>
            <title>PowerShell Summit 2023</title>
            <link>https://thedavecarroll.com/powershell/powershell-summit-2023/</link>
            <pubDate>Wed, 22 Mar 2023 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/powershell-summit-2023/</guid>
            <description>&lt;h2 id=&#34;im-ready-for-powershell-summit-2023&#34;&gt;I&amp;rsquo;m ready for PowerShell Summit 2023&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been part of the PowerShell community for a few years now and I&amp;rsquo;ve attended some amazing sessions with user groups.
I&amp;rsquo;ve also presented a few times, once for a PowerShell Saturday and a couple other times remotely.
For Summit &amp;lsquo;21, I had a presentation via video on demand and a lightning demo.&lt;/p&gt;
&lt;p&gt;Over the last few years, I&amp;rsquo;ve been ask how many times have I attended PowerShell Summit.
Fully gripped with a backlog of FOMO, I&amp;rsquo;d give a sigh and say, &amp;ldquo;I&amp;rsquo;ve never been in person.&amp;rdquo;&lt;/p&gt;</description>
        </item>
        <item>
            <title>Where are the PowerShell People on Mastodon?</title>
            <link>https://thedavecarroll.com/powershell/powershell-people-on-mastodon/</link>
            <pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/powershell-people-on-mastodon/</guid>
            <description>&lt;h2 id=&#34;mastodon&#34;&gt;Mastodon&lt;/h2&gt;
&lt;p&gt;In light of recent events with Twitter, you may have heard about a different micro-blogging site called &lt;a href=&#34;https://joinmastodon.org/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Mastodon&lt;/a&gt;.
It has been around for a few years, 2016 to be exact, so it&amp;rsquo;s definitely not &lt;em&gt;new&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;And it&amp;rsquo;s technically not &lt;em&gt;a&lt;/em&gt; site, as the heart and possibly the main draw of Mastodon is that it has multiple instances
all run by individuals, typically not large corporations.
Each instance can establish its own Code of Conduct and Terms of Services.
Some instances require an invite, others do not.
They are connected through federation to what&amp;rsquo;s know as the &lt;a href=&#34;https://en.wikipedia.org/wiki/Fediverse&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Fediverse&lt;/a&gt;.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Questions from a PowerShell.org Forums User</title>
            <link>https://thedavecarroll.com/powershell/questions-from-powershell-forums-user/</link>
            <pubDate>Tue, 30 Aug 2022 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/questions-from-powershell-forums-user/</guid>
            <description><img src="https://thedavecarroll.com/images/powershellforums.png" alt="Featured image of post Questions from a PowerShell.org Forums User" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;About a week ago, I commented on a PowerShell forum post and the poster struck up a conversation in my DMs.&lt;/p&gt;
&lt;p&gt;He is starting his own PowerShell blog and wanted to ask me a few questions.
&lt;em&gt;(Insert self-deprecating comment here.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I thought that the questions and my responses may help provide some insight for others.&lt;/p&gt;
&lt;h2 id=&#34;1-what-is-your-writing-process-do-you-write-on-subjects-you-are-currently-learning-about-or-want-to-research-more&#34;&gt;1. What is your writing process? Do you write on subjects you are currently learning about or want to research more?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Sometimes the writing is the easy part.&lt;br&gt;
Sometimes, like when I started writing these answers, it&amp;rsquo;s a struggle.&lt;/p&gt;</description>
        </item>
        <item>
            <title>#PSFollowFriday Tweet with BluebirdPS</title>
            <link>https://thedavecarroll.com/powershell/psfollowfriday-tweet-with-bluebirdps/</link>
            <pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/psfollowfriday-tweet-with-bluebirdps/</guid>
            <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Last year, I began exploring the &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;Twitter API&lt;/a&gt; and wrote a module that adhered to
PowerShell and general development best practices, one that seeks community input and involvement.&lt;/p&gt;
&lt;p&gt;Since then I&amp;rsquo;ve released a few versions of the &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;BluebirdPS&lt;/a&gt; module and
I am using it to generate my &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;#PSFollowFriday&lt;/a&gt; Tweets.&lt;/p&gt;
&lt;p&gt;In the article that follows, I will take you through the BluebirdPS commands that I use to create these Tweets.&lt;/p&gt;
&lt;h3 id=&#34;psfollowfriday&#34;&gt;#PSFollowFriday&lt;/h3&gt;
&lt;p&gt;





  

  

  

  
    
  

  

  

  

  

  

  









    
    



    
    



    
        
            
                
                
                
                
                
                    
                    
                
                
                
                    
                    
                
            
        
    









  &lt;span class=&#34;influencer-link&#34;&gt;
  
    
    
      
    
    
    
      
    
    
    
    
      
    
      
        &lt;a href=&#34;https://jdhitsolutions.com/blog/&#34; target=&#34;_blank&#34; title=&#34;Blog&#34;&gt;
          &lt;svg class=&#34;social-icon&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;path d=&#34;M3 4m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z&#34;/&gt;&lt;path d=&#34;M7 8h10&#34;/&gt;&lt;path d=&#34;M7 12h10&#34;/&gt;&lt;path d=&#34;M7 16h10&#34;/&gt;&lt;/svg&gt;
          Jeff Hicks
        &lt;/a&gt;
        
      
    
      
    
    
    
    
    
  
  &lt;/span&gt;
 started the #PSFollowFriday hashtag on Twitter during last August&amp;rsquo;s &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;#PSTweetChat&lt;/a&gt;.
Anyone in the PowerShell community is welcome to suggest people or sites that engage with, or contribute in, the PowerShell online community.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Creating a Class Definition from an Existing Object - Part 3</title>
            <link>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-3/</link>
            <pubDate>Tue, 02 Feb 2021 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-3/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/class-definition/Silicone_mold_resin_cast_figure.jpg" alt="Featured image of post Creating a Class Definition from an Existing Object - Part 3" />&lt;h2 id=&#34;a-powershell-conversion-challenge&#34;&gt;A PowerShell Conversion Challenge&lt;/h2&gt;
&lt;p&gt;In this article, the last in a series on my solution to the IronScripter &lt;a href=&#34;https://ironscripter.us/a-powershell-conversion-challenge/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PowerShell Conversion Challenge&lt;/a&gt;,
I will be exploring and solving for the remaining requirements.&lt;/p&gt;
&lt;h2 id=&#34;last-week-on-creating-a-class-definition&#34;&gt;Last Week, On Creating a Class Definition&lt;/h2&gt;
&lt;p&gt;In &lt;a href=&#34;https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-1/&#34;&gt;part 1&lt;/a&gt;, I covered the basics for PowerShell objects and classes,
the &lt;code&gt;Get-Member&lt;/code&gt; command, the &lt;code&gt;Requires&lt;/code&gt; statement, &lt;code&gt;ValueFromPipeline&lt;/code&gt; to accept input from the pipeline, and the &lt;code&gt;StringBuilder&lt;/code&gt; class.
It solved 7 primary requirements and 1 personal requirement.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Creating a Class Definition from an Existing Object - Part 2</title>
            <link>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-2/</link>
            <pubDate>Sat, 30 Jan 2021 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-2/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/class-definition/Silicone_mold_resin_cast_figure.jpg" alt="Featured image of post Creating a Class Definition from an Existing Object - Part 2" />&lt;h2 id=&#34;a-powershell-conversion-challenge&#34;&gt;A PowerShell Conversion Challenge&lt;/h2&gt;
&lt;p&gt;A few days ago I published &lt;a href=&#34;https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-1/&#34;&gt;Part 1&lt;/a&gt; of my solution to the IronScripter &lt;a href=&#34;https://ironscripter.us/a-powershell-conversion-challenge/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PowerShell Conversion Challenge&lt;/a&gt;.
If you haven&amp;rsquo;t already, please check out that article, as we will be picking up where it left off.&lt;/p&gt;
&lt;p&gt;As a quick recap, my solution satisfied 7 out of 10 of the requirements set forth by the IronScripter Chairman,
though it only solved 1 of my 6 additional requirements.&lt;/p&gt;
&lt;p&gt;Here are the remaining challenge requirements:&lt;/p&gt;</description>
        </item>
        <item>
            <title>Creating a Class Definition from an Existing Object - Part 1</title>
            <link>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-1/</link>
            <pubDate>Tue, 26 Jan 2021 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/creating-class-definition-from-object-part-1/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/class-definition/Silicone_mold_resin_cast_figure.jpg" alt="Featured image of post Creating a Class Definition from an Existing Object - Part 1" />&lt;h2 id=&#34;a-powershell-conversion-challenge&#34;&gt;A PowerShell Conversion Challenge&lt;/h2&gt;
&lt;p&gt;The first IronScripter Challenge for this year was released a few weeks ago.
The goal for &lt;a href=&#34;https://ironscripter.us/a-powershell-conversion-challenge/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;A PowerShell Conversion Challenge&lt;/a&gt; is to write a tool that will generate a class definition based on an existing object.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve distilled the requirements into the following list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy selected properties&lt;/li&gt;
&lt;li&gt;Insert placeholder for methods&lt;/li&gt;
&lt;li&gt;Work from pipeline&lt;/li&gt;
&lt;li&gt;Allow user to specify a new class name&lt;/li&gt;
&lt;li&gt;Support Windows PowerShell 5.1 and PowerShell 7.x&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;bonus-requirements&#34;&gt;Bonus Requirements&lt;/h3&gt;
&lt;p&gt;For a greater challenge, we are encouraged to include the following requirements:&lt;/p&gt;</description>
        </item>
        <item>
            <title>A 2020 Year End Review and 2021 Directions</title>
            <link>https://thedavecarroll.com/powershell/year-end-review-next-directions/</link>
            <pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/year-end-review-next-directions/</guid>
            <description><img src="https://thedavecarroll.com/images/hiatus.jpg" alt="Featured image of post A 2020 Year End Review and 2021 Directions" />&lt;h2 id=&#34;a-long-time-ago&#34;&gt;A Long Time Ago&lt;/h2&gt;
&lt;p&gt;It seems an incredibly long time has passed since I wrote an article for my site.
In fact, it&amp;rsquo;s been&amp;hellip;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Start&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;8/17/2020&amp;#39;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-End&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Get-Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ToShortDateString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Select-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ExpandProperty&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Days&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;154
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;It&amp;rsquo;s been 154 days since I&amp;rsquo;ve published the article on &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;responding to a GitHub issue for my PoShDynDnsApi module&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wanted to go over a few of the things that have been taking my time.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please note this article contains more personal experiences than PowerShell.
I need to put these to paper, so to speak.
Feel free to skip any part of this article, or just close the browser tab and binge your next show.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Responding to an Issue Submitted for the PoShDynDnsApi Module</title>
            <link>https://thedavecarroll.com/powershell/responding-to-issue-submitted-for-poshdyndnsapi-module/</link>
            <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/responding-to-issue-submitted-for-poshdyndnsapi-module/</guid>
            <description><img src="https://thedavecarroll.com/images/dyndnsrecord_issue.png" alt="Featured image of post Responding to an Issue Submitted for the PoShDynDnsApi Module" />&lt;h2 id=&#34;the-poshdyndnsapi-module&#34;&gt;The PoShDynDnsApi Module&lt;/h2&gt;
&lt;p&gt;I published the PoShDynDnsApi module to the PowerShell Gallery in January of 2019 though it feels more like 5 years than the actual 18 months or so.&lt;/p&gt;
&lt;p&gt;Since it was published, I&amp;rsquo;ve written two articles about it — one announcing it and another providing a deep dive into the inner workings.
The module has been downloaded from the gallery just over 350 times.
Even with my testing and downloading, there are potentially over 340 people using it.
That&amp;rsquo;s not a lot, but the main point is that it could be helping people manage their domains in &lt;em&gt;(or perhaps migrate from)&lt;/em&gt; the Dyn Managed DNS service.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Building a PowerShell Command Inventory Solution - Part Deux</title>
            <link>https://thedavecarroll.com/powershell/powershell-command-inventory-part-deux/</link>
            <pubDate>Thu, 25 Jun 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/powershell-command-inventory-part-deux/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/command-inventory/measure-pscommand.png" alt="Featured image of post Building a PowerShell Command Inventory Solution - Part Deux" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been ten days since I published an article on my initial solution for the IronScripter challenge
&lt;a href=&#34;https://ironscripter.us/building-a-powershell-command-inventory/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Building a PowerShell Command Inventory&lt;/a&gt;.
That solution relied on regular expressions, most commonly called &lt;em&gt;regex&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The article included a primer on regex mechanics and how to use regex in PowerShell.
However, the regex for each code type that I wanted to discover produced some false positives.&lt;/p&gt;
&lt;p&gt;I asked myself, &lt;em&gt;How could I get better, more accurate, code discovery?&lt;/em&gt;&lt;/p&gt;</description>
        </item>
        <item>
            <title>Building a PowerShell Command Inventory Solution</title>
            <link>https://thedavecarroll.com/powershell/bulding-powershell-command-inventory-solution/</link>
            <pubDate>Mon, 15 Jun 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/bulding-powershell-command-inventory-solution/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/command-inventory/code-type-count.png" alt="Featured image of post Building a PowerShell Command Inventory Solution" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The latest IronScripter challenge, &lt;a href=&#34;https://ironscripter.us/building-a-powershell-command-inventory/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Building a PowerShell Command Inventory&lt;/a&gt;,
helps us to understand our library of PowerShell code.&lt;/p&gt;
&lt;p&gt;It is also a good way to introduce regular expressions, most commonly called &lt;em&gt;regex&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;regex-and-powershell&#34;&gt;Regex and PowerShell&lt;/h2&gt;
&lt;p&gt;Before we tackle the challenge, let&amp;rsquo;s briefly discuss regex and how you can use (&lt;em&gt;or probably already have used&lt;/em&gt;) regex in PowerShell.&lt;/p&gt;
&lt;h3 id=&#34;what-is-regex&#34;&gt;What is Regex&lt;/h3&gt;
&lt;p&gt;Regex is a pattern used to match text.
A regex pattern can contain letters, numbers, spaces, other characters, operators, and other constructs.&lt;/p&gt;</description>
        </item>
        <item>
            <title>A PowerShell Counting Challenge Walk-through</title>
            <link>https://thedavecarroll.com/powershell/powershell-counting-challenge/</link>
            <pubDate>Fri, 22 May 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/powershell-counting-challenge/</guid>
            <description><img src="https://thedavecarroll.com/images/ironscripter/counting/three-loops.png" alt="Featured image of post A PowerShell Counting Challenge Walk-through" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The latest IronScripter challenge, &lt;a href=&#34;https://ironscripter.us/a-powershell-counting-challenge/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;A PowerShell Counting Challenge&lt;/a&gt;, had challengers
learning about loops, possibly range and modulus operators, basic parameter validation, and creation of a simple custom object.&lt;/p&gt;
&lt;p&gt;This post should serve as a walk-through, or learning guide if you will, for the Iron Scripter&amp;rsquo;s challenge.&lt;/p&gt;
&lt;h2 id=&#34;beginner&#34;&gt;Beginner&lt;/h2&gt;
&lt;p&gt;For the beginner challenge, the Chairman wanted the challenger to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Get the sum of the even numbers between 1 and 100.
You should be able to do this in at least 3 different ways.
Show all 3 ways.
You don’t need to write any functions or scripts.&lt;/p&gt;</description>
        </item>
        <item>
            <title>PowerShell 7 Experimental Features</title>
            <link>https://thedavecarroll.com/powershell/ps7now-experimental-features/</link>
            <pubDate>Thu, 12 Mar 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/ps7now-experimental-features/</guid>
            <description>&lt;h2 id=&#34;ps7now-powershell-7-is-here&#34;&gt;#PS7Now! PowerShell 7 Is Here&lt;/h2&gt;
&lt;p&gt;This &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;#PSBlogWeek&lt;/a&gt; focuses on the official release of &lt;strong&gt;PowerShell 7&lt;/strong&gt; — the newest,
fastest, and best PowerShell putting the spotlight on PowerShell&amp;rsquo;s Experimental Features.&lt;/p&gt;
&lt;p&gt;Get &lt;a href=&#34;https://leanpub.com/ps7now/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;#PS7Now&lt;/a&gt; to experience them yourself!&lt;/p&gt;
&lt;h2 id=&#34;experimental-features-defined&#34;&gt;Experimental Features Defined&lt;/h2&gt;
&lt;p&gt;After becoming open-source software, the PowerShell community requested a mechanism for users to
try out new features and provide early feedback to feature developers.
This discussion took place in PowerShell &lt;span class=&#34;dead-link&#34; title=&#34;Link no longer available&#34;&gt;RFC0029&lt;/span&gt; which was finalized
and implemented in PowerShell Core 6.1.&lt;/p&gt;</description>
        </item>
        <item>
            <title>PowerShell 7 Changes to JSON Cmdlets</title>
            <link>https://thedavecarroll.com/powershell/ps7now-changes-to-json-cmdlets/</link>
            <pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/ps7now-changes-to-json-cmdlets/</guid>
            <description><img src="https://thedavecarroll.com/images/ps7now/pwsh-7-json-cmdlets.png" alt="Featured image of post PowerShell 7 Changes to JSON Cmdlets" />&lt;h2 id=&#34;ps7now-powershell-7-is-here&#34;&gt;#PS7Now! PowerShell 7 Is Here&lt;/h2&gt;
&lt;p&gt;Part of #PSBlogWeek, this article is one of many from several community members and PowerShell bloggers, like me, that focus on a given topic.&lt;/p&gt;
&lt;p&gt;The topic of this #PSBlogWeek is &lt;strong&gt;PowerShell 7&lt;/strong&gt;.&lt;/p&gt;




    


&lt;div class=&#34;notice note&#34;&gt;
    &lt;div class=&#34;notice-icon&#34;&gt;
        
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;path d=&#34;M2 10c2-3.333 4-5 6-5 3 0 3 5 6 5s3-5 6-5c2 0 4 1.667 6 5&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M2 19c2-3.333 4-5 6-5 3 0 3 5 6 5s3-5 6-5c2 0 4 1.667 6 5&#34;&gt;&lt;/path&gt;&lt;/svg&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;notice-content&#34;&gt;
        &lt;div class=&#34;notice-type&#34;&gt;NOTE&lt;/div&gt;
        &lt;div class=&#34;notice-text&#34;&gt;
            &lt;p&gt;I was incredibly flattered when Jeff asked me to participate in this #PSBlogWeek.
Though I&amp;rsquo;m relatively new to the blogging scene, I&amp;rsquo;ve been using Windows PowerShell well over 10 years.
Most recently and beyond this blog, I&amp;rsquo;ve participated in several &lt;a href=&#34;https://ironscripter.us/category/challenge/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;IronScripter&lt;/a&gt;
challenges, contributed a chapter on soft skills in the &lt;a href=&#34;http://bit.ly/3aYIshr&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PowerShell Conference Book, Volume 2&lt;/a&gt;,
and been part of conversations within the PowerShell community.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Writing Windows Events with Smart EventData</title>
            <link>https://thedavecarroll.com/powershell/windows-event-logs-eventdata/</link>
            <pubDate>Sat, 07 Dec 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/windows-event-logs-eventdata/</guid>
            <description><img src="https://thedavecarroll.com/images/windows-eventlog-eventdata-json.png" alt="Featured image of post Writing Windows Events with Smart EventData" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve spent quite some time researching how to create events using EventData with named Data elements. It&amp;rsquo;s not easy and
is even less easier to write some PowerShell to make it &amp;ldquo;dynamic&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;eventdata-with-named-data&#34;&gt;EventData with Named Data&lt;/h3&gt;
&lt;p&gt;In order to enable named Data elements in your event logs, you have to go through several hoops. I won&amp;rsquo;t go through them
in this post, but here are some links to various posts that can help you get started. &lt;em&gt;It&amp;rsquo;s not for the faint of heart!&lt;/em&gt;&lt;/p&gt;</description>
        </item>
        <item>
            <title>Get-History Lesson</title>
            <link>https://thedavecarroll.com/powershell/get-history-lesson/</link>
            <pubDate>Fri, 29 Nov 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/get-history-lesson/</guid>
            <description><img src="https://thedavecarroll.com/images/clock.jpg" alt="Featured image of post Get-History Lesson" />&lt;h2 id=&#34;a-quick-history-lesson&#34;&gt;A Quick History Lesson&lt;/h2&gt;
&lt;p&gt;Today, I did a significant amount of work in a PowerShell session and, even though most of what I did was copy/pasted
from a file (open in VS Code), I wanted to grab only the essential commands from the session.&lt;/p&gt;
&lt;p&gt;Instead of scrolling or arrowing up (which is actually using PowerShell history, by default), you can list all of the
commands that you have executed in your session, up to a predefined maximum.&lt;/p&gt;</description>
        </item>
        <item>
            <title>PowerShell Beginners Have to Start Somewhere</title>
            <link>https://thedavecarroll.com/powershell/iron-scripter-challenge-beginner-walk-through/</link>
            <pubDate>Sun, 13 Oct 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/iron-scripter-challenge-beginner-walk-through/</guid>
            <description><img src="https://thedavecarroll.com/images/iron-scripter-beginner.png" alt="Featured image of post PowerShell Beginners Have to Start Somewhere" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Iron Scripter grew out of the scripting games at PowerShell Summit and the quote below comes from the introductory post
on the &lt;a href=&#34;https://ironscripter.us&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Iron Scripter site&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Chairman has decided that it is in the best interests of his Iron Scripters, and those that wish to attain that
valued designation,  that training continue year-round. To that end, he has commissioned a series of PowerShell
challenges. These challenges will range in complexity and be tagged accordingly.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Design Deep Dive - PoShDynDnsApi</title>
            <link>https://thedavecarroll.com/powershell/design-deep-dive-poshdyndnsapi/</link>
            <pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/design-deep-dive-poshdyndnsapi/</guid>
            <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In January, I published the first release of the &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;PoShDynDnsApi&lt;/a&gt; module to the PowerShellGallery,
along with a &lt;a href=&#34;https://thedavecarroll.com/powershell/module-poshdyndnsapi/&#34;&gt;blog post introducing the module&lt;/a&gt;. It was the culmination of months of
often-distracted work that began nearly a year prior.&lt;/p&gt;
&lt;p&gt;In this post, I want to give you a peek into my development process.&lt;/p&gt;
&lt;h2 id=&#34;topics-covered&#34;&gt;Topics Covered&lt;/h2&gt;
&lt;p&gt;Below are the topics that I will cover in this post.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dyn Managed DNS Service
&lt;ul&gt;
&lt;li&gt;Managed DNS API&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PowerShell Web Cmdlets
&lt;ul&gt;
&lt;li&gt;Changes Between Windows PowerShell and PowerShell Core&lt;/li&gt;
&lt;li&gt;Strictly RESTing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Testing Tool&lt;/li&gt;
&lt;li&gt;Module Variables
&lt;ul&gt;
&lt;li&gt;Session&lt;/li&gt;
&lt;li&gt;History&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;API Request
&lt;ul&gt;
&lt;li&gt;Invoke-DynDnsRequestDesktop&lt;/li&gt;
&lt;li&gt;Invoke-DynDnsRequestCore&lt;/li&gt;
&lt;li&gt;Invoke-DynDnsRequest&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Output
&lt;ul&gt;
&lt;li&gt;Classes&lt;/li&gt;
&lt;li&gt;Output Streams&lt;/li&gt;
&lt;li&gt;Write-DynDnsOutput&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Help&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;dyn-managed-dns-service&#34;&gt;Dyn Managed DNS Service&lt;/h2&gt;
&lt;p&gt;When I first started working on this module, I had access to Dyn&amp;rsquo;s Managed DNS through an employer. When I left them in
October 2018, I obviously lost my access to Dyn.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Using the PSGSuite Module for G Suite</title>
            <link>https://thedavecarroll.com/powershell/using-psgsuite-module/</link>
            <pubDate>Sun, 03 Mar 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/using-psgsuite-module/</guid>
            <description><img src="https://thedavecarroll.com/images/gsuite-reddit-post.png" alt="Featured image of post Using the PSGSuite Module for G Suite" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;About a week ago, I was scrolling through Reddit and came across a post in &lt;strong&gt;r/sysadmin&lt;/strong&gt;,
&lt;a href=&#34;https://www.reddit.com/r/sysadmin/comments/aujdao/get_list_of_aliases_in_gsuitegmail/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Get list of aliases in Gsuite/Gmail&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I took a few minutes to install and configure &lt;a href=&#34;https://github.com/scrthq/PSGSuite&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;PSGSuite&lt;/a&gt;, a module for interacting with G Suite
(Google Apps) API that I heard about sometime last year. In short order, I was able to provide a response to the post.&lt;/p&gt;




    


&lt;div class=&#34;notice important&#34;&gt;
    &lt;div class=&#34;notice-icon&#34;&gt;
        
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;circle cx=&#34;12&#34; cy=&#34;12&#34; r=&#34;10&#34;&gt;&lt;/circle&gt;&lt;line x1=&#34;12&#34; y1=&#34;16&#34; x2=&#34;12&#34; y2=&#34;12&#34;&gt;&lt;/line&gt;&lt;line x1=&#34;12&#34; y1=&#34;8&#34; x2=&#34;12.01&#34; y2=&#34;8&#34;&gt;&lt;/line&gt;&lt;/svg&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;notice-content&#34;&gt;
        &lt;div class=&#34;notice-type&#34;&gt;IMPORTANT&lt;/div&gt;
        &lt;div class=&#34;notice-text&#34;&gt;
            I am not affiliated with &lt;code&gt;PSGSuite&lt;/code&gt; project, other than being a very new, casual user of the module. Please visit the
&lt;a href=&#34;https://github.com/scrthq/PSGSuite&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;GitHub repo&lt;/a&gt; or &lt;a href=&#34;https://github.com/scrthq/PSGSuite/wiki/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;wiki&lt;/a&gt; for help with commands or to raise an issue.
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This module allows you to work with GSuite users, groups, sheets, and more. See the &lt;a href=&#34;https://github.com/scrthq/PSGSuite/wiki/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;wiki&lt;/a&gt; for details.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Introducing the PoShDynDnsApi Module</title>
            <link>https://thedavecarroll.com/powershell/module-poshdyndnsapi/</link>
            <pubDate>Mon, 07 Jan 2019 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/module-poshdyndnsapi/</guid>
            <description><img src="https://thedavecarroll.com/images/dyndnsconnect.png" alt="Featured image of post Introducing the PoShDynDnsApi Module" />&lt;h2 id=&#34;sometime-in-early-2018&#34;&gt;Sometime in Early 2018&lt;/h2&gt;
&lt;p&gt;Manager: Hey, Dave. I need you to add all of our domains as Accepted Domains in Exchange Online.&lt;br&gt;
Me: Okay. How many do we have?&lt;br&gt;
Manager: Maybe 50?&lt;br&gt;
Me *finally gets access to Dyn and checks*: We have over 170 in Dyn.&lt;br&gt;
Manager: Yeah, all those.&lt;br&gt;
Me: We will need to create a TXT record in Dyn Managed DNS to prove ownership of the domain in Azure first.&lt;br&gt;
Manager: Do your thing.&lt;br&gt;
Me *sqeeeeee*: Okay.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Windows Forms</title>
            <link>https://thedavecarroll.com/powershell/windows-forms/</link>
            <pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/windows-forms/</guid>
            <description><img src="https://thedavecarroll.com/images/windows-form-example.png" alt="Featured image of post Windows Forms" />&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Recently, I was tasked to provide a GUI for a PowerShell script. Okay, I think I tasked myself, but it was an interesting
foray into the .Net &lt;code&gt;[System.Windows.Forms]&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;As one does to find script inspiration - some might call this a starting point - I took to my favorite search engine and
found numerous scripts built with &lt;a href=&#34;https://www.sapien.com/software/powershell_studio&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;SAPIEN Technologies PowerShell Studio&lt;/a&gt;
as well as manually coded scripts on GitHub.&lt;/p&gt;</description>
        </item>
        <item>
            <title>How I Implement Module Variables</title>
            <link>https://thedavecarroll.com/powershell/how-i-implement-module-variables/</link>
            <pubDate>Sun, 14 Oct 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/how-i-implement-module-variables/</guid>
            <description><img src="https://thedavecarroll.com/images/module-variables.png" alt="Featured image of post How I Implement Module Variables" />&lt;h2 id=&#34;preface&#34;&gt;Preface&lt;/h2&gt;
&lt;p&gt;Originally, I used globally scoped variables for my &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;PoShDynDnsApi module&lt;/a&gt;
to store the API URL, the authentication token, and the API version. These three variables were created during the initial
connection to the service then updated or removed as needed.&lt;/p&gt;
&lt;p&gt;A week or so ago, I was talking with a previous co-worker, &lt;a href=&#34;http://stevenmaglio.blogspot.com/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;Steven Maglio&lt;/a&gt;,
that just happens to be a .Net developer. We were reminiscing and checking out some PowerShell code that we&amp;rsquo;d written.
He pointed out that I could create a pseudo-namespace, a la hashtable, to store the values for all the modules variables.
At first, I was reluctant to change the method I was using for my variables. After all, my module was nearly complete - I
was just working on the help files.&lt;/p&gt;</description>
        </item>
        <item>
            <title>ForEach-Object -WhatIf</title>
            <link>https://thedavecarroll.com/powershell/foreach-object-whatif/</link>
            <pubDate>Wed, 19 Sep 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/foreach-object-whatif/</guid>
            <description><img src="https://thedavecarroll.com/images/foreach-object-whatif.png" alt="Featured image of post ForEach-Object -WhatIf" />&lt;h2 id=&#34;preface&#34;&gt;Preface&lt;/h2&gt;
&lt;p&gt;While working on my &lt;a href=&#34;https://thedavecarroll.com/retired-links/&#34;&gt;PoShDynDnsApi&lt;/a&gt; module, I came across an issue with
with a function I had predominantly borrowed from a &lt;a href=&#34;https://blogs.technet.microsoft.com/janesays/2017/04/25/compare-all-properties-of-two-objects-in-windows-powershell/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;TechNet blog post from Jamie Nelson&lt;/a&gt;.
Specifically, in my function &lt;code&gt;Update-DynDnsRecord&lt;/code&gt; that called the &lt;code&gt;Compare-ObjectProperties&lt;/code&gt; function, when I used the
&lt;code&gt;-WhatIf&lt;/code&gt; parameter, I unexpectedly received the following:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: ipaddress Address {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Name {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: int TTL {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Type {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Zone {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: ipaddress Address {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Name {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: int TTL {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Type {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;go&#34;&gt;What if: Performing the operation &amp;#34;Retrieve the value for property &amp;#39;Name&amp;#39;&amp;#34; on target &amp;#34;InputObject: string Zone {get;set;}&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The &lt;code&gt;Compare-ObjectProperties&lt;/code&gt; seemed to be throwing these additional What If statements. I saw where the &lt;code&gt;ForEach-Object&lt;/code&gt;
alias of &lt;code&gt;%&lt;/code&gt; was used a few times and determined that these two lines were the cause.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Download Newest Sysinternals Tools</title>
            <link>https://thedavecarroll.com/powershell/download-newest-sysinternals/</link>
            <pubDate>Mon, 03 Sep 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/download-newest-sysinternals/</guid>
            <description>&lt;h2 id=&#34;preface&#34;&gt;Preface&lt;/h2&gt;
&lt;p&gt;I have a new laptop and have been configuring it as my primary PowerShell development system.&lt;/p&gt;
&lt;p&gt;Today, when I was looking for a way to search for all of my GitHub repositories, I found a couple Gists from






  

  

  

  
    
  

  

  

  

  

  

  









    
    



    
    



    
        
            
                
                
                
                
                
                    
                    
                
                
                
                    
                    
                
            
        
    









  &lt;span class=&#34;influencer-link&#34;&gt;
  
    
    
      
    
    
    
      
    
    
    
    
      
    
      
        &lt;a href=&#34;https://jdhitsolutions.com/blog/&#34; target=&#34;_blank&#34; title=&#34;Blog&#34;&gt;
          &lt;svg class=&#34;social-icon&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;path d=&#34;M3 4m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z&#34;/&gt;&lt;path d=&#34;M7 8h10&#34;/&gt;&lt;path d=&#34;M7 12h10&#34;/&gt;&lt;path d=&#34;M7 16h10&#34;/&gt;&lt;/svg&gt;
          Jeff Hicks
        &lt;/a&gt;
        
      
    
      
    
    
    
    
    
  
  &lt;/span&gt;
 for &lt;a href=&#34;https://gist.github.com/jdhitsolutions/06cb62bf3eb4f0a1f7d82ed39b1e56ca&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;New-GitHubGist&lt;/a&gt; and
&lt;a href=&#34;https://gist.github.com/jdhitsolutions/345a6b8e4c47440df5fb1dbcb987cb3e&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;SendTo-Gist&lt;/a&gt;.
Knowing Jeff is a prolific PowerShell blogger, I dug a little deeper and found his
&lt;a href=&#34;http://jdhitsolutions.com/blog/powershell/4895/friday-fun-a-sysinternals-powershell-workflow/&#34; rel=&#34;noopener&#34; target=&#34;_blank&#34;&gt;post&lt;/a&gt;
on using a PowerShell workflow to download Sysinternals.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Updatable Help</title>
            <link>https://thedavecarroll.com/powershell/updatable-help/</link>
            <pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/updatable-help/</guid>
            <description>&lt;p&gt;PowerShell has provided a way to update the help files for modules since version 3.0.&lt;/p&gt;
&lt;p&gt;Since creating my first two modules, I have tried adding updatable help support, but came across a few issues. Tonight,
I finally resolved them for my module PoShEvents.&lt;/p&gt;
&lt;h2 id=&#34;github-bad-github-pages-good&#34;&gt;GitHub Bad, GitHub Pages Good&lt;/h2&gt;
&lt;p&gt;My module repository is in GitHub, and I originally thought that I could simply use the Raw view for my updatable help.
After all, I was successfully serving the online help version using the markdown files straight out of GitHub.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Clear DNS Server Cache</title>
            <link>https://thedavecarroll.com/powershell/clear-dns-server-cache/</link>
            <pubDate>Tue, 21 Aug 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/clear-dns-server-cache/</guid>
            <description>&lt;p&gt;How often have you needed to clear the DNS server cache?&lt;/p&gt;
&lt;p&gt;Regardless how many domain controllers in your environment, a few simple lines of PowerShell can clear the cache on all of them.&lt;/p&gt;
&lt;p&gt;First, we need to get the name of the domain. Of course, if you already know the name, you can simply use it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$DomainName&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-ADDomain&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Select-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ExpandProperty&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;DnsRoot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Next, we find all name servers in the domain and show only the hostname.&lt;/p&gt;</description>
        </item>
        <item>
            <title>Unique Email Domains</title>
            <link>https://thedavecarroll.com/powershell/unique-email-domains/</link>
            <pubDate>Fri, 17 Aug 2018 00:00:00 +0000</pubDate>
            <author>Dave Carroll</author>
            <guid>https://thedavecarroll.com/powershell/unique-email-domains/</guid>
            <description>&lt;p&gt;So you&amp;rsquo;re working on getting all of your email domains that&amp;rsquo;s on-prem into Azure or you simply want to ensure that your
on-prem Exchange has been configured for all the domains your user accounts utilize. Your Active Directory domain
contains over 30,000 accounts. How would you go about discovering the unique email domains?&lt;/p&gt;
&lt;p&gt;Knowing that the Active Directory attribute proxyAddresses contains the account&amp;rsquo;s SMTP addresses, we can start there.
Also, you only want to include only those domains for active accounts. [Note: The proxyAddresses also contains other
address types, but we are only concerned about SMTP for this exercise.]&lt;/p&gt;</description>
        </item>
    </channel>
</rss>
