&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Articles from June 2015 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2015/06/</link><description>Recent content in Articles from June 2015 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2015/06/index.xml" rel="self" type="application/rss+xml"/><item><title>I need YOUR PowerShell Stories</title><link>https://powershell.org/articles/2015-06-30-i-need-your-powershell-stories/</link><guid>https://powershell.org/articles/2015-06-30-i-need-your-powershell-stories/</guid><pubDate>Tue, 30 Jun 2015 18:57:25 +0000</pubDate><description>&lt;p&gt;We all love PowerShell and we all probably have some very entertaining stories about a situation where it really saved our butts (or caused problems). Either way, we can all tell some kind of interesting story around a memorable moment you had with PowerShell or automation in general.  I&amp;rsquo;d love to hear about them.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m looking for a short story anywhere from a few paragraphs to an entire article if you want.  The more detail the better. What kind of situation were you in? Were you under a deadline and PowerShell saved the day?  Did automation backfire in your face and you blew up your whole datacenter?  I want to know about it!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We all love PowerShell and we all probably have some very entertaining stories about a situation where it really saved our butts (or caused problems). Either way, we can all tell some kind of interesting story around a memorable moment you had with PowerShell or automation in general.  I&rsquo;d love to hear about them.</p><p>I&rsquo;m looking for a short story anywhere from a few paragraphs to an entire article if you want.  The more detail the better. What kind of situation were you in? Were you under a deadline and PowerShell saved the day?  Did automation backfire in your face and you blew up your whole datacenter?  I want to know about it!</p><p>If you have any stories around PowerShell please send them to me by contacting me via<a href="http://www.adamtheautomator.com/get-ahold-of-me/">my blog&rsquo;s contact page</a>.  I will be editing and collecting them all up soon and putting them all into a community eBook here on<a href="https://powershell.org/">powershell.org</a> as well as my blog. If you don&rsquo;t want your name attached to the story let me know.</p><p><strong>The deadline for submissions is 7/31/15.</strong></p><p>I look forward to reading your contributions!</p><ul><li><a href="http://www.adamtheautomator.com">Adam Bertram</a></li></ul>
]]></content:encoded></item><item><title>PowerShell.org, Inc. 2015 Shareholder Meeting Roundup</title><link>https://powershell.org/articles/2015-06-30-powershell-org-inc-2015-shareholder-meeting-roundup/</link><guid>https://powershell.org/articles/2015-06-30-powershell-org-inc-2015-shareholder-meeting-roundup/</guid><pubDate>Tue, 30 Jun 2015 17:55:23 +0000</pubDate><description>&lt;p&gt;I wanted to provide a quick wrap-up of the Annual Shareholder Meeting that we just concluded. We had a quorum of shareholder votes present online or by proxy, and we made some important decisions that I want to share with the community overall.&lt;/p&gt;
&lt;p&gt;One, we voted to amend the organization&amp;rsquo;s Articles of Incorporation and Bylaws to make some important structural changes. These are absolutely in line with our original &lt;em&gt;intent&lt;/em&gt; for the organization, and reflect how we&amp;rsquo;ve actually done things, but now they&amp;rsquo;re &amp;ldquo;law.&amp;rdquo; The first was to remove any legal possibility of corporate funds being paid out to shareholders; all corporate funds must be used only for corporate programs and operating expenses. We also voted that, in the event the corporation is completely dissolved, any remaining assets and proceeds will be donated to a 501(c)(3) charity.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I wanted to provide a quick wrap-up of the Annual Shareholder Meeting that we just concluded. We had a quorum of shareholder votes present online or by proxy, and we made some important decisions that I want to share with the community overall.</p><p>One, we voted to amend the organization&rsquo;s Articles of Incorporation and Bylaws to make some important structural changes. These are absolutely in line with our original <em>intent</em> for the organization, and reflect how we&rsquo;ve actually done things, but now they&rsquo;re &ldquo;law.&rdquo; The first was to remove any legal possibility of corporate funds being paid out to shareholders; all corporate funds must be used only for corporate programs and operating expenses. We also voted that, in the event the corporation is completely dissolved, any remaining assets and proceeds will be donated to a 501(c)(3) charity.</p><p>The bigger news is that we also voted to, if necessary, cancel all shares held by the corporation&rsquo;s owners - with no financial consideration - and re-incorporate as a nonprofit corporation. That means everyone who&rsquo;s invested time and money into PowerShell.org would get no money back, yet would lose their ownership of it. That&rsquo;s likely to be a necessary step for us to achieve tax-free status, which is something we&rsquo;d very much like to do moving forward. We would still have a Board of Directors, and would likely form a volunteer Community Council to help advise on program directions and other matters of governance. Legally, under US nonprofit rules, the Directors could not be paid for their service as Directors - which is exactly how we&rsquo;ve always done things.</p><p>We also announced that Steve Murawski will be joining the Board as our sixth Director. Steve&rsquo;s been instrumental in moving the community forward on DSC, and plays an important role in connecting the community to the DSC product team members, so we&rsquo;re pleased to have him.</p><p>Director Dave Wyatt, known for his work on Pester, will be working on a PowerShell.org Continuous Integration service. The theory is that you submit your code to an open-source repo, and the CI service automatically runs your Pester tests on the code. If the code passes, your code is packaged and made available for production use in a repository (similar to PowerShellGallery.com, perhaps, and potentially <em>that</em> repository depending on Microsoft&rsquo;s directions).</p><p>Our other big announcement was a 2016 plan to launch a DevOps-focused education program designed for young people and young entrants to the IT field. This program will combine self-study online training with live mentorship, and lead to as many as nine entry-level certification titles by its conclusion. Anyone will be welcome to join the program on an a-la-carte basis, meaning you could simply follow it on your own, skip the exams, or whatever. However, in partnership with vendor sponsors to be announced, we hope to provide two full-ride scholarships to the program. One will be a general scholarship, and the other will be a &ldquo;Diversity in Tech&rdquo; scholarship reserved for members of groups that are presently underrepresented in the industry. The goal of the program will be to take a recent high school graduate, or someone with similar education, and provide them the skills and knowledge needed to successfully apply for an entry-level job (such as Help Desk Technician), with a focus on pointing their career in a DevOps direction.</p><p>As you can see, our community is coming together into a significant force, and these major programs are one reason we&rsquo;d like to pursue nonprofit status - doing so will not only remove our own tax burden and leave more money for programs, but also potentially make donations to the organization tax-deductible for the donor. </p><p>All of this on top of two annual Summit events, a revamped website, the re-imagined Scripting Games, our information-packed TechLetter, and our newly launched TechSession webinars. We&rsquo;ve got a lot going on, and it couldn&rsquo;t be done without the ample and able help of our many volunteers, and the support of our wonderful community. Thank you - our most exciting years appear to be ahead of us!</p><p>Slide deck: <a href="https://powershell.org/wp-content/uploads/2015/06/Shareholder-Meeting.pptx">Shareholder Meeting</a></p>
]]></content:encoded></item><item><title>The Scripting Games: Here's What's Happening</title><link>https://powershell.org/articles/2015-06-29-the-scripting-games-heres-whats-happening/</link><guid>https://powershell.org/articles/2015-06-29-the-scripting-games-heres-whats-happening/</guid><pubDate>Mon, 29 Jun 2015 15:11:27 +0000</pubDate><description>&lt;p&gt;I know a lot of folks have been wondering about when the next Scripting Games will be. It&amp;rsquo;s a complicated answer&amp;hellip; so bear with me for a minute while I unburden my soul to you. If you prefer to just skip the explanations, you can skip a bit to see what we&amp;rsquo;re doing, part 1.&lt;/p&gt;
&lt;h2 id="the-background" class="ps-heading"&gt;&lt;strong&gt;The Background&lt;/strong&gt;&lt;a class="ps-heading-anchor" href="#the-background" aria-label="Link to this section" title="Link to this section"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m not sure how long Microsoft&amp;rsquo;s Scripting Guys ran The Scripting Games, but it goes back at least to 2006. Back then, the focus was on VBScript, it wasn&amp;rsquo;t until a year or so later that a parallel PowerShell track was started, and another year or two before VBScript was discontinued. The Games back then were&amp;hellip; well, &lt;em&gt;games.&lt;/em&gt; They weren&amp;rsquo;t always terribly real-world, but they were fun, and they made you think.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I know a lot of folks have been wondering about when the next Scripting Games will be. It&rsquo;s a complicated answer&hellip; so bear with me for a minute while I unburden my soul to you. If you prefer to just skip the explanations, you can skip a bit to see what we&rsquo;re doing, part 1.</p><h2 id="the-background" class="ps-heading"><strong>The Background</strong><a class="ps-heading-anchor" href="#the-background" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I&rsquo;m not sure how long Microsoft&rsquo;s Scripting Guys ran The Scripting Games, but it goes back at least to 2006. Back then, the focus was on VBScript, it wasn&rsquo;t until a year or so later that a parallel PowerShell track was started, and another year or two before VBScript was discontinued. The Games back then were&hellip; well,<em>games.</em> They weren&rsquo;t always terribly real-world, but they were fun, and they made you think.</p><p>In 2013, Last Scripting Guy Standing, Ed Wilson, turned the Games over to PowerShell.org. Ed was, to put it bluntly, exhausted. Coming up with nine events in two tracks, let alone grading the thousands of entries, wrangling the assistant judges, begging for prizes - it was a couple of months out of his life, during which he was still expected to do his full-time job. So we stepped in, mindful of the trust he was placing in us, to take over and keep the tradition alive.</p><p>We&rsquo;ve tried some variations on the Games, but two things became abundantly clear:</p><ol><li><p>The real value people like in the Games is getting the individual expert feedback and scoring.</p></li><li><p>The one thing we simply can&rsquo;t feasibly provide is individual expert feedback and scoring.</p></li></ol><p>Seriously, we&rsquo;d go out and recruit a couple of dozen judges, but it&rsquo;s just mind-numbing to look through entry after entry after entry after you&rsquo;ve already put in a full day of work at your job. YOU wouldn&rsquo;t want to do it. So in the end, it&rsquo;d always be the same 4-5 stalwarts who slaved away for 40 or more hours - not kidding - to make sure everyone got a grade and a comment. It&rsquo;s just insane. None of us who&rsquo;ve done it for a few years ever wants to do it again, even if it&rsquo;s the one thing that would save us from our robotic conquerors. We can&rsquo;t handle it.</p><p>We tried to do community scoring and that was a huge non-popular-thing-to-do. People wanted &ldquo;the experts&rdquo; giving feedback, not some schmuck from the next cube over. Which we understand, but it doesn&rsquo;t mean we can physically deliver what people are after.</p><h2 id="what-we-thought-about-trying" class="ps-heading"><strong>What We Thought About Trying</strong><a class="ps-heading-anchor" href="#what-we-thought-about-trying" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>So we thought about a Games where we went back to focusing on puzzles. Believe me, the original Scripting Guys weren&rsquo;t reviewing, grading, and commenting on every submission. Most entries went in via e-mail, and they picked the ones they thought were winners. But the Games evolved to the point where people expected that individual feedback.</p><p>So when we shared our draft plans with a few folks, their knee-jerk reaction was universally, &ldquo;WTF?!??&rdquo; They struggled with the idea of a Games that didn&rsquo;t include individual feedback. And once we started being honest with ourselves, we could appreciate the value in that, and how people would react when the Games eliminating the judging.</p><p>But we still can&rsquo;t do the individual judging. There just aren&rsquo;t enough experts with enough time. We&rsquo;ve all got 50-hour a week jobs just like you do, and we&rsquo;re talking THOUSANDS of submissions that we&rsquo;re supposed to do instead of hanging out with our friends and families. </p><p>So&hellip; there we were. Kind of stuck between a rock and a hard place.</p><h2 id="here" class="ps-heading"><strong>Here&rsquo;s What We&rsquo;re Doing, Part 1</strong><a class="ps-heading-anchor" href="#here" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>We&rsquo;re going to pivot the Scripting Games into a monthly event, sort of. Each month, we&rsquo;ll publish a puzzle. They won&rsquo;t all necessarily be real-world, but they&rsquo;ll all be designed to make you think about something important. We&rsquo;ll try to describe<em>why</em> it&rsquo;s important, too, since in some cases it won&rsquo;t be super-obvious. You&rsquo;ll get a full month to work on your entry, and you&rsquo;ll be encouraged to post it (we&rsquo;ll provide posting instructions). </p><p>We&rsquo;re encouraging user groups to occasionally or regularly make the monthly puzzle a part of their meetings. We&rsquo;re encouraging them to publicize when they&rsquo;re doing so, and if they allow virtual visitors, then you&rsquo;ll have the opportunity to share your solution with a group of peers, work on a solution together, and give each other feedback in real-time. That&rsquo;s a hugely valuable exercise, by the way, and I encourage everyone to take advantage of the opportunity if they can. You don&rsquo;t work in this field alone - start to make some friends and colleagues, even if they&rsquo;re across the globe.</p><p>The following month, we&rsquo;ll post a new puzzle. We&rsquo;ll also post a wrap-up for the preceding month&rsquo;s puzzle. In it, we&rsquo;ll offer a sample solution and an explanation for it. When possible, we&rsquo;ll offer Celebrity Participant solutions, often from members of the PowerShell team or from other MVPs. And, when we have volunteers willing to do so, we&rsquo;ll post a &ldquo;stream of consciousness&rdquo; article that shares how that person tackled the problem and came to their solution. Finally, we&rsquo;ll include some analysis of the entries people posted, including things we especially liked, and things we didn&rsquo;t like so much.</p><p>All of that should provide the learning opportunity that the Games were originally created for. You&rsquo;ll have to use some critical thinking, some out-of-the-box skills, and some cleverness. You&rsquo;ll get to see how other people approached the problem, and gain some new perspective. No, you won&rsquo;t get an individual score or commentary - but this isn&rsquo;t a certification exam, and it isn&rsquo;t intended as a personal benchmark for YOU. It&rsquo;s a way for us to all learn together.</p><p>And, best of all, the Scripting Games&rsquo; monthly puzzle will create an opportunity for the Games to resurface on The Scripting Guy&rsquo;s blog, as Ed has offered to run the monthly puzzles.</p><h2 id="here-1" class="ps-heading"><strong>Here&rsquo;s What Else We&rsquo;re Doing, Part 2</strong><a class="ps-heading-anchor" href="#here-1" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>We haven&rsquo;t given up on the idea of an annual, fast-paced event that includes individual feedback. It&rsquo;s going to have to be a new set of volunteers who tackle that, though, and we have a few people thinking about it. I imagine it&rsquo;ll be a larger-scale challenge, so that you can exercise several sets of skills and knowledge and once, and get feedback on something that&rsquo;s perhaps more real-world than a puzzle. I can&rsquo;t offer any timelines or promises on this; it&rsquo;s a huge undertaking, and we&rsquo;re still running ideas around. Heck, if you think you have a solution, share them in Web Site Feedback forum on PowerShell.org. </p><p>However, if you offer an solution, be prepared to volunteer to implement it. What we don&rsquo;t want are, &ldquo;here&rsquo;s what I&rsquo;d like YOU do to, and I&rsquo;ll just sit back and consume that.&rdquo; &ldquo;Solutions,&rdquo; for us, are PEOPLE, not ideas. I myself am not a community, nor are my fellow PowerShell.org Board members. ALL OF US are a community - so if this is something the community wants, the community has to pull together to build it out.</p><h2 id="a-user-group-call-to-action" class="ps-heading"><strong>A User Group CALL TO ACTION</strong><a class="ps-heading-anchor" href="#a-user-group-call-to-action" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Do you run or participate in a PowerShell User Group? Well, today&rsquo;s your lucky day. First - why not make the monthly Scripting Games puzzle a part of your user group meetings? Invite remote visitors to come along for the ride - increase participation by putting code front and center.</p><p>And here&rsquo;s a special offer just for user groups: We&rsquo;ll be publishing the monthly puzzles on the beginning of the month (likely the first Saturday). As a user group, you can send your best join submission right to Ed Wilson, The Scripting Guy. He&rsquo;ll select the most noteworthy user group submissions, publish them, and comment on it, raising visibility for your group and its members. He&rsquo;ll also publish selected excerpts that he finds noteworthy from other user group entries. Caveats, here: only the registered user group leader will be able to submit the group&rsquo;s entry. So if you&rsquo;re not listing your user group on PowerShell.org, consider doing so.</p><p>So now there&rsquo;s a HUGE reason to get involved with a user group, since it&rsquo;s another opportunity for you to work on code together, and have that code published in one of the highest-profile PowerShell blogs in existence! </p><p>And to sweeten that pot even more - the user group that has the most entries selected over the year will be eligible for a grand prize, courtesy of PowerShell.org. You see (and this was all Ed&rsquo;s idea), we really want to give people more reasons to create, run, and participate in user groups. They&rsquo;re really the best way to make community happen. It all starts at a local level, even if you&rsquo;re attending remotely.</p><h2 id="here-2" class="ps-heading"><strong>Here&rsquo;s Something YOU Can Do To Help</strong><a class="ps-heading-anchor" href="#here-2" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Offer to write the monthly puzzle. Seriously. Drop a line to Admin over here at PowerShell.org, and include an RTF (not Word, please) document with your monthly puzzle. You&rsquo;ll get credit, and you&rsquo;ll be giving back to the community that&rsquo;s supported you as you learned PowerShell. Do it for the children.</p><h2 id="here-3" class="ps-heading"><strong>Here&rsquo;s Something Else YOU Can Do</strong><a class="ps-heading-anchor" href="#here-3" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>We&rsquo;ve heard over and over that expert reviews are valuable to people. You know, you can probably have an expert review without having a Scripting Games. Get together with a handful of colleagues, and invite your favorite PowerShell expert to a Code Review Hour. Have some code ready for them, and do a Skype screen-share or something and let them pick apart what you&rsquo;ve done. PAY THEM. Offer $100 or $200 an hour, which is a going rate depending on the level of expertise you&rsquo;re getting. You and your friends can pool your funds. Heck, with five people offering $20 each, you&rsquo;ve got $100, right? And if that expert review is truly valuable to you - well, &ldquo;valuable&rdquo; means you can put a value on it, and $100 an hour ain&rsquo;t much.</p><p>If PowerShell.org can do something to facilitate these, like helping you contact interested experts, let me know in the Web Site Feedback forum, and I&rsquo;ll figure something out.</p><h2 id="in-the-meantime" class="ps-heading"><strong>In the Meantime</strong><a class="ps-heading-anchor" href="#in-the-meantime" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>So while you&rsquo;re waiting on that first Scripting Games, Monthly Edition (expect it in July), start thinking of the kinds of puzzles you&rsquo;d like to see. Ones that make people think, even if they don&rsquo;t necessarily have one-and-only-one correct answer. Don&rsquo;t just CONSUME community, help CREATE it by offering to write one of the monthly Puzzlers. And start thinking how you, and we, all together, can do a better job AS A COMMUNITY of providing peer code reviews, code feedback, and other elements. I look forward to your ideas.</p>
]]></content:encoded></item><item><title>Decorating PowerShell Objects</title><link>https://powershell.org/articles/2015-06-22-decorating-powershell-objects/</link><guid>https://powershell.org/articles/2015-06-22-decorating-powershell-objects/</guid><pubDate>Mon, 22 Jun 2015 12:44:21 +0000</pubDate><description>&lt;p&gt;Ever wonder how PowerShell seems to know how to format objects? When you run&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Get-ChildItem &lt;/code&gt;or&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Get-WmiObject &lt;/code&gt;, you only see a few key properties, but a wealth of other information is available through commands like&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Select-Object &lt;/code&gt;and&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Get-Member &lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Have you ever written a PowerShell function that you nearly always pipe to&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Format-Table &lt;/code&gt;? Wouldn&amp;rsquo;t it be nice to specify some default properties and force them into a table?&lt;/p&gt;
&lt;p&gt;Stop by for &lt;a href="http://bit.ly/DecoratePSObjects"&gt;a quick hit on how to decorate your PowerShell objects&lt;/a&gt; with type names and formatting, including a re-usable tool to abstract out some of the details.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Ever wonder how PowerShell seems to know how to format objects? When you run</p><p><code>Get-ChildItem</code>or</p><p><code>Get-WmiObject</code>, you only see a few key properties, but a wealth of other information is available through commands like</p><p><code>Select-Object</code>and</p><p><code>Get-Member</code>.</p><p>Have you ever written a PowerShell function that you nearly always pipe to</p><p><code>Format-Table</code>? Wouldn&rsquo;t it be nice to specify some default properties and force them into a table?</p><p>Stop by for<a href="http://bit.ly/DecoratePSObjects">a quick hit on how to decorate your PowerShell objects</a> with type names and formatting, including a re-usable tool to abstract out some of the details.</p><p>Cheers!</p>
]]></content:encoded></item><item><title>Walkthrough: An example of how I write PowerShell functions</title><link>https://powershell.org/articles/2015-06-19-walkthrough-an-example-of-how-i-write-powershell-functions/</link><guid>https://powershell.org/articles/2015-06-19-walkthrough-an-example-of-how-i-write-powershell-functions/</guid><pubDate>Fri, 19 Jun 2015 14:59:15 +0000</pubDate><description>&lt;p&gt;A couple of days ago I posted a blog article titled &amp;ldquo;&lt;a href="http://mikefrobbins.com/2015/06/17/powershell-function-test-consolecolor-provides-a-visual-demonstration-of-the-foreach-scripting-construct/"&gt;PowerShell function: &lt;em&gt;Test-ConsoleColor&lt;/em&gt; provides a visual demonstration of the foreach scripting construct&lt;/a&gt;&amp;rdquo; and today I thought I would walk you through that function step by step since it&amp;rsquo;s what I consider to be a well written PowerShell function.&lt;/p&gt;
&lt;p&gt;It starts out by using the &lt;a href="https://technet.microsoft.com/en-us/library/hh847765.aspx"&gt;#Requires&lt;/a&gt; statement to require at least PowerShell version 3 or it won&amp;rsquo;t run. It also requires that the &lt;a href="https://pscx.codeplex.com/"&gt;PowerShell Community Extensions&lt;/a&gt; module be installed since it uses a function from that module and continuing without it only leads to errors:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>A couple of days ago I posted a blog article titled &ldquo;<a href="http://mikefrobbins.com/2015/06/17/powershell-function-test-consolecolor-provides-a-visual-demonstration-of-the-foreach-scripting-construct/">PowerShell function:<em>Test-ConsoleColor</em> provides a visual demonstration of the foreach scripting construct</a>&rdquo; and today I thought I would walk you through that function step by step since it&rsquo;s what I consider to be a well written PowerShell function.</p><p>It starts out by using the<a href="https://technet.microsoft.com/en-us/library/hh847765.aspx">#Requires</a> statement to require at least PowerShell version 3 or it won&rsquo;t run. It also requires that the<a href="https://pscx.codeplex.com/">PowerShell Community Extensions</a> module be installed since it uses a function from that module and continuing without it only leads to errors:</p><p><code>#Requires -Version 3.0 -Modules Pscx</code>The function is then declared using a<a href="https://msdn.microsoft.com/en-us/library/dd878270(v=vs.85).aspx#SD02">Pascal case name</a> that uses an<a href="https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx">approved verb</a> along with a<a href="https://msdn.microsoft.com/en-us/library/dd878270(v=vs.85).aspx#SD01">singular noun</a>.<a href="https://technet.microsoft.com/en-us/library/hh847834.aspx">Comment based help</a> is provided just inside the function declaration. This isn&rsquo;t the only location where comment based help can be specified at, but it&rsquo;s my preferred location for it.</p><p><a href="http://mikefrobbins.com/2015/06/19/walkthrough-an-example-of-how-i-write-powershell-functions/">Click here</a>
 to be redirected to the original post of this article on the author’s blog site where you can read the remainder of the article.</p><p>µ</p>
]]></content:encoded></item><item><title>Philadelphia PowerShell User Group Meeting – July 7th 2015</title><link>https://powershell.org/articles/2015-06-16-philadelphia-powershell-user-group-meeting-july-7th-2015/</link><guid>https://powershell.org/articles/2015-06-16-philadelphia-powershell-user-group-meeting-july-7th-2015/</guid><pubDate>Wed, 17 Jun 2015 01:30:48 +0000</pubDate><description>&lt;p&gt;Join us Tuesday, July 7th when PhillyPosh members &lt;a href="https://twitter.com/Iczer1"&gt;John Mello&lt;/a&gt; and &lt;a href="https://twitter.com/techguytj"&gt;TJ Turner&lt;/a&gt; will be presenting. John will be giving a presentation on the new ConvertFrom-String cmdlet in the PowerShell V5 preview. Afterwards TJ Turner will be giving a presentation entitled &amp;ldquo;What&amp;rsquo;s in your toolbox?”.&lt;/p&gt;
&lt;p&gt;Please &lt;a href="https://www.eventbrite.com/e/phillyposh-july-7th-2015-tickets-17420823151"&gt;
register
&lt;/a&gt; if you plan to attend in person or online. The meeting URL to join us remotely will be included in your Eventbrite registration confirmation.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.eventbrite.com/e/phillyposh-july-7th-2015-tickets-17420823151?ref=ebtnebregn"&gt;&lt;img src="https://www.eventbrite.com/custombutton?eid=17420823151" alt="Eventbrite - PhillyPoSH July 7th 2015"&gt;&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Join us Tuesday, July 7th when PhillyPosh members<a href="https://twitter.com/Iczer1">John Mello</a> and<a href="https://twitter.com/techguytj">TJ Turner</a> will be presenting. John will be giving a presentation on the new ConvertFrom-String cmdlet in the PowerShell V5 preview. Afterwards TJ Turner will be giving a presentation entitled &ldquo;What&rsquo;s in your toolbox?”.</p><p>Please <a href="https://www.eventbrite.com/e/phillyposh-july-7th-2015-tickets-17420823151">
register</a> if you plan to attend in person or online. The meeting URL to join us remotely will be included in your Eventbrite registration confirmation.</p><p><a href="http://www.eventbrite.com/e/phillyposh-july-7th-2015-tickets-17420823151?ref=ebtnebregn"><img src="https://www.eventbrite.com/custombutton?eid=17420823151" alt="Eventbrite - PhillyPoSH July 7th 2015"/></p>
]]></content:encoded></item><item><title>Why Remoting vs. SSH Isn't Even a Thing</title><link>https://powershell.org/articles/2015-06-09-why-remoting-vs-ssh-isnt-even-a-thing/</link><guid>https://powershell.org/articles/2015-06-09-why-remoting-vs-ssh-isnt-even-a-thing/</guid><pubDate>Tue, 09 Jun 2015 21:13:04 +0000</pubDate><description>&lt;p&gt;As you&amp;rsquo;ve probably read, Microsoft &lt;a href="http://blogs.msdn.com/b/powershell/archive/2015/06/03/looking-forward-microsoft-support-for-secure-shell-ssh.aspx"&gt;recently announced&lt;/a&gt; that they&amp;rsquo;re getting on board with &lt;a href="http://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt;, and that they&amp;rsquo;ve plans to, in some future-and-unspecified version of Windows, include a default SSH server and client. Some folks have taken to the Twittersphere rejoicing this decision, even though I suspect they&amp;rsquo;ve no idea why Microsoft is doing it. Others have suggested that this is the downfall of Remoting (management via &lt;a href="http://en.wikipedia.org/wiki/WS-Management"&gt;WS-MAN&lt;/a&gt;), because who would want that when you&amp;rsquo;ve got SSH?&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>As you&rsquo;ve probably read, Microsoft<a href="http://blogs.msdn.com/b/powershell/archive/2015/06/03/looking-forward-microsoft-support-for-secure-shell-ssh.aspx">recently announced</a> that they&rsquo;re getting on board with<a href="http://en.wikipedia.org/wiki/Secure_Shell">SSH</a>, and that they&rsquo;ve plans to, in some future-and-unspecified version of Windows, include a default SSH server and client. Some folks have taken to the Twittersphere rejoicing this decision, even though I suspect they&rsquo;ve no idea why Microsoft is doing it. Others have suggested that this is the downfall of Remoting (management via<a href="http://en.wikipedia.org/wiki/WS-Management">WS-MAN</a>), because who would want that when you&rsquo;ve got SSH?</p><p>And so now I have to write this.</p><p>First of all, let&rsquo;s speculate - with some objectivity - why Microsoft is getting involved with SSH at all. My personal belief is that an SSH client is simply massively overdue. Literally every other business-grade operating system on the entire planet comes with a decent command-line SSH client, so for pity&rsquo;s sake, let&rsquo;s get Windows one, too. Being able to reach out to Linux boxes, routers, switches, and all manner of other devices isn&rsquo;t a convenience, it&rsquo;s a necessity.</p><p>The SSH server piece is a little more interesting. My suspicion is that Microsoft wants to further enable management systems that are primarily built for Linux to log into Windows and manage Windows boxes. If you&rsquo;ve got Ansible or Salt, for example, then you know that they revolve in part around using SSH to log into nodes and run commands. Fine - Microsoft can enable that on Windows if it&rsquo;ll help.</p><p>But.</p><p>Let&rsquo;s be clear on why making a decision between Remoting and SSH isn&rsquo;t actually a decision.</p><p>SSH is, basically, Telnet*. You send characters to the remote computer, and it sends characters back. It&rsquo;s built entirely around stdin and stdout. On a Unix system, this works beautifully, because at the end of the day everything on Unix is a process, a file, or a folder. It&rsquo;s all text, all the way down to the turtles. SSH is great at accessing text. Now, _text itself _isn&rsquo;t necessarily a wonderful management API, because it requires administrators to become experts at string manipulation and slicing, but in the Unix world that&rsquo;s a de facto skill. In other words, _for the type of management API that Unix uses, SSH is a wonderful data transport mechanism. _</p><p>(*yes, I know that SSH has evolved tremendously beyond Telnet - but for the purpose of discussing how SSH moves data back and forth, Telnet is a useful analogy. I know SSH does a lot more than just the Telnet-y bits. That&rsquo;s less relevant to my discussion, but thanks to the SSH fans who&rsquo;ve pointed it out. I&rsquo;m simplifying so I can get to the point - I don&rsquo;t regard SSH as bad or weak.)</p><p>Windows, on the other hand, is entirely different. It is based on APIs. Data doesn&rsquo;t move between bits of software as a text stream; it moves as a data structure called an _object. _Windows APIs all assume that you&rsquo;re passing objects back and forth, and text parsing-and-slicing isn&rsquo;t part of the deal. When an API gets input, it expects the computer name to be in the ComputerName property of an input object, not hiding in columns 26 to 46 of a text block. SSH, therefore, is <em>not</em> a good mechanism for transmitting the data structures that Windows uses for management.</p><p>Remoting, on the other hand, <em>is</em> a good mechanism. It has built-in code for serializing objects into XML, and then deserializing them back into objects on the other end. Like SSH, Remoting natively supports encryption. Unlike SSH, which is really just a remote console, Remoting wasn&rsquo;t built with synchronous operations in mind. Remoting is perfectly happy to fire off a command and then wait until the data comes back some time later. Remoting&rsquo;s underlying protocol, WS-Management, as implemented by the WinRM service, is capable of connecting to far more than just PowerShell, too. CIM and OMI, for example, communicate using WS-MAN. So, unlike SSH, Remoting (well, its underlying infrastructure) connects <em>software endpoints</em> for manageability. That&rsquo;s important in Windows, because those endpoints are where we call the APIs we need to get stuff done.</p><p>SSH and Remoting (and WS-MAN) solve different problems. The fact that both solutions involve transmitting encrypted bits across the wire is <em>literally</em> the only thing they have in common. Yes, when you use <strong>Enter-PSSession</strong> to interactively connect to a remote machine, it looks and feels a lot like SSH in how it works. It isn&rsquo;t. It&rsquo;s <em>entirely and completely</em> different, and if you don&rsquo;t know why, you should learn.</p><p>(Briefly, Enter-PSSession doesn&rsquo;t send one character out, and then receive that same character echo back. Your typing occurs entirely inside your <em>local console</em>, where you can have rich tools like PSReadLine running. When you hit Enter, what you&rsquo;ve typed is transmitted <em>all at once</em> to the remote box. It runs your commands, serializes the results into XML, and sends &rsquo;em. Your console deserializes the XML into objects, and <em>your local formatting system</em> takes over to display those objects. SSH assumes a dumb client; Remoting and Enter-PSSession require a smarter client.)</p><p>Remoting and SSH enable different functionality. Neither is better than the other, any more than cars are better than hot tubs. Both have their place, and both have strengths and weaknesses that devolve primarily from the operating system environments in which they were born. Microsoft <em>is not implementing an SSH server</em> because they believe it&rsquo;s the best way to administer Windows; they&rsquo;re doing it to enable some customer scenarios that, previously, were unnecessarily difficult. Rich management of Windows will always be easier to accomplish using Remoting, but if your management solution can only do SSH, at least you&rsquo;ll be able to do what that can do.</p><p>Keep in mind that Microsoft&rsquo;s also provided a reference implementation for WS-MAN running on Linux, because if your solution supports WS-MAN - as Microsoft&rsquo;s do - then it&rsquo;s nice to be able to use that cross-platform.</p><p>Now, another argument is, &ldquo;my security people won&rsquo;t approve Remoting, but they already approve SSH, so we should just use that.&rdquo; First, your &ldquo;security&rdquo; people (and they&rsquo;re clearly anything but secure or people) have also probably allowed RDP for managing servers, which is just dumb. Choosing to use an inappropriate tool just because the organization won&rsquo;t grouse about it suggests that you have H.R. problems. Either someone in &ldquo;security&rdquo; should be fired, or you should be applying for new jobs at companies that aren&rsquo;t stupid. SSH wasn&rsquo;t <em>always</em> approved; someone had to understand it, what it did, how it worked, and become comfortable with it. They&rsquo;re going to need to do that with WS-MAN whether they like it or not, because it&rsquo;s _what Microsoft is going to fixate on, exclusively, for proper management of their operating system. _You&rsquo;re not going to be able to properly manage Windows via SSH, trust me. Microsoft investing some time in OpenSSH is not the same as Microsoft investing time to re-architect their entire operating system around Telnet as a management communications protocol. If you don&rsquo;t believe me on that, then you&rsquo;re just being obstinate. Which is fine, but time will prove me right on this. So, if your organization doesn&rsquo;t &ldquo;like&rdquo;  Remoting, fix your organization.</p><p>And SSH will be another tool in our toolbox. Hopefully, you&rsquo;ll use it when it&rsquo;s the very best thing to do, and use other tools when <em>they</em> offer the best way to accomplish a particular task.</p>
]]></content:encoded></item><item><title>Trust, but Verify</title><link>https://powershell.org/articles/2015-06-08-trust-but-verify/</link><guid>https://powershell.org/articles/2015-06-08-trust-but-verify/</guid><pubDate>Tue, 09 Jun 2015 00:12:33 +0000</pubDate><description>&lt;p&gt;The PowerShell code you write can turn up in interesting places. Production services might rely on it. Your co-workers might take a peak and borrow ideas from it. You might decide to share it online. Someone might see your code online and use it in their own solutions.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ramblingcookiemonster.github.io/Trust-but-Verify/"&gt;Hit the link&lt;/a&gt; for a quick bit on how we can help create more reliable, consistent, and secure solutions. Simplified to one line: always ask yourself &amp;ldquo;what could go wrong?&amp;rdquo;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The PowerShell code you write can turn up in interesting places. Production services might rely on it. Your co-workers might take a peak and borrow ideas from it. You might decide to share it online. Someone might see your code online and use it in their own solutions.</p><p><a href="http://ramblingcookiemonster.github.io/Trust-but-Verify/">Hit the link</a> for a quick bit on how we can help create more reliable, consistent, and secure solutions. Simplified to one line: always ask yourself &ldquo;what could go wrong?&rdquo;</p><p>What do you think? Is this over the top? Do you have any funny or awe-inspiring-train-wreck stories that resulted from assumptions around PowerShell or other code?</p><p>I&rsquo;ve been lucky so far. My scariest moment? A while back, I was testing some code against a test server or two with<a href="https://github.com/RamblingCookieMonster/Invoke-Parallel">Invoke-Parallel</a>. Oops! The code to pull test systems hit a bug, and pulled all computer accounts. A number of domain controllers were hit before I could press ctrl+c. After recovering from a minor heart attack, I realized the code was benign, quickly fixed the bug, and broke the bad habit of running with a high-privilege account.</p><p>Cheers!</p>
]]></content:encoded></item><item><title>PowerShell.org: Where We've Been, Our New Look, Where We're Going</title><link>https://powershell.org/articles/2015-06-08-powershell-org-where-weve-been-our-new-look-where-were-going/</link><guid>https://powershell.org/articles/2015-06-08-powershell-org-where-weve-been-our-new-look-where-were-going/</guid><pubDate>Mon, 08 Jun 2015 18:29:11 +0000</pubDate><description>&lt;p&gt;PowerShell.org has come a long way, both spiritually and physically, since our inception in September of 2012. Let&amp;rsquo;s look at some screen grabs from the &lt;a href="http://archive.org"&gt;Internet Archive&lt;/a&gt;, and take a stroll through our history.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>PowerShell.org has come a long way, both spiritually and physically, since our inception in September of 2012. Let&rsquo;s look at some screen grabs from the<a href="http://archive.org">Internet Archive</a>, and take a stroll through our history.</p><h2 id="before-powershellorg" class="ps-heading">Before PowerShell.org<a class="ps-heading-anchor" href="#before-powershellorg" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Not long after PowerShell&rsquo;s product launching 2006, I convinced my employer at the time, SAPIEN Technologies, as well as Quest Software, Dell, and Microsoft to help fund the launch of a new PowerShell community. Creatively named PowerShellCommunity.org, it was a DotNetNuke site, launched around 2007.</p><p>The idea was to create something central that could serve as a jumping-off point to the rest of the PowerShell community. Criticized by some for the &ldquo;toilet bowl water&rdquo; color scheme (it was changed to a blue version in 2009), it saw moderate success. Unfortunately, for a variety of reasons, it never really caught on.</p><p>Back in 2007, PowerShell.org didn&rsquo;t look even that nice.</p><p>That was before I acquired the PowerShell.org domain name, in fact. But after speaking with some of the PowerShell product team members, myself and the other PowerShell.org founders (including Kirk Munro, Richard Siddaway, and Jeff Hicks) knew we needed a standalone, independent entity in order to accomplish some of what we wanted. So I purchased the PowerShell.org name, and we started getting a new site ready.</p><h2 id="an-org-is-born-2012" class="ps-heading">An Org is Born: 2012<a class="ps-heading-anchor" href="#an-org-is-born-2012" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>And so in 2012, PowerShell.org was born. As of March 2013, it had a pretty basic look. At that time, our front page led to the different, distinct applications that made up the website - primarily the forums, along with pages for the Scripting Games and PowerShell Summit. We&rsquo;d moved quickly, taking on the Games and starting the Summit at the behest of Microsoft. Our little community was starting to chug along, based largely on the selfless efforts of its early volunteers. We had strong support from some early, dedicated sponsors, and we started to make an impact right away. Although there are a number of incredible PowerShell resources online, they were a bit scattered. The friendliness of Q&amp;A forums, in particular, was pretty variable. We wanted to offer a friendly starting point in the community, and then help guide people to the other offerings that were out there.</p><h2 id="settling-in-2014" class="ps-heading">Settling In: 2014<a class="ps-heading-anchor" href="#settling-in-2014" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Yeah, we were a little rough-looking back then. But by a year later, we&rsquo;d started to refine our look. Our new &ldquo;metro&rdquo; logo and a cleaner look went along with our integration into a single platform for everything. As you can see, we&rsquo;d started to make big strides in supporting local user groups, and welcomed the PowerScripting Podcast (started in 2006) to our site. We&rsquo;d finished our first PowerShell Summit, and in March 2014 were getting ready for our second one - and our first European Summit, later that year. Our dream of helping to foster community was coming true - we just had to keep plugging at it.</p><h2 id="more-community-2015" class="ps-heading">More Community: 2015<a class="ps-heading-anchor" href="#more-community-2015" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Fast forward a year&hellip; Now, we&rsquo;ve got more user groups featured! More volunteers authoring articles! And we&rsquo;ve launched our DSC Hub, providing quick access to new ebooks, a GitHub repo, and learning resources. By March 2015, we&rsquo;ve got three PowerShell Summit events under our belts, and three Scripting Games events. We&rsquo;ve got our first North American Summit outside Washington coming up in Charlotte, and are looking ahead to our second European Summit in Stockholm. We&rsquo;re welcoming 150,000 visitors a month to the site, and we&rsquo;ve launched a series of TechSession webinars. We&rsquo;ve got a TechLetter newsletter with a dozen issues published, and almost a dozen free ebooks authored by members of the community. Our site look hasn&rsquo;t changed much, but we&rsquo;re doing a lot more with it.</p><p>But there was still some valid criticism. The site wasn&rsquo;t very small-screen friendly. Posting code in the forums was a little touch-and-go. Major elements like the Summit, our free ebooks, and the incredible work done by our volunteer authors were still kind of buried.</p><h2 id="a-new-us-2015" class="ps-heading">A New Us: 2015<a class="ps-heading-anchor" href="#a-new-us-2015" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>One last leap forward in time - about a year and 3 months, to June 2015. In other words, we&rsquo;re in the present, and PowerShell.org is ready to continue moving forward.</p><p>Our new look is fresher, cleaner, and more modern. We&rsquo;re doing more to highlight the great work being done by the community, with a formal Articles area for our volunteer writers, better exposure of the forums, and a fully-responsive theme that&rsquo;s small-screen friendly. Our forums have a great new code colorizer, and supports pasting of Gist snippets simply by adding the URL to the post. Forums posts can now even be marked as &ldquo;resolved,&rdquo; to help future generations better identify answers when they come searching.</p><p>But beyond our look, I feel that we&rsquo;ve accomplished <em>so much</em> in terms of fostering a true community.</p><ul><li>Our volunteers take on everything from writing articles, editing the newsletter, producing ebooks, running the website, and organizing webinars. And we&rsquo;re always looking for more, especially writers, so chime in!</li><li>We&rsquo;ve successfully produced four PowerShell Summit events globally, with a fifth on the way this September, and 2016 already in planning.</li><li>We&rsquo;re back with a new edition of the Scripting Game this summer, in what we believe will be a long-term-sustainable format that offers fun and challenge.</li><li>Our TechSession webinars are getting traction, and we&rsquo;re starting to build out a reliable monthly schedule of free educational offerings.</li><li>Our free ebooks have been downloaded more than 50,000 times, making them a collective set of bestsellers by any calculation.</li><li>We&rsquo;re helping support almost two dozen independent user groups by giving them a space to publish their meeting notes, meeting announcements, and other details.</li><li>The PowerScripting Podcast continues to draw thousands of listeners to each episode, and we&rsquo;re proud to offer them some space from which to do it, along with financial support.</li></ul><p>I&rsquo;m proudest of the fact that _I&rsquo;m not doing most of these things _- you, in the community, are. You&rsquo;re helping answer questions in the forums, you&rsquo;re driving demand for the PowerShell Summit, and you&rsquo;re writing resources for our DSC Repository. PowerShell.org is achieving exactly what its founders always intended: providing a gathering place for community, because we know that once you all have a place to come together, you&rsquo;ll do amazing things.</p><p>It&rsquo;s been an exciting three years since we began, and I can&rsquo;t wait to see where you take us next.</p>]]></content:encoded></item><item><title>Mississippi PowerShell User Group Virtual Meeting – June 9th 2015</title><link>https://powershell.org/articles/2015-06-08-mississippi-powershell-user-group-virtual-meeting-june-9th-2015/</link><guid>https://powershell.org/articles/2015-06-08-mississippi-powershell-user-group-virtual-meeting-june-9th-2015/</guid><pubDate>Mon, 08 Jun 2015 13:46:23 +0000</pubDate><description>&lt;p&gt;Join us virtually on Tuesday, June 9th at 8:30pm Central Time when PowerShell MVP Trevor Sullivan will present
&lt;em&gt;&lt;strong&gt;“Creating Object-Oriented Scripts using PowerShell Classes”&lt;/strong&gt;&lt;/em&gt;
.&lt;/p&gt;
&lt;p&gt;During this deep, technical discussion, we will take a look at PowerShell classes, and then authoring PowerShell Desired State Configuration (DSC) Resource using PowerShell v5 classes. We’ll also explore leveraging PowerShell DSC on Microsoft Azure infrastructure (IaaS) virtual machines using the Azure VM DSC Extension. This session assumes some previous knowledge of PowerShell &amp;amp; DSC, so make sure you’re familiar with the basics ahead of time!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Join us virtually on Tuesday, June 9th at 8:30pm Central Time when PowerShell MVP Trevor Sullivan will present<em><strong>“Creating Object-Oriented Scripts using PowerShell Classes”</strong></em>
.</p><p>During this deep, technical discussion, we will take a look at PowerShell classes, and then authoring PowerShell Desired State Configuration (DSC) Resource using PowerShell v5 classes. We’ll also explore leveraging PowerShell DSC on Microsoft Azure infrastructure (IaaS) virtual machines using the Azure VM DSC Extension. This session assumes some previous knowledge of PowerShell &amp; DSC, so make sure you’re familiar with the basics ahead of time!</p><p>**About Trevor
**
Trevor Sullivan is an 11 year veteran in the IT industry, and a multi-year recipient of the Microsoft Most Valuable Professional (MVP) award for Windows PowerShell automation. With 8 years of automation experience with PowerShell, and 3 years of experience working with the Microsoft Azure public cloud, Trevor is uniquely equipped to offer cost and process efficiency enhancements to nearly any area of the business. Trevor is a passionate community member, and seeks to spread awareness and knowledge about various technical solutions to business problems through a variety of social media channels. You can find out more about Trevor at<a href="http://trevorsullivan.net/">http://trevorsullivan.net</a>
and <a href="http://twitter.com/pcgeek86">http://twitter.com/pcgeek86</a>
.</p><p>Register via<a href="http://mspsug.eventbrite.com/">EventBrite</a>
to receive the URL for this virtual meeting. <a href="http://mspsug.com/2015/06/02/mspsug-virtual-meeting-creating-object-oriented-scripts-using-powershell-classes-on-tuesday-june-9th-at-830pm-cdt/">Click here</a>
 to be redirected to the original post of this article on the<a href="http://mspsug.com/">Mississippi PowerShell User Group</a>
