&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 May 2014 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2014/05/</link><description>Recent content in Articles from May 2014 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2014/05/index.xml" rel="self" type="application/rss+xml"/><item><title>Analyzing the "Black Magic" PowerShell "Exploit" and Appropriate Actions</title><link>https://powershell.org/articles/2014-05-31-analyzing-the-black-magic-powershell-exploit-and-appropriate-actions/</link><guid>https://powershell.org/articles/2014-05-31-analyzing-the-black-magic-powershell-exploit-and-appropriate-actions/</guid><pubDate>Sat, 31 May 2014 14:39:14 +0000</pubDate><description>&lt;p&gt;Trend Micro released a report on a new &lt;a href="http://blog.trendmicro.com/trendlabs-security-intelligence/black-magic-windows-powershell-used-again-in-new-attack/"&gt;PowerShell-vectored exploit named Black Magic&lt;/a&gt;. I had a lovely Twitter conversation about what this means in terms of PowerShell&amp;rsquo;s vulnerability to attack, and what admins should do. Unfortunately Twitter sucks for carrying on that kind of conversation, so I wanted to post this to clarify a few things.&lt;br&gt;
First, I&amp;rsquo;m going to write this article as if &amp;ldquo;you&amp;rdquo; were hit by this exploit. Don&amp;rsquo;t take it personally, it&amp;rsquo;s just an easier style of language for me - it&amp;rsquo;s not actually addressing &lt;em&gt;you.&lt;/em&gt;&lt;br&gt;
Second, when it comes to security, the goal is to &lt;em&gt;stop attacks from happening.&lt;/em&gt; That means you have to consider all the ways something could nail you, and try to block as many of them as is practical. That&amp;rsquo;s called &amp;ldquo;defense in depth,&amp;rdquo; giving you multiple layers of defense. The corollary to that is that your environment must still be functional. I mean, from a secure standpoint, if I unplugged all the WiFi access points and Ethernet switches you have, you&amp;rsquo;d be pretty secure. And non-functional.&lt;br&gt;
Third&amp;hellip; and I don&amp;rsquo;t know how to be delicate about this, but a lot of admins out there aren&amp;rsquo;t very sophisticated about security. There&amp;rsquo;s sometimes a tendency to fix what they can get their hands on, whether or not that makes any impact on security or not. So let&amp;rsquo;s be very clear about what you do when it comes to security: &lt;em&gt;You do as little as possible, and impinge as little functionality as possible, while achieving your security goals.&lt;/em&gt; That helps maintain a &amp;ldquo;functional&amp;rdquo; environment, and keeps the security aspect of it &amp;ldquo;maintainable.&amp;rdquo; Sometimes, &amp;ldquo;as little as possible&amp;rdquo; is quite a lot indeed - but you look for that balance. Finally, you almost &lt;em&gt;never do anything to &amp;ldquo;improve&amp;rdquo; security if it is in fact a null improvement.&lt;/em&gt; That is, you don&amp;rsquo;t lock the doors if the windows can&amp;rsquo;t be closed. There&amp;rsquo;s no point.&lt;br&gt;
Now, let&amp;rsquo;s look at how Black Magic operates.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Trend Micro released a report on a new<a href="http://blog.trendmicro.com/trendlabs-security-intelligence/black-magic-windows-powershell-used-again-in-new-attack/">PowerShell-vectored exploit named Black Magic</a>. I had a lovely Twitter conversation about what this means in terms of PowerShell&rsquo;s vulnerability to attack, and what admins should do. Unfortunately Twitter sucks for carrying on that kind of conversation, so I wanted to post this to clarify a few things.<br>
First, I&rsquo;m going to write this article as if &ldquo;you&rdquo; were hit by this exploit. Don&rsquo;t take it personally, it&rsquo;s just an easier style of language for me - it&rsquo;s not actually addressing<em>you.</em><br>
Second, when it comes to security, the goal is to<em>stop attacks from happening.</em> That means you have to consider all the ways something could nail you, and try to block as many of them as is practical. That&rsquo;s called &ldquo;defense in depth,&rdquo; giving you multiple layers of defense. The corollary to that is that your environment must still be functional. I mean, from a secure standpoint, if I unplugged all the WiFi access points and Ethernet switches you have, you&rsquo;d be pretty secure. And non-functional.<br>
Third&hellip; and I don&rsquo;t know how to be delicate about this, but a lot of admins out there aren&rsquo;t very sophisticated about security. There&rsquo;s sometimes a tendency to fix what they can get their hands on, whether or not that makes any impact on security or not. So let&rsquo;s be very clear about what you do when it comes to security:<em>You do as little as possible, and impinge as little functionality as possible, while achieving your security goals.</em> That helps maintain a &ldquo;functional&rdquo; environment, and keeps the security aspect of it &ldquo;maintainable.&rdquo; Sometimes, &ldquo;as little as possible&rdquo; is quite a lot indeed - but you look for that balance. Finally, you almost<em>never do anything to &ldquo;improve&rdquo; security if it is in fact a null improvement.</em> That is, you don&rsquo;t lock the doors if the windows can&rsquo;t be closed. There&rsquo;s no point.<br>
Now, let&rsquo;s look at how Black Magic operates.</p><h2 id="step-1-social-engineering" class="ps-heading">Step 1: Social Engineering<a class="ps-heading-anchor" href="#step-1-social-engineering" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>The exploit comes in the form of an .LNK e-mail attachment. That&rsquo;s a Windows shortcut file. Users are meant to double-click it, and the shortcut launches a PowerShell session with the execution policy essentially turned off.</p><blockquote><p><strong>Problem 1:</strong> You let users get .LNK e-mail attachments from external users. This is stupid. Users shouldn&rsquo;t be able to receive executable file types. Note that a .PS1 file isn&rsquo;t an executable file type, which is why the exploit had to take this action. If you&rsquo;d blocked .LNK attachments at the firewall, the exploit would be useless.<br><strong>Problem 2:</strong> Your users are opening file attachments from people they don&rsquo;t know.<em>There is no technical way to protect an environment where users aren&rsquo;t doing the right thing.</em> No way. Just give up. This is why I keep going on about building a &ldquo;<a href="http://redmondmag.com/Blogs/IT-Decision-Maker/2014/04/Creating-a-Culture-of-Security.aspx">culture of security</a>.&rdquo; If your users&rsquo; job descriptions, or your company employee manual, doesn&rsquo;t say something to the effect of, &ldquo;employees must be able to safely operate company computers in accordance with company policies and standards,&rdquo; then you&rsquo;re just doomed. If it<em>does</em> say that, and a user does open an attachment like this, you write them up and eventually fire them.
If you think you can stop stupid users from bypassing every security measure you put in place, you are dumber than they are
. You have to fix the social engineering element. There is almost no point in trying anything else, because users will get around it.</p></blockquote><p>I know. A lot of you are shrugging and saying, &ldquo;well, you can&rsquo;t fix users, so I&rsquo;ll just lock down PowerShell.&rdquo; It won&rsquo;t work.<br>
I once, and rather famously, refused to help a law firm client get their NTFS file permissions under control, because they let users print sensitive documents and leave them lying around the office.<em>Don&rsquo;t bother locking the door if the windows are open.</em></p><h2 id="step-2-the-download" class="ps-heading">Step 2: The Download<a class="ps-heading-anchor" href="#step-2-the-download" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>One of the elements of the Twitter discussion was, &ldquo;maybe standard users shouldn&rsquo;t have PowerShell able to run, because it&rsquo;s so powerful and can be exploited so easily.&rdquo;<br>
Um, no.<br>
First: PowerShell&rsquo;s execution policy<em>is not a measure against malware.</em> It was never designed to be, so don&rsquo;t be disappointed when it isn&rsquo;t. If you thought it was, you were wrong, and that&rsquo;s your fault for not educating yourself, not Microsoft&rsquo;s fault for failing to do something they never set out to do in the first place.<br>
Second: PowerShell<em>only lets you do what you have permission to do.</em> The Black Magic exploit used PowerShell<em>simply to download a file from the Internet.</em> That&rsquo;s it. It didn&rsquo;t wipe out Active Directory, it didn&rsquo;t erase a file server, and it didn&rsquo;t start grabbing messages out of Exchange,<em>because normal users can&rsquo;t do those things.</em><br>
Would locking down PowerShell, so that normal users couldn&rsquo;t run it, have stopped this exploit? No, because normal users have an<em>abundance</em> of ways to download files, and the exploit would simply have used a different one. PowerShell was convenient here, not necessary. If you&rsquo;re going to posit locking down PowerShell,<em>you must also lock down every other possible means of downloading a file from the Internet,</em> or you&rsquo;ve done nothing to impact security. Nothing.<br><strong>PowerShell is not powerful.</strong> Erase that from your mind. Everything PowerShell is and does comes from the .NET Framework installed on every one of your computers, which your users have full access to. PowerShell is<strong>nothing more</strong> than a human-friendly way of getting to the Framework without needing Visual Studio on-hand. You could<em>erase</em> PowerShell and 100% of its functionality would still be present and absolutely usable by an exploit. Get your brain wrapped around that, because it&rsquo;s an important concept.</p><blockquote><p><strong>Problem 3</strong>: You let your users download files from trashy websites. Your firewall should have been blocking access, and if it had integrated malware tools and realtime block lists, it probably would have caught this access.<br><strong>Problem 4:</strong> You&rsquo;re not using a local to block
outgoing
access by applications. For standard users, there&rsquo;s little reason to access the Internet by means other than a web browser or known applications. This is a well-known technology and approach that&rsquo;s been around for a decade.</p></blockquote><h2 id="step-3-run-a-file" class="ps-heading">Step 3: Run a File<a class="ps-heading-anchor" href="#step-3-run-a-file" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Black Magic&rsquo;s last step is to run the downloaded payload,<em>which it does under normal user permissions.</em></p><blockquote><p><strong>Problem 5:</strong> You&rsquo;re allowing users to run arbitrary applications. AppLocker has been around since Windows Vista, and provides a way of &ldquo;whitelisting&rdquo; applications that may run. This payload would never have been allowed to execute if you&rsquo;d been using a built-in tool that&rsquo;s been around since 2008. AppLocker even offers the ability to build that whitelist for you.<br><strong>Problem 6:</strong> You&rsquo;re not running updated anti-malware software that would have detected the payload and blocked it - and alerted someone. Most would have blocked access to the URL where the payload came from, too.</p></blockquote><h2 id="conclusions" class="ps-heading">Conclusions<a class="ps-heading-anchor" href="#conclusions" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>So you&rsquo;ve had six opportunities to stop this exploit, all of which involve well-known, years-old technologies and techniques. You probably haven&rsquo;t<em>done most of them,</em> and so you want to blame PowerShell.<br>
OK&hellip; I&rsquo;ll step out of the &ldquo;you&rdquo; attack-y mode :).<br>
The point is that, once you have arbitrary code running on users&rsquo; systems, you&rsquo;re owned. Nothing you can do to PowerShell will stop that. This attack could easily have been a .LNK file that ran Cmd.exe and the Telnet or FTP client - it could have achieved the same thing. It could easily have been an .EXE (&ldquo;no, we block EXE file attachments;&rdquo; &ldquo;why the hell don&rsquo;t you also block .LNK then, dummy?&rdquo;).<br>
I don&rsquo;t want to come across as defending PowerShell per se; I&rsquo;m trying to help folks understand where the real security problems lie. PowerShell is a red herring in all this; it was a convenient way of getting innocuous code to execute. There were six other places where<em>this attack would have been stopped in its tracks,</em> and any six of those would also have stopped every other similar kind of attack that didn&rsquo;t rely specifically on PowerShell. That&rsquo;s what makes those six<em>effective</em> - they&rsquo;re global, not targeted at one specific piece of code. All of those six act to stop malware.<br>
Before you take actions in security, you need to make sure you&rsquo;re doing so from a holistic, professional security perspective. The first time a fire broke out in a crowded theater, officials didn&rsquo;t say, &ldquo;well, we should put sprinklers and alarms in that theater.&rdquo; They put them in<em>every</em> theater, and started demanding flame-retardant fabrics and other measures. You address security<em>across the board,</em> not on a piecemeal basis.</p><h2 id="a-tangent-argument" class="ps-heading">A Tangent Argument<a class="ps-heading-anchor" href="#a-tangent-argument" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>&ldquo;Ah,&rdquo; the argument goes, &ldquo;but we should reduce moving parts. Users don&rsquo;t have a legit need to run PowerShell, so we should lock them out of it.&rdquo;<br>
Valid. Except that PowerShell.exe<em>isn&rsquo;t PowerShell.</em> PowerShell is a .NET Framework-based engine; PowerShell.exe is just a console application that lets you feed typed commands to that engine. You<em>can&rsquo;t</em> remove PowerShell, and you <em>can&rsquo;t</em> &ldquo;block&rdquo; users&rsquo; access to it, because it&rsquo;s part of the Framework. It&rsquo;s an integral part of the operating system. Things you don&rsquo;t even realize are using it, are using it.<br>
But yes, you could block users&rsquo; access to the console application, PowerShell.exe. I might even buy that argument, especially in a highly secure environment where you simply don&rsquo;t want users having access to<em>anything</em> they don&rsquo;t explicitly need to do their jobs. In fact, I<em>would</em> buy that argument,<em>if and only if</em> you block users&rsquo; access to<em>everything</em> they don&rsquo;t explicitly need. Notepad. Windows Paint. Solitaire. Etc. Because based on the theory you&rsquo;re working from,<em>all code is bad code</em> (a valid security perspective) and you block everything not explicitly needed. Remember, PowerShell doesn&rsquo;t give users any special capabilities. Anything a normal user can do in PowerShell<em>can be done in at least 2 other ways using other native tools.</em> This is why AppLocker is a better approach: the list of apps a user<em>needs</em> is smaller than the list of apps they don&rsquo;t, and so a whitelist is more maintainable, no matter how huge it is.</p><h2 id="anyway" class="ps-heading">Anyway&hellip;<a class="ps-heading-anchor" href="#anyway" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>There you go. Now, you&rsquo;re welcome to make comments on this, and offer your perspective. However, I have a couple of guidelines.</p><ol><li>Keep the conversation civil and professional. I&rsquo;ll delete anything obnoxious.</li><li>Keep the conversation focused on<em>security.</em> And remember that security isn&rsquo;t about locking down the doors when the windows are open; it&rsquo;s about holistically achieving specific goals. You don&rsquo;t take security measures that simply move the target elsewhere. &ldquo;Defense in depth&rdquo; doesn&rsquo;t mean 80 security restrictions and 20 ways around them. If something is super-easy to bypass, you don&rsquo;t bother.</li></ol>
]]></content:encoded></item><item><title>YASG! (Yet Another Scripting Game)</title><link>https://powershell.org/articles/2014-05-30-yasg-yet-another-scripting-game/</link><guid>https://powershell.org/articles/2014-05-30-yasg-yet-another-scripting-game/</guid><pubDate>Fri, 30 May 2014 16:02:23 +0000</pubDate><description>&lt;p&gt;The monthly Charlotte PowerShell Users Group meeting is coming up quickly. Mark Thursday, June 5th on your calendars. All of our MIA leaders should be at this one. Hopefully we will be able to personally congratulate the Teresa, aka ScriptingWife, on her recent MVP Award. Jump on over to the &lt;a href="http://www.meetup.com/Charlotte-PowerShell-Users-Group/events/178572422/"&gt;MeetUp&lt;/a&gt; page and let us know if we will see you there.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The monthly Charlotte PowerShell Users Group meeting is coming up quickly. Mark Thursday, June 5th on your calendars. All of our MIA leaders should be at this one. Hopefully we will be able to personally congratulate the Teresa, aka ScriptingWife, on her recent MVP Award. Jump on over to the<a href="http://www.meetup.com/Charlotte-PowerShell-Users-Group/events/178572422/">MeetUp</a> page and let us know if we will see you there.</p>
]]></content:encoded></item><item><title>[UPDATED] Verified Effective Exams will Begin Soon</title><link>https://powershell.org/articles/2014-05-24-verified-effective-exams-will-begin-soon-looking-for-early-registrants/</link><guid>https://powershell.org/articles/2014-05-24-verified-effective-exams-will-begin-soon-looking-for-early-registrants/</guid><pubDate>Sat, 24 May 2014 23:21:00 +0000</pubDate><description>&lt;p&gt;Check it out&amp;hellip;&lt;br&gt;
&lt;a href="https://powershell.org/wp-content/uploads/2014/05/getcertificate.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2014/05/getcertificate.png" alt="getcertificate"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="wave-1" class="ps-heading"&gt;Wave 1&lt;a class="ps-heading-anchor" href="#wave-1" 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;We&amp;rsquo;ll be going live with the PowerShell Toolmaker program very soon. Wave 1 will permit our PowerShell Summit N.A. 2014 alumni who registered early and were given a free exam. If you&amp;rsquo;re one of those folks, &lt;strong&gt;and if you would like to be an early registrant, please contact exams at PowerShell.org&lt;/strong&gt;. You will need to have your Summit confirmation code (it was e-mailed to you when you registered, and was printed on your badge; we cannot provide it to you if you&amp;rsquo;ve lost it). &lt;strong&gt;We&amp;rsquo;re looking for a small handful of early registrants to take the exam and help us test the grading systems&lt;/strong&gt;. If you pass, it&amp;rsquo;s &amp;ldquo;real,&amp;rdquo; and you&amp;rsquo;ll get an e-certificate like the one shown here!&lt;br&gt;
How do you know if you got a free exam? There was a slip included with your badge at the Summit. If you weren&amp;rsquo;t paying attention, we&amp;rsquo;ll allow you to try entering your Summit confirmation code as an exam voucher to see if it works. If you can&amp;rsquo;t find your confirmation code, you&amp;rsquo;re out of luck.&lt;br&gt;
Wave 1 is designed to let us test the system and make sure everything is working well, in a small enough scale to manage any problems that arise.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Check it out&hellip;<br><a href="https://powershell.org/wp-content/uploads/2014/05/getcertificate.png"><img src="https://powershell.org/wp-content/uploads/2014/05/getcertificate.png" alt="getcertificate"/></p><h2 id="wave-1" class="ps-heading">Wave 1<a class="ps-heading-anchor" href="#wave-1" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>We&rsquo;ll be going live with the PowerShell Toolmaker program very soon. Wave 1 will permit our PowerShell Summit N.A. 2014 alumni who registered early and were given a free exam. If you&rsquo;re one of those folks,<strong>and if you would like to be an early registrant, please contact exams at PowerShell.org</strong>. You will need to have your Summit confirmation code (it was e-mailed to you when you registered, and was printed on your badge; we cannot provide it to you if you&rsquo;ve lost it).<strong>We&rsquo;re looking for a small handful of early registrants to take the exam and help us test the grading systems</strong>. If you pass, it&rsquo;s &ldquo;real,&rdquo; and you&rsquo;ll get an e-certificate like the one shown here!<br>
How do you know if you got a free exam? There was a slip included with your badge at the Summit. If you weren&rsquo;t paying attention, we&rsquo;ll allow you to try entering your Summit confirmation code as an exam voucher to see if it works. If you can&rsquo;t find your confirmation code, you&rsquo;re out of luck.<br>
Wave 1 is designed to let us test the system and make sure everything is working well, in a small enough scale to manage any problems that arise.</p><h2 id="next-steps" class="ps-heading">Next Steps<a class="ps-heading-anchor" href="#next-steps" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>If you&rsquo;d like to know more about the program, and understand when it may be open to you, please review the<a href="https://powershell.org/?p=15671">VERIFIED EFFECTIVE information page</a>.</p>
]]></content:encoded></item><item><title>Patterns for Implementing a DSC Pull Server Environment</title><link>https://powershell.org/articles/2014-05-23-patterns-for-implementing-a-dsc-pull-server-environment/</link><guid>https://powershell.org/articles/2014-05-23-patterns-for-implementing-a-dsc-pull-server-environment/</guid><pubDate>Fri, 23 May 2014 13:00:25 +0000</pubDate><description>&lt;p&gt;My Patterns for Implementing a DSC Pull Server Environment talk from the PowerShell Summit is now online.&lt;br&gt;
Enjoy!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>My Patterns for Implementing a DSC Pull Server Environment talk from the PowerShell Summit is now online.<br>
Enjoy!</p>
]]></content:encoded></item><item><title>Building Scalable Configurations With DSC</title><link>https://powershell.org/articles/2014-05-22-building-scalable-configurations-with-dsc/</link><guid>https://powershell.org/articles/2014-05-22-building-scalable-configurations-with-dsc/</guid><pubDate>Thu, 22 May 2014 18:30:00 +0000</pubDate><description>&lt;p&gt;My Building Scalable Configurations with DSC talk from the PowerShell Summit is now online.&lt;br&gt;
Enjoy!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>My Building Scalable Configurations with DSC talk from the PowerShell Summit is now online.<br>
Enjoy!</p>
]]></content:encoded></item><item><title>Life and Times of a DSC Resource</title><link>https://powershell.org/articles/2014-05-21-life-and-times-of-a-dsc-resource/</link><guid>https://powershell.org/articles/2014-05-21-life-and-times-of-a-dsc-resource/</guid><pubDate>Thu, 22 May 2014 01:21:50 +0000</pubDate><description>&lt;p&gt;My Life and Times of a DSC Resource talk from the PowerShell Summit is now online.&lt;br&gt;
Enjoy!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>My Life and Times of a DSC Resource talk from the PowerShell Summit is now online.<br>
Enjoy!</p>
]]></content:encoded></item><item><title>Installing PowerShell v5? Be a Little Careful, OK?</title><link>https://powershell.org/articles/2014-05-21-installing-powershell-v5-be-a-little-careful-ok/</link><guid>https://powershell.org/articles/2014-05-21-installing-powershell-v5-be-a-little-careful-ok/</guid><pubDate>Wed, 21 May 2014 17:37:46 +0000</pubDate><description>&lt;p&gt;I&amp;rsquo;m getting a lot of questions from folks, via Twitter and other venues, regarding Windows Management Framework 5.0 - which is where PowerShell v5 comes from. It&amp;rsquo;s awesome that people are installing v5 and kicking the tires - however, please help spread the word:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;v5 &lt;strong&gt;is a preview.&lt;/strong&gt; It isn&amp;rsquo;t done, and it isn&amp;rsquo;t guaranteed bug-free. It shouldn&amp;rsquo;t be installed on production computers until it&amp;rsquo;s officially released.&lt;/li&gt;
&lt;li&gt;v5 doesn&amp;rsquo;t install &amp;lsquo;side by side&amp;rsquo; with v3 or v4. You can&amp;rsquo;t run it with &amp;ldquo;-version 3&amp;rdquo; to &amp;ldquo;downgrade.&amp;rdquo; Now, v5 shouldn&amp;rsquo;t &lt;em&gt;break&lt;/em&gt; anything - something that runs in v3 or v4 should still work fine - but there are no guarantees &lt;strong&gt;as it&amp;rsquo;s a preview and not released code&lt;/strong&gt; at this stage.&lt;/li&gt;
&lt;li&gt;Server software (Exchange, SharePoint, etc) often has a hard dependency on a specific version of PowerShell. You need to look into that before you install v5.&lt;/li&gt;
&lt;li&gt;After installing v5, you might not be able to cleanly uninstall and revert to a prior version.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Generally speaking, v5 should be installed in a test virtual machine at the very least, not on a production computer. It&amp;rsquo;s great to play with it, and you should absolutely log bugs and suggestions to &lt;a href="http://connect.microsoft.com"&gt;http://connect.microsoft.com&lt;/a&gt;.&lt;br&gt;
This situation will be true for &lt;strong&gt;any&lt;/strong&gt; pre-release preview of PowerShell or WMF going forward. &amp;ldquo;Preview&amp;rdquo; is the new Microsoft-speak for &amp;ldquo;beta,&amp;rdquo; and you should treat it as such. Play with it, yes - that&amp;rsquo;s the whole point, and it&amp;rsquo;s how we get a stable, clean release in the end. But play with caution, and never on production computers.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I&rsquo;m getting a lot of questions from folks, via Twitter and other venues, regarding Windows Management Framework 5.0 - which is where PowerShell v5 comes from. It&rsquo;s awesome that people are installing v5 and kicking the tires - however, please help spread the word:</p><ul><li>v5<strong>is a preview.</strong> It isn&rsquo;t done, and it isn&rsquo;t guaranteed bug-free. It shouldn&rsquo;t be installed on production computers until it&rsquo;s officially released.</li><li>v5 doesn&rsquo;t install &lsquo;side by side&rsquo; with v3 or v4. You can&rsquo;t run it with &ldquo;-version 3&rdquo; to &ldquo;downgrade.&rdquo; Now, v5 shouldn&rsquo;t<em>break</em> anything - something that runs in v3 or v4 should still work fine - but there are no guarantees<strong>as it&rsquo;s a preview and not released code</strong> at this stage.</li><li>Server software (Exchange, SharePoint, etc) often has a hard dependency on a specific version of PowerShell. You need to look into that before you install v5.</li><li>After installing v5, you might not be able to cleanly uninstall and revert to a prior version.</li></ul><p>Generally speaking, v5 should be installed in a test virtual machine at the very least, not on a production computer. It&rsquo;s great to play with it, and you should absolutely log bugs and suggestions to<a href="http://connect.microsoft.com">http://connect.microsoft.com</a>.<br>
This situation will be true for<strong>any</strong> pre-release preview of PowerShell or WMF going forward. &ldquo;Preview&rdquo; is the new Microsoft-speak for &ldquo;beta,&rdquo; and you should treat it as such. Play with it, yes - that&rsquo;s the whole point, and it&rsquo;s how we get a stable, clean release in the end. But play with caution, and never on production computers.</p>
]]></content:encoded></item><item><title>Attend a Beta "Advanced PowerShell" Class Live or Remote</title><link>https://powershell.org/articles/2014-05-19-attend-a-beta-advanced-powershell-class-live-or-remote/</link><guid>https://powershell.org/articles/2014-05-19-attend-a-beta-advanced-powershell-class-live-or-remote/</guid><pubDate>Mon, 19 May 2014 16:29:55 +0000</pubDate><description>&lt;p&gt;As you may know, I helped developing the forthcoming Microsoft Official Courseware 10962A class, &amp;ldquo;Advanced Windows PowerShell.&amp;rdquo; It&amp;rsquo;s a 3-day class that includes an overview of DSC, a full day of scripting and toolmaking, a Workflow overview, error handling and debugging, and more. It&amp;rsquo;s meant as a direct follow-on to the 5-day 10961 course. We&amp;rsquo;re scheduling a beta teach through a Microsoft training center in mid-August 2014. It&amp;rsquo;ll be taught by MCT Jason Yoder, who&amp;rsquo;s an excellent trainer (and who attended PowerShell Summit North America 2014 a few weeks ago, so you know he&amp;rsquo;s jiggy with PowerShell).&lt;br&gt;
There will likely be a fee to attend live or remote, as you&amp;rsquo;ll get the complete &amp;ldquo;A&amp;rdquo; rev of the course. If you think you might be interested, go to &lt;a href="http://powershell.hosted.phplist.com/lists/?p=subscribe&amp;amp;id=7"&gt;http://powershell.hosted.phplist.com/lists/?p=subscribe&amp;amp;id=7&lt;/a&gt; and sign up. Once the full class info is online, we&amp;rsquo;ll e-mail you and let you know where to go find it - we won&amp;rsquo;t share your info with anyone else, including the training center.&lt;br&gt;
Do this quickly - the class will likely fill up.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>As you may know, I helped developing the forthcoming Microsoft Official Courseware 10962A class, &ldquo;Advanced Windows PowerShell.&rdquo; It&rsquo;s a 3-day class that includes an overview of DSC, a full day of scripting and toolmaking, a Workflow overview, error handling and debugging, and more. It&rsquo;s meant as a direct follow-on to the 5-day 10961 course. We&rsquo;re scheduling a beta teach through a Microsoft training center in mid-August 2014. It&rsquo;ll be taught by MCT Jason Yoder, who&rsquo;s an excellent trainer (and who attended PowerShell Summit North America 2014 a few weeks ago, so you know he&rsquo;s jiggy with PowerShell).<br>
There will likely be a fee to attend live or remote, as you&rsquo;ll get the complete &ldquo;A&rdquo; rev of the course. If you think you might be interested, go to<a href="http://powershell.hosted.phplist.com/lists/?p=subscribe&amp;id=7">http://powershell.hosted.phplist.com/lists/?p=subscribe&amp;id=7</a> and sign up. Once the full class info is online, we&rsquo;ll e-mail you and let you know where to go find it - we won&rsquo;t share your info with anyone else, including the training center.<br>
Do this quickly - the class will likely fill up.</p>
]]></content:encoded></item><item><title>BETA PowerShell Lab Guide for Classes</title><link>https://powershell.org/articles/2014-05-17-beta-powershell-lab-guide-for-classes/</link><guid>https://powershell.org/articles/2014-05-17-beta-powershell-lab-guide-for-classes/</guid><pubDate>Sat, 17 May 2014 18:59:49 +0000</pubDate><description>&lt;p&gt;I&amp;rsquo;ve been working on a new lab guide for my classes, and thought I&amp;rsquo;d share an early version. Note that this may become unavailable at any point; the final version will go on MoreLunches.com, as the lab guide corresponds largely with &lt;em&gt;Learn Windows PowerShell in a Month of Lunches&lt;/em&gt; and &lt;em&gt;Learn PowerShell Toolmaking in a Month of Lunches&lt;/em&gt;, as well as with several of the free ebooks here on PowerShell.org.&lt;br&gt;
Also note that there is no slide deck. I hate slides and don&amp;rsquo;t use them in class, so I haven&amp;rsquo;t produced any slides. I do use a few diagrams in class (I load them into an iPad app called AirSketch, which &amp;ldquo;broadcasts&amp;rdquo; to my computer&amp;rsquo;s web browser, allowing me to show those images on the screen, and to whiteboard on them as needed), and those diagrams are replicated in the lab guide for students&amp;rsquo; convenience.&lt;br&gt;
This new guide is designed to be more standalone than the ones I&amp;rsquo;ve used in the past. Each lab includes background and syntax reminders, designed so that students don&amp;rsquo;t have to take notes while the instructor is demonstrating things. That way, everyone can focus on the demos. I basically review each lab myself before I start a unit, and then just teach and demo what&amp;rsquo;s covered in the lab. Students then get the lab itself as a reminder, and exercises to cement what they&amp;rsquo;re learning. In many of my classes, this guide is the only thing students have in front of them, and it works well with my teaching style.&lt;br&gt;
At 119 pages, it&amp;rsquo;s a pretty substantial guide - and I have about nine more units to write, plus an additional four I plan to develop in the future.&lt;br&gt;
You can &lt;a href="http://1drv.ms/1lwCYtr"&gt;download the guide in PDF form&lt;/a&gt;. Again, this link may go dead at some point when I&amp;rsquo;m done with the guide, and officially post it on MoreLunches.com. Right now, I&amp;rsquo;m very interested in what you think. It&amp;rsquo;s designed to present very concise summaries of what I teach, not completely replace me, but in some places it&amp;rsquo;s still pretty extensive.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I&rsquo;ve been working on a new lab guide for my classes, and thought I&rsquo;d share an early version. Note that this may become unavailable at any point; the final version will go on MoreLunches.com, as the lab guide corresponds largely with<em>Learn Windows PowerShell in a Month of Lunches</em> and<em>Learn PowerShell Toolmaking in a Month of Lunches</em>, as well as with several of the free ebooks here on PowerShell.org.<br>
Also note that there is no slide deck. I hate slides and don&rsquo;t use them in class, so I haven&rsquo;t produced any slides. I do use a few diagrams in class (I load them into an iPad app called AirSketch, which &ldquo;broadcasts&rdquo; to my computer&rsquo;s web browser, allowing me to show those images on the screen, and to whiteboard on them as needed), and those diagrams are replicated in the lab guide for students&rsquo; convenience.<br>
This new guide is designed to be more standalone than the ones I&rsquo;ve used in the past. Each lab includes background and syntax reminders, designed so that students don&rsquo;t have to take notes while the instructor is demonstrating things. That way, everyone can focus on the demos. I basically review each lab myself before I start a unit, and then just teach and demo what&rsquo;s covered in the lab. Students then get the lab itself as a reminder, and exercises to cement what they&rsquo;re learning. In many of my classes, this guide is the only thing students have in front of them, and it works well with my teaching style.<br>
At 119 pages, it&rsquo;s a pretty substantial guide - and I have about nine more units to write, plus an additional four I plan to develop in the future.<br>
You can<a href="http://1drv.ms/1lwCYtr">download the guide in PDF form</a>. Again, this link may go dead at some point when I&rsquo;m done with the guide, and officially post it on MoreLunches.com. Right now, I&rsquo;m very interested in what you think. It&rsquo;s designed to present very concise summaries of what I teach, not completely replace me, but in some places it&rsquo;s still pretty extensive.</p>
]]></content:encoded></item><item><title>PowerShell Summit N.A. 2014 Session Videos!</title><link>https://powershell.org/articles/2014-05-16-powershell-summit-n-a-2014-session-videos/</link><guid>https://powershell.org/articles/2014-05-16-powershell-summit-n-a-2014-session-videos/</guid><pubDate>Fri, 16 May 2014 21:20:43 +0000</pubDate><description>&lt;p&gt;Aaron Hoover was kind enough to webcam the Summit sessions he attended, and he&amp;rsquo;s posted the videos on YouTube. URLs, from Aaron&amp;rsquo;s channel, are below.&lt;br&gt;
Just Enough Admin - Security in a Post-Snowden World - Jeffrey Snover - PowerShell Summit 2014&lt;/p&gt;
&lt;p&gt;Windows System Internals with PowerShell - Adam Driscoll - PowerShell Summit 2014&lt;/p&gt;
&lt;p&gt;PowerCLI: How to Automate Your VMWare Environment Reports - Matt Griffin - PowerShell Summit 2014&lt;/p&gt;
&lt;p&gt;Parallel Execution with PowerShell - Tome Tanasovski - PowerShell Summit 2014&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Aaron Hoover was kind enough to webcam the Summit sessions he attended, and he&rsquo;s posted the videos on YouTube. URLs, from Aaron&rsquo;s channel, are below.<br>
Just Enough Admin - Security in a Post-Snowden World - Jeffrey Snover - PowerShell Summit 2014</p><p>Windows System Internals with PowerShell - Adam Driscoll - PowerShell Summit 2014</p><p>PowerCLI: How to Automate Your VMWare Environment Reports - Matt Griffin - PowerShell Summit 2014</p><p>Parallel Execution with PowerShell - Tome Tanasovski - PowerShell Summit 2014</p><p>PowerShell for Security Incident Response - Lee Holmes and Joe Bialek - PowerShell Summit 2014</p><p>Leverage Multi-Threading for Speeding Up Your Scripts - Jason Walker - PowerShell Summit 2014</p><p>Advanced PowerShell Eventing Scripting Techniques - Matt Graeber - PowerShell Summit 2014</p><p>Using PowerShell as a Reverse Engineering Tool - Matt Graeber - PowerShell Summit 2014</p><p>On the Job: Putting PowerShell Scheduled Jobs to Work - Jeff Hicks - PowerShell Summit 2014</p><p>The Seven Secrets of CIM - Brian Wilhite - PowerShell Summit 2014</p><p>WSMan Cmdlets - Richard Siddaway - PowerShell Summit 2014</p><p>Networking Administration with PowerShell - Richard Siddaway - PowerShell Summit 2014</p><p>Kerberos Delegation, CredSSP, and Windows PowerShell - Aleksandar Nikolic - PowerShell Summit 2014</p><p>The Joy of Intellisense: Tab Expansion - James O&rsquo;Neill - PowerShell Summit 2014</p><p>Trending and Reporting - Don Jones - PowerShell Summit 2014</p><p>Leveraging Web Services with PowerShell - Trond Hindenes - PowerShell Summit 2014</p><p>Monitoring Using PowerShell - Josh Swenson - PowerShell Summit 2014</p><p>Cmdlet-ize the Registry - Richard Siddaway - PowerShell Summit 2014</p><p>PowerShell Module Design Rules (and When to Bend Them) - Kirk Freiheit - PowerShell Summit 2014</p>
]]></content:encoded></item><item><title>TechEd N.A. 2014 Session Recordings</title><link>https://powershell.org/articles/2014-05-15-teched-n-a-2014-session-recordings/</link><guid>https://powershell.org/articles/2014-05-15-teched-n-a-2014-session-recordings/</guid><pubDate>Thu, 15 May 2014 20:50:50 +0000</pubDate><description>&lt;p&gt;There&amp;rsquo;s some great PowerShell content now online for your viewing pleasure.&lt;br&gt;
Jeffrey Snover and I had a blast doing &amp;ldquo;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B318#fbid="&gt;Windows PowerShell Unplugged&lt;/a&gt;,&amp;rdquo; and I reviewed some best PowerShell practices (and hopefully provided a little inspiration for your career) in &amp;ldquo;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B417#fbid="&gt;Windows PowerShell Best Patterns and Practices: Time to Get Serious.&lt;/a&gt;&amp;rdquo; And the #2 overall session of TechEd? &amp;ldquo;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B417#fbid="&gt;DSC: A Practical Overview&lt;/a&gt;,&amp;rdquo; including a surprise demo (and announcement) from Snover showing DSC running on Linux.&lt;br&gt;
Enjoy!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>There&rsquo;s some great PowerShell content now online for your viewing pleasure.<br>
Jeffrey Snover and I had a blast doing &ldquo;<a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B318#fbid=">Windows PowerShell Unplugged</a>,&rdquo; and I reviewed some best PowerShell practices (and hopefully provided a little inspiration for your career) in &ldquo;<a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B417#fbid=">Windows PowerShell Best Patterns and Practices: Time to Get Serious.</a>&rdquo; And the #2 overall session of TechEd? &ldquo;<a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B417#fbid=">DSC: A Practical Overview</a>,&rdquo; including a surprise demo (and announcement) from Snover showing DSC running on Linux.<br>
Enjoy!</p>
]]></content:encoded></item><item><title>Why Puppet vs. DSC Isn't Even a Thing</title><link>https://powershell.org/articles/2014-05-14-why-puppet-vs-dsc-isnt-even-a-thing/</link><guid>https://powershell.org/articles/2014-05-14-why-puppet-vs-dsc-isnt-even-a-thing/</guid><pubDate>Wed, 14 May 2014 13:06:15 +0000</pubDate><description>&lt;p&gt;After all the DSC-related excitement this week, there have been a few online and Twitter-based discussions including Chef, Puppet, and similar solutions. Many of these discussions start off with a tone I suppose I should be used to: fanboy dissing. &amp;ldquo;Puppet already does this and is cross-platform! Why should I bother with DSC?&amp;rdquo; Those people, sadly, miss the point about as entirely as it&amp;rsquo;s possible to do.&lt;/p&gt;
&lt;h2 id="point-1-coolness" class="ps-heading"&gt;Point 1: Coolness&lt;a class="ps-heading-anchor" href="#point-1-coolness" 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;First, what Microsoft has accomplished with DSC is &lt;strong&gt;cool.&lt;/strong&gt; Star Wars Episode V was also cool. These facts do not prevent previous things - Puppet/Chef/etc and Episode IV - from being cool as well. Something new being cool does not make other things less cool. This shouldn&amp;rsquo;t be a discussion of, &amp;ldquo;Puppet did this first, so nothing else can possibly be interesting at the same time.&amp;rdquo; As &lt;em&gt;IT professionals,&lt;/em&gt; we should be looking at &lt;em&gt;everything&lt;/em&gt; with an eye toward what it does, and what new ideas it might offer than can be applied to existing approaches.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>After all the DSC-related excitement this week, there have been a few online and Twitter-based discussions including Chef, Puppet, and similar solutions. Many of these discussions start off with a tone I suppose I should be used to: fanboy dissing. &ldquo;Puppet already does this and is cross-platform! Why should I bother with DSC?&rdquo; Those people, sadly, miss the point about as entirely as it&rsquo;s possible to do.</p><h2 id="point-1-coolness" class="ps-heading">Point 1: Coolness<a class="ps-heading-anchor" href="#point-1-coolness" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>First, what Microsoft has accomplished with DSC is<strong>cool.</strong> Star Wars Episode V was also cool. These facts do not prevent previous things - Puppet/Chef/etc and Episode IV - from being cool as well. Something new being cool does not make other things less cool. This shouldn&rsquo;t be a discussion of, &ldquo;Puppet did this first, so nothing else can possibly be interesting at the same time.&rdquo; As<em>IT professionals,</em> we should be looking at<em>everything</em> with an eye toward what it does, and what new ideas it might offer than can be applied to existing approaches.</p><h2 id="point-2-switching" class="ps-heading">Point 2: Switching<a class="ps-heading-anchor" href="#point-2-switching" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Have you seen the magazine ads suggesting you ditch Puppet and start using DSC? No, you have not - and you will not. If Puppet/Chef/etc is meeting your needs, keep using it. The fact that Microsoft has introduced a technology that accomplishes similar things (make no mistake, they&rsquo;re not the same and aren&rsquo;t intended to be), doesn&rsquo;t mean Microsoft is trying to convince you to change.<br>
I know where people get confused on this, because in the past that&rsquo;s exactly what Microsoft intended to do. They&rsquo;re not, this time. And I&rsquo;ll explain why in a minute.</p><h2 id="point-3-dsc-on-linux" class="ps-heading">Point 3: DSC on Linux<a class="ps-heading-anchor" href="#point-3-dsc-on-linux" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Snover demonstrated a DSC Local Configuration Manager running on Linux, consuming a standard DSC MOF file, being used to set up an Apache website on the server. The underlying DSC resources were native Linux code.<br>
This is not an attempt to convince Linux people to switch to Windows, nor is it an attempt to convince them to use DSC. Saying so is like saying, &ldquo;Microsoft made PowerShell accept forward slashes as path separators in an attempt to convert Linux people&hellip;.<em>but we&rsquo;re too smart for that, hahahahah!&rdquo;</em> It&rsquo;s idiotic. Microsoft knows you&rsquo;re not going to suddenly break down and switch operating systems. They may be a giant corporation that sometimes makes silly moves, but they&rsquo;re not<em>dumb.</em><br>
No, DSC on Linux is for<em>Windows admins</em> who choose to use DSC, and who want to extend that skill set to other platforms they have to manage. People who aren&rsquo;t, in other words, faced with a &ldquo;switch&rdquo; decision.</p><h2 id="point-4-puppetchefetc-should-use-dsc" class="ps-heading">Point 4: Puppet/Chef/etc Should Use DSC<a class="ps-heading-anchor" href="#point-4-puppetchefetc-should-use-dsc" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Linux is, in many many ways, a more simplistic OS than Windows. And I mean that in a very good way, not as a dig. Most config information comes form text files, and text files are ridiculously easy to edit. Getting a solution like Puppet to work on Linux is, form a purely technical perspective, pretty straightforward. Windows, on the other hand, is built around an enormous set of disparate APIs, meaning getting something like Chef/DSC/whatever working on Windows is not only harder, it&rsquo;s essentially a never-ending task.<br>
Microsoft is pouring time and money into creating DSC resources that can, through a very simple and consistent interface, configure tons of the OS. The coverage provided by DSC resources will continue to grow - exponentially, I suspect. That means Microsoft is doing a lot of work that you don&rsquo;t have to.<br>
Even if you&rsquo;re using Puppet/Chef/etc instead of DSC, you can still piggyback on all the<em>completely open and human-readable code</em> that actually makes DSC work. Your recipes and modules can simply call those DSC resources directly. You&rsquo;re not &ldquo;using&rdquo; DSC, but you&rsquo;re snarfing its code, so that you don&rsquo;t have to re-invent that wheel yourself. This should make Puppet/Chef people super-happy, because their lives got easier. Yes, you&rsquo;ll doubtless have to write some custom stuff still, but &ldquo;save me
some
work&rdquo; should always be a good thing.</p><h2 id="point-5-tool-vs-platform" class="ps-heading">Point 5: Tool vs. Platform<a class="ps-heading-anchor" href="#point-5-tool-vs-platform" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Another thing that sidetracks these discussions is folks not understanding that Puppet/Chef/etc each provide a complete solution stack. They are a management console, they are a domain-specific language, and they are a platform-level implementation. When you adopt Puppet, you adopt it from top to bottom.<br>
DSC isn&rsquo;t like that.<br>
DSC only provides the platform-level implementation. It doesn&rsquo;t come with the management tools you actually need in a large environment, or even in many medium-sized environments. I completely expect tools like System Center Configuration Manager, or something, to provide the management-level tooling on top of DSC at some point - but we aren&rsquo;t discussing System Center.<br>
So arguing &ldquo;Puppet vs. DSC&rdquo; is a lot like arguing &ldquo;Toyota vs. 6-cylinder engine.&rdquo; The argument doesn&rsquo;t make sense. Yes, at the end of the day, Puppet/Chef/etc and DSC are meant to accomplish every similar things, but DSC is only a piece of the picture, which leads to the most important point.</p><h2 id="point-6-microsoft-did-something-neat" class="ps-heading">Point 6: Microsoft Did Something Neat<a class="ps-heading-anchor" href="#point-6-microsoft-did-something-neat" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>You can&rsquo;t take your Puppet scripts and push them to a Chef agent, nor can you do the reverse. Puppet/Chef/etc are, as I mentioned, fully integrated stacks - and they&rsquo;re proprietary stacks. &ldquo;Proprietary&rdquo; is not the same as &ldquo;close-sourced;&rdquo; and I realize that the languages used by these products aren&rsquo;t specifically proprietary. But the Puppet agent only knows how to handle Puppet scripts, and the Chef agent only knows how to read Chef scripts. That&rsquo;s
not
a dig at those products - being an integrated, proprietary stack isn&rsquo;t a bad thing at all.<br>
But it&rsquo;s interesting that Microsoft took a different approach. Interesting in part because<em>they&rsquo;re</em> usually the ones making fully-integrated stacks, where you can only use their technology if you fully embrace their entire product line. This time,<em>Microsoft bucked the trend</em> and didn&rsquo;t go fully-integrated, proprietary stack. Microsoft did this, and the simple fact that they did is important, even if you don&rsquo;t want to use<em>any</em> of their products.<br>
From the top-down, that is from the management side down, Microsoft isn&rsquo;t forcing you to use PowerShell. They&rsquo;re not forcing you to use Microsoft technology at all, in fact. The configuration file that goes to a managed node is a static MOF file. That&rsquo;s a plain-text file, as in &ldquo;Management Object Format,&rdquo; as in developed by the Distributed Management Task Force (DMTF). A vendor-neutral standard, in other words.<br>
See, Microsoft<em>isn&rsquo;t</em> pushing DSC as a fully integrated stack. DSC is just the bottom layer that accepts a configuration and implements it. Puppet Labs could absolutely design their product to turn Puppet scripts into the MOF file that DSC needs. You&rsquo;d be able to completely leverage<em>the OS-native, built-in configuration agent</em> and all its resources, right from Puppet.<br>
Frankly, de-coupling the administrative tooling from the underlying API should make people<em>happy.</em> If we&rsquo;re having a really professional, non-fanboy discussion about declarative configuration, I think you have to admit that Microsoft has kinda done the right thing. In a perfect world, the Puppet/Chef/etc administrative tools would let you write your configuration scripts in their domain-specific language, and then compile those to a MOF. Everyone&rsquo;s agents would accept the same kind of MOF, and execute the MOF using local, native resources. That approach means<em>any</em> OS could be managed by<em>any</em> tool.<em>That&rsquo;s</em> cross-platform. You&rsquo;d be free to switch tools anytime you wanted, because the underlying agents would all accept the same incoming language - MOF.<br>
I&rsquo;m not saying Puppet/Chef/etc<em>should</em> do that. But if you&rsquo;re going to make an argument about cross-platform and vendor-agnostic tooling, Microsoft&rsquo;s<em>approach</em> is the right one. They&rsquo;ve implemented a service that accepts<em>vendor-neutral configurations</em> (MOF), and implements them using local, native resources. You can swap out the tooling layer anytime you want to. You don&rsquo;t need to write PowerShell; you just need to produce a MOF.</p><h2 id="at-the-end-of-the-day" class="ps-heading">At the End of the Day<a class="ps-heading-anchor" href="#at-the-end-of-the-day" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I think the folks behind Puppet/Chef/etc totally &ldquo;get&rdquo; all this. I think you&rsquo;re probably going to see them taking steps to better leverage the work MS is doing on DSC, simply because it saves<em>them,</em> and their users, work. And I don&rsquo;t think you&rsquo;re going to see Microsoft suggesting you ditch Puppet in favor of DSC. That&rsquo;s a complete non-argument, and nobody at Microsoft even understands why people thing the company wants that.<br>
I fully recognize that there&rsquo;s a lot of &ldquo;Microsoft vs. Linux&rdquo; animosity in the world - the so-called &ldquo;OS religions.&rdquo; I&rsquo;ve never understood that, and I certainly am not trying to convince anyone of the relative worth of one OS over another. PowerShell.org - a community dedicated to a Microsoft product - runs on a CentOS virtual machine, which should tell you something about my total lack of loyalty when it comes to choosing the right tool for a job. If you&rsquo;re similarly &ldquo;non-religious&rdquo; about operating systems, I think DSC is worth taking a look at<em>just to take a look at it.</em> What&rsquo;s it do differently? How can you leverage that in your existing world? Are there any approaches that might be worth considering?<br>
Part of my frustration about the whole &ldquo;Puppet vs DSC&rdquo; meme is that it smacks of, &ldquo;my toys are shinier than your toys,&rdquo; which is just&hellip; well, literally childish. And it worries me that people are missing some of the above, very important, points - mainly, that Microsoft is trying really damn hard to play nicely with the other kids in the sandbox for a change.<em>Encourage</em> that attitude, because it benefits everyone.</p><h2 id="once-more" class="ps-heading">Once More&hellip;<a class="ps-heading-anchor" href="#once-more" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>And again, I don&rsquo;t think Microsoft is trying to convince you to use DSC, or any other MS product, here. I&rsquo;m certainly not trying to do so. I think DSC presents an opportunity for folks who already have a declarative configuration management system, strictly in terms of saving you some work in custom module authoring. And I think for folks that<em>don&rsquo;t</em> have a declarative configuration management solution, and who already have an investment in Microsoft&rsquo;s platform, DSC is going to be an exceptionally critical technology to master. That doesn&rsquo;t in any way diminish the accomplishment of the folks behind Puppet/Chef/etc. In fact, if nothing else, it further validates those products&rsquo; goals. And I think it&rsquo;s massively interesting that Microsoft took an approach that is open to be used by those other products, rather than trying to make their own top-to-bottom stack. It&rsquo;s a shift in Microsoft&rsquo;s strategic thinking, if nothing else, and an explicit acknowledgement that the world is bigger than Redmond.<br>
Let&rsquo;s at least &ldquo;cheers&rdquo; for that shift in attitude.</p>
]]></content:encoded></item><item><title>My TechEd 2014 "Patterns and Practices" Example Scripts</title><link>https://powershell.org/articles/2014-05-11-my-teched-2014-patterns-and-practices-example-scripts/</link><guid>https://powershell.org/articles/2014-05-11-my-teched-2014-patterns-and-practices-example-scripts/</guid><pubDate>Sun, 11 May 2014 14:23:26 +0000</pubDate><description>&lt;p&gt;I&amp;rsquo;ll be using these examples in my TechEd 2014 session on PowerShell patterns and practices. They won&amp;rsquo;t make much sense, perhaps, until you see the session (live, or in the recordings - and I believe this session is one of the &amp;ldquo;Taste of TechEd&amp;rdquo; ones that will be live-streamed), but here are the scripts.&lt;br&gt;
&lt;a href="https://powershell.org/wp-content/uploads/2014/05/TechEd-NA-2014-Patterns-Examples.zip"&gt;TechEd-NA-2014-Patterns-Examples&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I&rsquo;ll be using these examples in my TechEd 2014 session on PowerShell patterns and practices. They won&rsquo;t make much sense, perhaps, until you see the session (live, or in the recordings - and I believe this session is one of the &ldquo;Taste of TechEd&rdquo; ones that will be live-streamed), but here are the scripts.<br><a href="https://powershell.org/wp-content/uploads/2014/05/TechEd-NA-2014-Patterns-Examples.zip">TechEd-NA-2014-Patterns-Examples</a></p>
]]></content:encoded></item><item><title>PhillyPoSH 05/01/2014 meeting summary and presentation materials</title><link>https://powershell.org/articles/2014-05-10-phillyposh-05012014-meeting-summary-and-presentation-materials/</link><guid>https://powershell.org/articles/2014-05-10-phillyposh-05012014-meeting-summary-and-presentation-materials/</guid><pubDate>Sat, 10 May 2014 22:21:17 +0000</pubDate><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://learn-powershell.net/author/boeprox/"&gt;Boe Prox&lt;/a&gt; gave a presentation entitled “Managing WSUS with Windows PowerShell”. During his talked Boe went over the various ways you can orchestrate &lt;a href="http://technet.microsoft.com/en-us/windowsserver/bb332157.aspx"&gt;WSUS&lt;/a&gt; using PowerShell. A copy of his &lt;a href="https://powershell.org/wp-content/uploads/2014/05/PhillyPosh-2014_05_01-BoeProx_WSUS.zip"&gt;presentation materials are available here&lt;/a&gt;.
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We then had a group discussion around:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://paglia.org/"&gt;Lido Paglia&lt;/a&gt; and &lt;a href="http://mellositmusings.com/"&gt;John Mello&lt;/a&gt; discussed their experiences and what they learned at the &lt;a href="https://powershell.org/community-events/summit/powershell-summit-north-america/"&gt;2014 PowerShell Summit&lt;/a&gt;,,&lt;/li&gt;
&lt;li&gt;The differences between how Active Directory Users and Computers displays groups when compared to &lt;a href="http://technet.microsoft.com/en-us/library/ee617241.aspx"&gt;Get-Aduser&lt;/a&gt; in regards to primary group membership. In PowerShell the primary group is only returned in the &lt;em&gt;PrimaryGroup&lt;/em&gt; property and all other groups are returned in the &lt;em&gt;MemberOf&lt;/em&gt; property, while ADUC will show every group the user is a member of.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A &lt;a href="http://youtu.be/k4geOLcrQec"&gt;recording of this meeting&lt;/a&gt; has been posted to our &lt;a href="http://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg"&gt;YouTube channel&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<ul><li><a href="http://learn-powershell.net/author/boeprox/">Boe Prox</a> gave a presentation entitled “Managing WSUS with Windows PowerShell”. During his talked Boe went over the various ways you can orchestrate<a href="http://technet.microsoft.com/en-us/windowsserver/bb332157.aspx">WSUS</a> using PowerShell. A copy of his<a href="https://powershell.org/wp-content/uploads/2014/05/PhillyPosh-2014_05_01-BoeProx_WSUS.zip">presentation materials are available here</a>.<ul><li><p>We then had a group discussion around:</p><ul><li><a href="http://paglia.org/">Lido Paglia</a> and <a href="http://mellositmusings.com/">John Mello</a> discussed their experiences and what they learned at the <a href="https://powershell.org/community-events/summit/powershell-summit-north-america/">2014 PowerShell Summit</a>,,</li><li>The differences between how Active Directory Users and Computers displays groups when compared to<a href="http://technet.microsoft.com/en-us/library/ee617241.aspx">Get-Aduser</a> in regards to primary group membership. In PowerShell the primary group is only returned in the<em>PrimaryGroup</em> property and all other groups are returned in the<em>MemberOf</em> property, while ADUC will show every group the user is a member of.</li></ul></li><li><p>A<a href="http://youtu.be/k4geOLcrQec">recording of this meeting</a> has been posted to our<a href="http://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg">YouTube channel</a></p></li></ul></li></ul>
]]></content:encoded></item></channel></rss>