website which contains additional information about the meeting including the system requirements to attend.</p><p>µ</p>
]]></content:encoded></item><item><title>DON'T Start Learning PowerShell?!?!?</title><link>https://powershell.org/articles/2015-06-07-dont-start-learning-powershell/</link><guid>https://powershell.org/articles/2015-06-07-dont-start-learning-powershell/</guid><pubDate>Sun, 07 Jun 2015 16:13:59 +0000</pubDate><description>&lt;p&gt;Jason Helmick and I were recently up in Redmond recording a Microsoft Virtual Academy series entitled, &amp;ldquo;Building Your Datacenter One DSC Resource at a Time.&amp;rdquo; While we were there, we decided to film a tongue-in-cheek promo for the series that started with the premise that, &amp;ldquo;if you haven&amp;rsquo;t already learned PowerShell, you missed the bus.&amp;rdquo; Obviously, there&amp;rsquo;s a bit more to the story.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Jason Helmick and I were recently up in Redmond recording a Microsoft Virtual Academy series entitled, &ldquo;Building Your Datacenter One DSC Resource at a Time.&rdquo; While we were there, we decided to film a tongue-in-cheek promo for the series that started with the premise that, &ldquo;if you haven&rsquo;t already learned PowerShell, you missed the bus.&rdquo; Obviously, there&rsquo;s a bit more to the story.</p><p>First, watch the video at https://www.youtube.com/watch?v=kuzFUI5Id0g …</p><p>Second, notice that _we specifically encourage people to learn DSC. _Hmm&hellip; are there any pre-requisite technologies for learning DSC?</p><p>Maybe, learning PowerShell ?</p><p>We were really speaking to the folks who&rsquo;ve been procrastinating on PowerShell for the past half-decade or more, because we <em>really do believe</em> that DSC is a great, and often easier, way to actually learn PowerShell. Sometimes, PowerShell is tough to get into simply because you don&rsquo;t have a task to tackle. DSC gives you one - a practical application of PowerShell that lets you dive in from a different angle.</p><p>_Obviously, _we think learning PowerShell is important, _<strong>or we wouldn&rsquo;t have built our careers around the technology</strong>. _But we know it can be tough to get started in - and every year that passes makes it harder to get started, as new features are added. But DSC represents a bit of a fresh start, and an opportunity to get into PowerShell on the ground floor, from a somewhat different direction.</p><p>Some folks got really ticked when we basically said, &ldquo;if you haven&rsquo;t started learning PowerShell by now, then it&rsquo;s too late,&rdquo; but seemed to miss the massive encouragement we gave for learning DSC. </p><p>And no, we don&rsquo;t <em>really</em> think that it&rsquo;s too late to start in PowerShell if you haven&rsquo;t, already. I&rsquo;m forever reminding people that there&rsquo;s this thing called a &ldquo;birth rate&rdquo; in the world, which means there&rsquo;ll always be new people coming into the industry and starting from scratch. I&rsquo;ve spent a massive amount of effort producing materials to help those newcomers, and I certainly don&rsquo;t think that &ldquo;entry level&rdquo; just stopped in 2015!</p><p>But&hellip; if you&rsquo;ve been putting it off, maybe take a new look at PowerShell from the DSC perspective. It&rsquo;s different, I promise - and it&rsquo;s not at all like programming as you get started. It&rsquo;s a neat way to leverage, and kind of abstract, the massive investment that&rsquo;s been made in PowerShell since 2006, and might be just the thing to win you over to the Shell Side.</p>]]></content:encoded></item><item><title>Creating a small footprint, base image Part 4 | Bringing it all together with automation</title><link>https://powershell.org/articles/2015-06-04-creating-a-small-footprint-base-image-part-4-bringing-it-all-together-with-automation/</link><guid>https://powershell.org/articles/2015-06-04-creating-a-small-footprint-base-image-part-4-bringing-it-all-together-with-automation/</guid><pubDate>Fri, 05 Jun 2015 04:07:16 +0000</pubDate><description>&lt;p&gt;In this entry I combing all I covered into a set of scripts to automate the process of creating a small footprint VHDX base image and a WIM to use a sorce that is fully patched. And I added a script to update the files on a regular basis.&lt;br&gt;
Check it out and let me know what you think.&lt;br&gt;
&lt;a href="https://bladefirelight.wordpress.com/2015/06/05/creating-a-small-footprint-base-image-part-4-bringing-it-all-together-with-automation/"&gt;Creating a small footprint, base image Part 4 | Bringing it all together with automation&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>In this entry I combing all I covered into a set of scripts to automate the process of creating a small footprint VHDX base image and a WIM to use a sorce that is fully patched. And I added a script to update the files on a regular basis.<br>
Check it out and let me know what you think.<br><a href="https://bladefirelight.wordpress.com/2015/06/05/creating-a-small-footprint-base-image-part-4-bringing-it-all-together-with-automation/">Creating a small footprint, base image Part 4 | Bringing it all together with automation</a></p>
]]></content:encoded></item><item><title>Automating with Jenkins and PowerShell on Windows</title><link>https://powershell.org/articles/2015-06-04-automating-with-jenkins-and-powershell-on-windows/</link><guid>https://powershell.org/articles/2015-06-04-automating-with-jenkins-and-powershell-on-windows/</guid><pubDate>Fri, 05 Jun 2015 01:31:32 +0000</pubDate><description>&lt;p&gt;Take a minute think about how many PowerShell scripts you have written for yourself or your team. Countless functions and modules, helping to automate this or fix that or make your teams lives easier. You spend hours coding, writing in-line help, testing, packaging your script, distributing it to your team. All that effort, and then a lot of the time the script is forgotten about! People just go back to doing things the manual way.&lt;br&gt;
I put this down to being out of sight, out of mind. Users who do not use the command line regularly will quickly forget about the amazing PowerShell-ing that you did to try and make their lives easier.&lt;br&gt;
Then there are are other problems, like working out the best way to give end users permissions to use your function when they aren’t administrators. Do you give them remote desktop access to a server and only provide a PowerShell session? Setup PowerShell Web Access? Configure a restricted endpoint? I thought the point of this module was to make your life easier, not make things harder!&lt;br&gt;
These problems are what an open source tool called &lt;strong&gt;Jenkins&lt;/strong&gt; can solve for you. Traditionally used by developers to automate their build process, it can be leveraged to wrap web interfaces, job tracking and scheduling around the PowerShell scripts you worked so hard on.&lt;br&gt;
The below image shows what a Jenkins build looks like. In this basic example, the the build creates a text file on a remote machine by using PowerShell Remoting and the &lt;strong&gt;Set-Content&lt;/strong&gt; CmdLet**. **The parameters for these commands can be entered into the form, and will be passed to your PowerShell script via variables.&lt;br&gt;
&lt;img src="https://powershell.org/wp-content/uploads/2015/06/jenkins.png" alt="jenkins"&gt;&lt;br&gt;
To find out how to start leveraging Jenkins in your environment, take a look at the below blog posts:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Take a minute think about how many PowerShell scripts you have written for yourself or your team. Countless functions and modules, helping to automate this or fix that or make your teams lives easier. You spend hours coding, writing in-line help, testing, packaging your script, distributing it to your team. All that effort, and then a lot of the time the script is forgotten about! People just go back to doing things the manual way.<br>
I put this down to being out of sight, out of mind. Users who do not use the command line regularly will quickly forget about the amazing PowerShell-ing that you did to try and make their lives easier.<br>
Then there are are other problems, like working out the best way to give end users permissions to use your function when they aren’t administrators. Do you give them remote desktop access to a server and only provide a PowerShell session? Setup PowerShell Web Access? Configure a restricted endpoint? I thought the point of this module was to make your life easier, not make things harder!<br>
These problems are what an open source tool called<strong>Jenkins</strong> can solve for you. Traditionally used by developers to automate their build process, it can be leveraged to wrap web interfaces, job tracking and scheduling around the PowerShell scripts you worked so hard on.<br>
The below image shows what a Jenkins build looks like. In this basic example, the the build creates a text file on a remote machine by using PowerShell Remoting and the<strong>Set-Content</strong> CmdLet**. **The parameters for these commands can be entered into the form, and will be passed to your PowerShell script via variables.<br><img src="https://powershell.org/wp-content/uploads/2015/06/jenkins.png" alt="jenkins"><br>
To find out how to start leveraging Jenkins in your environment, take a look at the below blog posts:</p><ul><li><a href="http://bit.ly/PSJenkins1">Part 1 - Installing Jenkins, Configuring Basic Security, The PowerShell Plugin, Creating Jobs</a></li><li><a href="http://bit.ly/PSJenkins2">Part 2 - Using SSL on the Web Interface, Configuring PowerShell Remoting, How to Pass Credentials to Jobs</a></li></ul>
]]></content:encoded></item><item><title>NYC Powershell Usergroup meets on June 8th</title><link>https://powershell.org/articles/2015-06-04-nyc-powershell-usergroup-meets-on-june-8th/</link><guid>https://powershell.org/articles/2015-06-04-nyc-powershell-usergroup-meets-on-june-8th/</guid><pubDate>Thu, 04 Jun 2015 18:47:58 +0000</pubDate><description>&lt;p&gt;Continuing from our May meeting, Tome will be presenting a beginner’s track on Powershell covering String manipulations, Functions and Powershell Scripts.&lt;br&gt;
We also have Powershell MVP Doug Finke, who will be covering the new components as part of the Powershell V5.0 release, including PSPM, Classes and Convert-String.&lt;br&gt;
&lt;strong&gt;AGENDA:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tome Tanasovski&lt;/strong&gt;:&lt;br&gt;
String manipulation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Counting, splitting, uppercasing/lowercasing, etc.&lt;/li&gt;
&lt;li&gt;Format operator&lt;/li&gt;
&lt;li&gt;-split, -join&lt;/li&gt;
&lt;li&gt;-match, -replace&lt;/li&gt;
&lt;li&gt;Select-String&lt;/li&gt;
&lt;li&gt;Secure strings&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Scripts and functions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principles&lt;/li&gt;
&lt;li&gt;Execution policies&lt;/li&gt;
&lt;li&gt;Passing arguments and parameters&lt;/li&gt;
&lt;li&gt;Scoping&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bio&lt;/strong&gt;&lt;br&gt;
Tome is an executive for a market-leading global financial services firm in New York City where he focuses on automation, private cloud, and distributed computing. He is the founder and leader of the New York City PowerShell User group, a blogger, and speaks regularly at conferences and user groups. In 2011 he became a cofounder of the NYC Techstravaganza, coauthored the Windows PowerShell Bible, and received the title of Honorary Scripting Guy from the Hey Scripting Guy! blog. Tome has also received the MVP award from Microsoft for the last five years in Windows PowerShell.&lt;br&gt;
&lt;strong&gt;Blog&lt;/strong&gt;: &lt;a href="http://powertoe.wordpress.com"&gt;http://powertoe.wordpress.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Twitter&lt;/strong&gt;: &lt;a href="http://twitter.com/toenuff"&gt;http://twitter.com/toenuff&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Doug Finke:&lt;/strong&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Continuing from our May meeting, Tome will be presenting a beginner’s track on Powershell covering String manipulations, Functions and Powershell Scripts.<br>
We also have Powershell MVP Doug Finke, who will be covering the new components as part of the Powershell V5.0 release, including PSPM, Classes and Convert-String.<br><strong>AGENDA:</strong><br><strong>Tome Tanasovski</strong>:<br>
String manipulation</p><ul><li>Counting, splitting, uppercasing/lowercasing, etc.</li><li>Format operator</li><li>-split, -join</li><li>-match, -replace</li><li>Select-String</li><li>Secure strings</li></ul><p>Scripts and functions</p><ul><li>Principles</li><li>Execution policies</li><li>Passing arguments and parameters</li><li>Scoping</li></ul><p><strong>Bio</strong><br>
Tome is an executive for a market-leading global financial services firm in New York City where he focuses on automation, private cloud, and distributed computing. He is the founder and leader of the New York City PowerShell User group, a blogger, and speaks regularly at conferences and user groups. In 2011 he became a cofounder of the NYC Techstravaganza, coauthored the Windows PowerShell Bible, and received the title of Honorary Scripting Guy from the Hey Scripting Guy! blog. Tome has also received the MVP award from Microsoft for the last five years in Windows PowerShell.<br><strong>Blog</strong>:<a href="http://powertoe.wordpress.com">http://powertoe.wordpress.com</a><br><strong>Twitter</strong>:<a href="http://twitter.com/toenuff">http://twitter.com/toenuff</a><br><strong>Doug Finke:</strong></p><ul><li>What’s new in Powershell V5<ul><li>Covers Package Management, object oriented constructs with the new<em>Class</em> keyword</li><li>ConvertFrom-String, and Convert-String.</li></ul></li></ul><p><strong>Bio</strong><br>
Doug Finke, author of “PowerShell for Developers”, 7 time MVP recipient and an international professional speaker. Doug works at Start-Automating, a company that builds advanced PowerShell tools, provides PowerShell training and PowerShell consulting. You can catch up with Doug at his blog Development in a Blink at<a href="http://dougfinke.com/blog">http://dougfinke.com/blog</a>.<br>
Pizza is being sponsored by SAPIEN, Makers of PowerShell Studio and Primal Script<br><a href="http://www.sapien.com"><img src="https://powershell.org/wp-content/uploads/2015/06/SapienLogo3.png" alt="SapienLogo3"/><br>
6pm - 6:30 - Pizza and catching up<br>
6:30 - 7:15 – Tome Tanasovski.<br>
7:15 - 7:45 – Doug Finke.<br>
8ish - ?? - Drinks at Beer Authority (next to Port Authority)<br>
You must RSVP via Event Brite in order to attend:<a href="https://www.eventbrite.com/e/nyc-powershell-ug-tome-tanasovski-doug-finke-powershell-v5-pspm-classes-and-powershell-fundamentals-tickets-17221745705">Register Here</a>!<br><a href="https://www.eventbrite.com/e/nyc-powershell-ug-tome-tanasovski-doug-finke-powershell-v5-pspm-classes-and-powershell-fundamentals-tickets-17221745705"><img src="https://powershell.org/wp-content/uploads/2015/06/EventBriteLogo.png" alt="EventBriteLogoEventBriteLogo"/><br><strong>Meeting Date:</strong><br>
Monday, June 08, 2015 - 18:00 - 20:00<br><strong>Location</strong><br>
Microsoft - Times Square - 6th Floor<br>
11 Times Square<br>
New York, NY 10018<br>
United States<br>
See map:<a href="https://www.google.com/maps/place/11+Times+Square,+New+York,+NY+10036/@40.7567203,-73.9896494,17z/data=!3m1!4b1!4m2!3m1!1s0x89c258534f8455ad:0x55d4588f7b23a524">Google Maps</a></p>
]]></content:encoded></item><item><title>VERIFIED EFFECTIVE Self-Assessment</title><link>https://powershell.org/articles/2015-06-02-verified-effective-self-assessment/</link><guid>https://powershell.org/articles/2015-06-02-verified-effective-self-assessment/</guid><pubDate>Tue, 02 Jun 2015 23:36:16 +0000</pubDate><description>&lt;p&gt;We&amp;rsquo;ve had a number of people ask about a self-assessment for their PowerShell Toolmaking skills. We&amp;rsquo;ve decided to publish one, just once, in July. Here&amp;rsquo;s how to get it.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We&rsquo;ve had a number of people ask about a self-assessment for their PowerShell Toolmaking skills. We&rsquo;ve decided to publish one, just once, in July. Here&rsquo;s how to get it.</p><p>The self-assessment will be published as a <em>very</em> long article in our July 2015 TechLetter. That means, to get it, you&rsquo;ll need to<a href="https://powershell.org/newsletter/">subscribe to the newsletter</a> prior to that date. Don&rsquo;t worry, we use that e-mail list <em>only</em> for the newsletter, and you can always bail out and unsubscribe later, if you like.<br>
So sign up prior to July 2015. This issue will be made available in our back-issue page by November 2015, in case you&rsquo;ve run across this in what is currently the future.</p>]]></content:encoded></item><item><title>Major Changes to DSC Pull Server Configuration IDs</title><link>https://powershell.org/articles/2015-06-02-major-changes-to-dsc-pull-server-configuration-ids/</link><guid>https://powershell.org/articles/2015-06-02-major-changes-to-dsc-pull-server-configuration-ids/</guid><pubDate>Tue, 02 Jun 2015 13:45:09 +0000</pubDate><description>&lt;p&gt;Configuration IDs - Globally Unique Identifiers, or GUIDs, that DSC nodes use to identify themselves to a pull server - have always been a limiting factor in DSC design and architecture. In the April 2015 preview of WMF5, however, Microsoft has completely overhauled Configuration IDs. If you&amp;rsquo;re working with DSC, this is must-have information.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Configuration IDs - Globally Unique Identifiers, or GUIDs, that DSC nodes use to identify themselves to a pull server - have always been a limiting factor in DSC design and architecture. In the April 2015 preview of WMF5, however, Microsoft has completely overhauled Configuration IDs. If you&rsquo;re working with DSC, this is must-have information.</p><p>For the official write-up, see http://blogs.msdn.com/b/powershell/archive/2015/05/29/how-to-register-a-node-with-a-dsc-pull-server.aspx?utm_content=bufferd9bce&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer.<br>
In a nutshell:</p><ul><li>Nodes can now be assigned a human-meaningful AgentID. This is unique per node, and allows the node to uniquely identify itself to the pull server for reporting purposes, regardless of what configuration the node is pulling.</li><li>Configuration IDs are no longer GUIDs, but are instead human-readable strings. This means your MOF filenames on the pull server can now be meaningful and easier to identify. It also means it&rsquo;s easier to track which configuration a node is pulling.</li><li>A new RegistrationKey acts as a password between the node and the pull server, making it harder for a bad actor to pull configuration files. Now that configuration MOFs have more meaningful text names, and not hard-to-guess GUIDs, this provides an extra layer of protection. The registration key is set in the node&rsquo;s meta config, and in the web.config file of the pull server.</li></ul><p>These changes should make it MUCH easier for nodes to share configurations (especially partials), and help eliminate the hassle of tracking which node had which GUID. In fact, these changes can actually reduce the need for certain DSC tooling (that we&rsquo;ve never gotten anyway) to track node-to-configuration mappings.</p>]]></content:encoded></item></channel></rss>