&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 August 2013 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2013/08/</link><description>Recent content in Articles from August 2013 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2013/08/index.xml" rel="self" type="application/rss+xml"/><item><title>Regular Expressions are a -replace's best friend</title><link>https://powershell.org/articles/2013-08-29-regular-expressions-are-a-replaces-best-friend/</link><guid>https://powershell.org/articles/2013-08-29-regular-expressions-are-a-replaces-best-friend/</guid><pubDate>Thu, 29 Aug 2013 17:31:13 +0000</pubDate><description>&lt;p&gt;Are you familiar with PowerShell&amp;rsquo;s -replace operator?&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;John Jones&amp;quot; -replace &amp;quot;Jones&amp;quot;,&amp;quot;Smith&amp;quot; &lt;/code&gt;Most folks are aware of it, and rely on it for straightforward string replacements like this one. But not very many people know that -replace also does some amazing stuff using regular expressions.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;192.168.15.12,192.168.22.8&amp;quot; -replace &amp;quot;\.\d{2}\.&amp;quot;,&amp;quot;10&amp;quot; &lt;/code&gt;That&amp;rsquo;d change the input string to &amp;ldquo;192.168.10.12,192.168.10.8,&amp;rdquo; replacing all occurrences of two digits, between periods, to 10. The 12 would be skipped because it isn&amp;rsquo;t followed by a period, as specified in the pattern. Note that &lt;em&gt;all&lt;/em&gt; occurrences are replaced, in keeping with the usual operation of -replace.&lt;br&gt;
The operator can also do capturing expressions, and this is where it gets really neat-o.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Are you familiar with PowerShell&rsquo;s -replace operator?</p><p><code>"John Jones" -replace "Jones","Smith"</code>Most folks are aware of it, and rely on it for straightforward string replacements like this one. But not very many people know that -replace also does some amazing stuff using regular expressions.</p><p><code>"192.168.15.12,192.168.22.8" -replace "\.\d{2}\.","10"</code>That&rsquo;d change the input string to &ldquo;192.168.10.12,192.168.10.8,&rdquo; replacing all occurrences of two digits, between periods, to 10. The 12 would be skipped because it isn&rsquo;t followed by a period, as specified in the pattern. Note that <em>all</em> occurrences are replaced, in keeping with the usual operation of -replace.<br>
The operator can also do capturing expressions, and this is where it gets really neat-o.</p><p><code>"Don Jones" -replace "([a-z]+)\s([a-z]+)",'$2, $1'</code>Here, I&rsquo;ve specified two capturing expressions in parentheses, with a space character between them. PowerShell will capture the first to $1, and the second to $2. Those aren&rsquo;t actually variables, which is important. In my replacement string, I put $2 first, followed by a comma, a space, and $1. The resulting string will be &ldquo;Jones, Don&rdquo;. It&rsquo;s important that my replacement string be in single quotes. In double quotes, the shell will try and treat $1 and $2 as variables, instead of using them as captured regex placeholders. I kinda wish they&rsquo;d used something other than a $ for the captured placeholders, so that they didn&rsquo;t look like variables, but the syntax is in keeping with regex standards.<br>
I think it&rsquo;s cool to see all the places a regex can be put to use. The -split operator also supports regex syntax as a way of specifying the separator that will be used to break a string into components, so you&rsquo;re not limited to splitting just on a single character like a comma.<br>
Apart from the well-known -match operator and the Select-String command, where else have you used a regex in PowerShell?</p>
]]></content:encoded></item><item><title>PowerShell Great Debate: "Fixing" Output</title><link>https://powershell.org/articles/2013-08-27-powershell-great-debate-fixing-output/</link><guid>https://powershell.org/articles/2013-08-27-powershell-great-debate-fixing-output/</guid><pubDate>Tue, 27 Aug 2013 14:11:31 +0000</pubDate><description>&lt;p&gt;When should a script (or more likely, function) output raw data, and when should it &amp;ldquo;massage&amp;rdquo; its output?&lt;br&gt;
The classic example is something like disk space. You&amp;rsquo;re querying WMI, and it&amp;rsquo;s giving you disk space in bytes. Nobody cares about bytes. Should your function output bytes anyway, or output megabytes or gigabytes?&lt;br&gt;
If you output raw data, how would you expect a user to get a more-useful version? Would you expect someone running your command to use Select-Object on their own to do the math, or would you perhaps provide a default formatting view (a la what Get-Process does) that manages the math?&lt;br&gt;
The &amp;ldquo;Microsoft Way&amp;rdquo; is to use a default view - again, it&amp;rsquo;s what Get-Process does. But views are separate files, and they&amp;rsquo;re only really practical (many say) when they&amp;rsquo;re part of a module that can auto-load them.&lt;br&gt;
What do you think?&lt;br&gt;
[boilerplate greatdebate]&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>When should a script (or more likely, function) output raw data, and when should it &ldquo;massage&rdquo; its output?<br>
The classic example is something like disk space. You&rsquo;re querying WMI, and it&rsquo;s giving you disk space in bytes. Nobody cares about bytes. Should your function output bytes anyway, or output megabytes or gigabytes?<br>
If you output raw data, how would you expect a user to get a more-useful version? Would you expect someone running your command to use Select-Object on their own to do the math, or would you perhaps provide a default formatting view (a la what Get-Process does) that manages the math?<br>
The &ldquo;Microsoft Way&rdquo; is to use a default view - again, it&rsquo;s what Get-Process does. But views are separate files, and they&rsquo;re only really practical (many say) when they&rsquo;re part of a module that can auto-load them.<br>
What do you think?<br>
[boilerplate greatdebate]</p>
]]></content:encoded></item><item><title>PowerShell.org's Azure Journey, Part 4: Incoming Advice and Fun Facts</title><link>https://powershell.org/articles/2013-08-23-powershell-orgs-azure-journey-part-4-incoming-advice-and-fun-facts/</link><guid>https://powershell.org/articles/2013-08-23-powershell-orgs-azure-journey-part-4-incoming-advice-and-fun-facts/</guid><pubDate>Fri, 23 Aug 2013 14:40:43 +0000</pubDate><description>&lt;p&gt;Had an opportunity to speak with some folks on the Azure team yesterday - Mark Russinovich was kind enough to make a contact for me.&lt;br&gt;
First of all, fun fact: Azure only charges you for &lt;em&gt;used pages&lt;/em&gt; in VHDs. That is, if you create a 100GB VHD and load 1GB of data on it, you&amp;rsquo;re paying for 1GB of data. Very clever. So it&amp;rsquo;s charging you as if it was a dynamically expanding VHD, but of course it&amp;rsquo;s a fixed VHD with all of the related performance improvements. Nice.&lt;br&gt;
Second, they basically confirmed something I&amp;rsquo;d suspected. Azure&amp;rsquo;s &amp;ldquo;website model&amp;rdquo; tends to appeal more to smaller businesses or personal Web sites; most &amp;ldquo;serious&amp;rdquo; players (my word) are using the IaaS model, meaning they&amp;rsquo;re hosting VMs in the cloud, not just hosting a Web site. Having a full VM under your control obviously has advantages in terms of management, along with the ability to run things like in-memory caching software, load additional Web extensions, and so on. IaaS is absolutely the right model for PowerShell.org for many of those reasons.&lt;br&gt;
That said, they also confirmed that the Web site model and the IaaS model cost about the same, at least as you get started. So it&amp;rsquo;s really - for a smaller Web site - a matter of what you want to do. Again, there are specifics about the IaaS model that work well for us, so that&amp;rsquo;s what we&amp;rsquo;re looking to do.&lt;br&gt;
Azure also costs about the same, in an apples-to-apples comparison, as Amazon Web Services. That&amp;rsquo;s probably somewhat deliberate on Microsoft&amp;rsquo;s part, but Azure has advantages. For one, their virtualization layer has been approved by the various Microsoft product teams, so if you&amp;rsquo;re running SharePoint or SQL Server in an Azure VM, the team will support you. Not the case with AWS. Also, I frankly found Azure&amp;rsquo;s presentation of the costs easier to grok.&lt;br&gt;
Fifth (I love numbered lists, sorry), I confirmed that the IaaS option charges you for (a) the VM&amp;rsquo;s you&amp;rsquo;re running, by the minute; (b) the storage used by all VM VHDs&amp;rsquo; used pages, and (c) outbound bandwidth. This can potentially make IaaS more expensive than the &amp;ldquo;website&amp;rdquo; model because Azure won&amp;rsquo;t spin down an IaaS VM, so you run 24x7 unless you&amp;rsquo;re manually deallocating. With a website, Azure only spins up worker processes when they&amp;rsquo;re needed, so your site isn&amp;rsquo;t &amp;ldquo;running&amp;rdquo; 24x7, so you might pay less if it&amp;rsquo;s not being &amp;ldquo;hit&amp;rdquo; 24x7. Again, though, the website model offers us less control and flexibility.&lt;br&gt;
Just thought you&amp;rsquo;d enjoy some of those details!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Had an opportunity to speak with some folks on the Azure team yesterday - Mark Russinovich was kind enough to make a contact for me.<br>
First of all, fun fact: Azure only charges you for <em>used pages</em> in VHDs. That is, if you create a 100GB VHD and load 1GB of data on it, you&rsquo;re paying for 1GB of data. Very clever. So it&rsquo;s charging you as if it was a dynamically expanding VHD, but of course it&rsquo;s a fixed VHD with all of the related performance improvements. Nice.<br>
Second, they basically confirmed something I&rsquo;d suspected. Azure&rsquo;s &ldquo;website model&rdquo; tends to appeal more to smaller businesses or personal Web sites; most &ldquo;serious&rdquo; players (my word) are using the IaaS model, meaning they&rsquo;re hosting VMs in the cloud, not just hosting a Web site. Having a full VM under your control obviously has advantages in terms of management, along with the ability to run things like in-memory caching software, load additional Web extensions, and so on. IaaS is absolutely the right model for PowerShell.org for many of those reasons.<br>
That said, they also confirmed that the Web site model and the IaaS model cost about the same, at least as you get started. So it&rsquo;s really - for a smaller Web site - a matter of what you want to do. Again, there are specifics about the IaaS model that work well for us, so that&rsquo;s what we&rsquo;re looking to do.<br>
Azure also costs about the same, in an apples-to-apples comparison, as Amazon Web Services. That&rsquo;s probably somewhat deliberate on Microsoft&rsquo;s part, but Azure has advantages. For one, their virtualization layer has been approved by the various Microsoft product teams, so if you&rsquo;re running SharePoint or SQL Server in an Azure VM, the team will support you. Not the case with AWS. Also, I frankly found Azure&rsquo;s presentation of the costs easier to grok.<br>
Fifth (I love numbered lists, sorry), I confirmed that the IaaS option charges you for (a) the VM&rsquo;s you&rsquo;re running, by the minute; (b) the storage used by all VM VHDs&rsquo; used pages, and (c) outbound bandwidth. This can potentially make IaaS more expensive than the &ldquo;website&rdquo; model because Azure won&rsquo;t spin down an IaaS VM, so you run 24x7 unless you&rsquo;re manually deallocating. With a website, Azure only spins up worker processes when they&rsquo;re needed, so your site isn&rsquo;t &ldquo;running&rdquo; 24x7, so you might pay less if it&rsquo;s not being &ldquo;hit&rdquo; 24x7. Again, though, the website model offers us less control and flexibility.<br>
Just thought you&rsquo;d enjoy some of those details!</p>
]]></content:encoded></item><item><title>PowerShell.org's Azure Journey, Part 3: Load Testing [UPDATED]</title><link>https://powershell.org/articles/2013-08-21-powershell-orgs-azure-journey-part-3-load-testing/</link><guid>https://powershell.org/articles/2013-08-21-powershell-orgs-azure-journey-part-3-load-testing/</guid><pubDate>Wed, 21 Aug 2013 17:43:58 +0000</pubDate><description>&lt;p&gt;So, I&amp;rsquo;ve gotten a two-VM version of PowerShell.org running in Azure. Yay, me! My *nix skills are unaccountably rusty (go fig), but it didn&amp;rsquo;t take too long. Restoring the WordPress installation was the toughest, as a number of settings had to be tweaked since the site is no longer under the same URL (the  test site that is).&lt;/p&gt;
&lt;h2 id="baseline" class="ps-heading"&gt;Baseline&lt;a class="ps-heading-anchor" href="#baseline" 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 ran a load test against the existing production site yesterday; you can view the results at &lt;a href="http://loadimpact.com/load-test/powershell.org-1aa960e59c5972af12898b745de9ec49"&gt;http://loadimpact.com/load-test/powershell.org-1aa960e59c5972af12898b745de9ec49&lt;/a&gt;. This simulated a 50-person concurrent load from three US locations and on UK location, which approximates our real-world traffic. The results are what they are; we&amp;rsquo;re looking for the delta between these and the Azure-based system. In this test, the green line is the number of concurrent connections, and the blue is the time it took each page to load. The test ran for 10 minutes total, with each simulated user hitting three different pages on the site (home page, a forums topic, and a blog post).&lt;br&gt;
A key fact is that the site currently runs under a shared hosting plan; I don&amp;rsquo;t have any details on how much RAM, how much CPU, or what kind of bandwidth exists for the site. It&amp;rsquo;s also important to note that the production Web site uses a Content Delivery Network, or CDN, which offloads a good amount of traffic from the site proper. Because that costs, we didn&amp;rsquo;t implement a CDN for the test site. I&amp;rsquo;d therefore expect it to be somewhat slower.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>So, I&rsquo;ve gotten a two-VM version of PowerShell.org running in Azure. Yay, me! My *nix skills are unaccountably rusty (go fig), but it didn&rsquo;t take too long. Restoring the WordPress installation was the toughest, as a number of settings had to be tweaked since the site is no longer under the same URL (the  test site that is).</p><h2 id="baseline" class="ps-heading">Baseline<a class="ps-heading-anchor" href="#baseline" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I ran a load test against the existing production site yesterday; you can view the results at <a href="http://loadimpact.com/load-test/powershell.org-1aa960e59c5972af12898b745de9ec49">http://loadimpact.com/load-test/powershell.org-1aa960e59c5972af12898b745de9ec49</a>. This simulated a 50-person concurrent load from three US locations and on UK location, which approximates our real-world traffic. The results are what they are; we&rsquo;re looking for the delta between these and the Azure-based system. In this test, the green line is the number of concurrent connections, and the blue is the time it took each page to load. The test ran for 10 minutes total, with each simulated user hitting three different pages on the site (home page, a forums topic, and a blog post).<br>
A key fact is that the site currently runs under a shared hosting plan; I don&rsquo;t have any details on how much RAM, how much CPU, or what kind of bandwidth exists for the site. It&rsquo;s also important to note that the production Web site uses a Content Delivery Network, or CDN, which offloads a good amount of traffic from the site proper. Because that costs, we didn&rsquo;t implement a CDN for the test site. I&rsquo;d therefore expect it to be somewhat slower.</p><h2 id="azure-1-xsxs" class="ps-heading">Azure 1: XS+XS<a class="ps-heading-anchor" href="#azure-1-xsxs" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>The first Azure test is at <a href="http://loadimpact.com/load-test/powershellorg.cloudapp.net-715a0a249934417d3d3b51dd6109ca86">http://loadimpact.com/load-test/powershellorg.cloudapp.net-715a0a249934417d3d3b51dd6109ca86</a>. This uses an extra-small instance for both the Web server and the database server (separate VMs; that reflects the fact that the current site runs the DB on a separate shared server). As you can see, the results weren&rsquo;t promising. By around 40 users, page load times exceeded 3 minutes, at which point they started timing out. So the test clearly overwhelmed the instance. That wasn&rsquo;t unexpected; an XS instance runs on a shared core with 768MB of RAM. That ain&rsquo;t much. I think it&rsquo;s also powered by a 9-volt battery. But I wanted a baseline; XS instances are super-cheap.<br>
(As an aside, scaling out the Web tier of PowerShell.org isn&rsquo;t trivial, due mainly to the presence of user uploads. We&rsquo;d need to make some tweaks to have all uploads sent to, and downloaded from, a single server; if we just scale-out by load-balancing in a second Web server, user-uploaded content won&rsquo;t work correctly. Also, doubling the instance size - e.g., from XS to S - costs the same as adding a second XS instance. Scale-out isn&rsquo;t off the table, but since it&rsquo;s more complicated to set up, I&rsquo;m not testing it right now.)</p><h2 id="azure-2-sxs" class="ps-heading">Azure 2: S+XS<a class="ps-heading-anchor" href="#azure-2-sxs" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>The third test moved the Web server to a Small instance, which offers a dedicated core and 1.75GB of RAM. The DB server remained at an XS instance size. It was super-cool that you can upsize the instances whenever you want. You pay by the minute based on instance size, and the Azure Price Calculator rolls that up into a monthly estimate based on 24x7 usage. One thing I&rsquo;ve learned is that when the Azure Web console says it&rsquo;s done with something, like starting a VM, you really still need to wait a few minutes before all the bits and bobs are in place to make the Web site work. Another PITA is that, when you shut down a VM, you lose both your public IP (no problem, since they handle DNS for you) and private IP (a bit of a pain since there&rsquo;s no DNS for it, so I had to re-point the Web server at the database server&rsquo;s new private IP).<br>
(As another aside, Azure also offers the option of just moving the Web site and the database into the cloud, using PaaS rather than IaaS. We get to select the kind of instance our site runs on, but it&rsquo;s potentially shared with other sites. MySQL gets outsourced to ClearDB. There&rsquo;s some more complexity in that model from the perspective of getting the site working, and having our own VMs gives us some additional performance-improving abilities, like in-memory opcode caching. Either model costs about the same, so we&rsquo;re playing with the VM model at present.)<br>
Anyway, the third test results are at<a href="http://loadimpact.com/load-test/powershellorg.cloudapp.net-ee5ffaba02b4adcd7a7e1d70f6525176">http://loadimpact.com/load-test/powershellorg.cloudapp.net-ee5ffaba02b4adcd7a7e1d70f6525176</a>. I&rsquo;ll mention that the S instance size allows a lot more room for opcode caching, which can help tremendously, as well as having more RAM and CPU for handling the concurrent requests. Because the simulated users are all asking for the same pages, the caching should go a long way toward helping. For this test, response times held pretty well under 20s for the majority of the test, excluding some spikes (likely due to cached items expiring and being re-generated). Things started to get dicey at 40 concurrent users, but still held about the same average performance that the current production site offers. Using the test site interactively while this load test was underway was slow, but not utterly painful.<br>
(Real-world note: We disable a number of caching mechanisms for logged-in site users, because we don&rsquo;t want to serve a cached page form a logged-in user to an anonymous user. So logged-in users will get somewhat different results. For the purposes of this test, we&rsquo;re comparing apples to apples with anonymous simulated users.)</p><h2 id="azure-3-ss" class="ps-heading">Azure 3: S+S<a class="ps-heading-anchor" href="#azure-3-ss" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Now the database server has also been upgraded to a small instance, featuring a dedicated CPU core and 1.75GB of RAM. Having to update the database server&rsquo;s private IP address each time it restarts is a PITA. I need to find out if there&rsquo;s any way to use a DNS name for that instead - something Azure updates for me when it reassigns the IP. I don&rsquo;t want to use the public IP/DNS, because I&rsquo;d pay for bandwidth - with the internal IP, the traffic stays inside the Azure datacenter, so I don&rsquo;t pay for it.<br>
Anyway, this test result is at <a href="http://loadimpact.com/load-test/powershellorg.cloudapp.net-8b824df0db0a9ea67c2329150068200b">http://loadimpact.com/load-test/powershellorg.cloudapp.net-8b824df0db0a9ea67c2329150068200b</a>. Can I tell you how much I love LoadImpact for doing these tests? Set up the test once, run it over and over against different configurations. Awesome.<br>
As you&rsquo;re comparing the charts, pay close attention to the scale on the sides. They&rsquo;re not necessarily the same - you actually have to look at the numbers, not just the height of the blue line.  This time, although the blue line climbed high, it was actually under 1m for the entire test. That&rsquo;s a marked improvement over the XS+XS test! In addition, a S+S configuration is pretty affordable. It&rsquo;s about $180/mo in VMs, plus about $35 for storage and estimated bandwidth. That&rsquo;s less than two dedicated rackmount servers would cost, for sure.</p><h2 id="conclusion" class="ps-heading">Conclusion<a class="ps-heading-anchor" href="#conclusion" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I need to do a bit of analysis - LoadImpact lets me download CSVs, which will let me make some direct-comparison charts - but Azure&rsquo;s looking like a good option for us, especially in the S+S option. I may also run a Medium+Small test (I have one credit left with LoadImpact for the month, so why not) just to see the difference. **UPDATE: **I did. The M+S test is at <a href="http://loadimpact.com/load-test/powershellorg.cloudapp.net-89328e1adfb4afa6af8b7c409dfa687f">http://loadimpact.com/load-test/powershellorg.cloudapp.net-89328e1adfb4afa6af8b7c409dfa687f</a>.</p>
]]></content:encoded></item><item><title>So your company doesn't want to enable PowerShell Remoting?</title><link>https://powershell.org/articles/2013-08-20-so-your-company-doesnt-want-to-enable-powershell-remoting/</link><guid>https://powershell.org/articles/2013-08-20-so-your-company-doesnt-want-to-enable-powershell-remoting/</guid><pubDate>Wed, 21 Aug 2013 00:37:04 +0000</pubDate><description>&lt;p&gt;But I bet they&amp;rsquo;re okay with Remote Desktop Protocol, right? And all those Remote Procedure Calls?&lt;br&gt;
And I bet they never even thought about why &lt;em&gt;every *nix&lt;/em&gt; _system, ever, _has SSH enabled by default? But practically nothing else (by default)?&lt;br&gt;
Hmm.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>But I bet they&rsquo;re okay with Remote Desktop Protocol, right? And all those Remote Procedure Calls?<br>
And I bet they never even thought about why <em>every *nix</em> _system, ever, _has SSH enabled by default? But practically nothing else (by default)?<br>
Hmm.</p>
]]></content:encoded></item><item><title>PowerShell Great Debate: What's Write-Verbose For?</title><link>https://powershell.org/articles/2013-08-20-powershell-great-debate-whats-write-verbose-for/</link><guid>https://powershell.org/articles/2013-08-20-powershell-great-debate-whats-write-verbose-for/</guid><pubDate>Tue, 20 Aug 2013 18:07:32 +0000</pubDate><description>&lt;p&gt;This was a fascinating thing to see throughout The Scripting Games this year: _When exactly should you use Write-Verbose, and why? _The same question applies to Write-Debug.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ldquo;I use Write-Debug to provide developer-level comments in my scripts, since I can turn it on with -Debug to see variable contents.&amp;rdquo;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;I use Write-Verbose to provide developer-level comments in my scripts, since I can turn it on with -Debug to see variable contents.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See what I mean? Some folks will suggest that Verbose is for &amp;ldquo;user-friendly status messages;&amp;rdquo; others eschew Debug entirely and prefer PSBreakpoints for that functionality.&lt;br&gt;
What guidance would &lt;em&gt;you&lt;/em&gt; offer for using Write-Verbose and Write-Debug in a script?&lt;br&gt;
[boilerplate greatdebate]&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>This was a fascinating thing to see throughout The Scripting Games this year: _When exactly should you use Write-Verbose, and why? _The same question applies to Write-Debug.</p><ul><li/></ul><p>&ldquo;I use Write-Debug to provide developer-level comments in my scripts, since I can turn it on with -Debug to see variable contents.&rdquo;</p><ul><li>&ldquo;I use Write-Verbose to provide developer-level comments in my scripts, since I can turn it on with -Debug to see variable contents.&rdquo;</li></ul><p>See what I mean? Some folks will suggest that Verbose is for &ldquo;user-friendly status messages;&rdquo; others eschew Debug entirely and prefer PSBreakpoints for that functionality.<br>
What guidance would <em>you</em> offer for using Write-Verbose and Write-Debug in a script?<br>
[boilerplate greatdebate]</p>
]]></content:encoded></item><item><title>PowerShell.org's Azure Journey: Part 2</title><link>https://powershell.org/articles/2013-08-19-powershell-orgs-azure-journey-part-2/</link><guid>https://powershell.org/articles/2013-08-19-powershell-orgs-azure-journey-part-2/</guid><pubDate>Tue, 20 Aug 2013 01:10:01 +0000</pubDate><description>&lt;p&gt;I had no idea Azure gives MSDN subscribers a huge free monthly credit - $200 for the first month, and then on the Ultimate subscription level (which is what I get as an MVP) you get  $175 per month thereafter. That starts to really justify the MSDN pricing. You want a lab in the cloud? Free Azure!&lt;br&gt;
Given the free-ness of it, I decided to set up a PowerShell.org in the sky to see how it went. Configuring dual CentOS VMs was a bit of an all-day affair; I have less experience with RHEL (which is what CentOS is based on) and it took me a while to figure out that the built-in firewall was causing all my grief. Fixed now.&lt;br&gt;
Microsoft publishes some pretty good guides for getting a LAMP stack running on CentOS in Azure. Not great guides, but good. They lack a decent guide on getting Passive FTP working - and it&amp;rsquo;s a PITA because Azure only lets you configure incoming ports on a one-at-a-time basis (not ranges), and you can only have 25. So that&amp;rsquo;s kind of a pain. But I got it working, got MySQL installed and working, and I&amp;rsquo;m presently waiting on VaultPress to smush up our latest site backup and spew it onto the Azure server. Remember: you don&amp;rsquo;t pay for bandwidth going &lt;em&gt;into&lt;/em&gt; Azure, so I can load the backup in as many times as I want without incurring bandwidth.&lt;br&gt;
This VaultPress thing is neat, if it works. It continually pulls changes from our WordPress installation and backs them up, timestamped, a la Apple Time Machine. Allegedly, if you give them the FTP info on you new server, and you have a base WordPress install working on the new server, they can &amp;ldquo;push&amp;rdquo; your whole site down to the new server. Given my fits and starts with FTP on CentOS today, we&amp;rsquo;ll see how well it works, but I&amp;rsquo;m optimistic. Dunno. It&amp;rsquo;s been saying &amp;ldquo;Testing Connection&amp;rdquo; for a long time now. Sigh.&lt;br&gt;
Anyway, I&amp;rsquo;m starting both VMs in extra-small instances. Part of what I want to play with is whether or not I can upgrade those to bigger instances without breaking the universe. Depends on how CentOS behaves when it suddenly finds itself running on &amp;ldquo;new hardware.&amp;rdquo; We shall see! If it works, then it&amp;rsquo;ll truly be killer in terms of scaling. I also want to see if we get more &amp;ldquo;juice&amp;rdquo; running two load-balanced extra-small instances vs. a small instance (which is technically twice as big as an extra-small). Common logic suggests that more, smaller servers is better - a la every web farm, ever. But it&amp;rsquo;ll be fun to test.&lt;br&gt;
&lt;strong&gt;Question:&lt;/strong&gt; anyone have any Web site load-testing software they&amp;rsquo;re fond of? Mac or Windows is fine, or even both. I&amp;rsquo;ll enlist some folks to help with that, since I know my DSL line&amp;rsquo;s upstream side will chokepoint long before the Azure server does. Ooo, maybe we can have a PowerShell.org botnet that I could control&amp;hellip; bwaa haa haa!&lt;br&gt;
Meantime, Eric Courville, our new volunteer Webmaster, is setting up a similar Azure-based VM set with his own MSDN subscription. In addition to documenting the setup process, we&amp;rsquo;re going to try and do some load-testing and see what kind of instances we need to run in to get solid performance out of the site. PowerShell.org currently peaks at fewer than 50-60 concurrent connections (and even that day was a rare peak), so we&amp;rsquo;ll load test to that number.&lt;br&gt;
Stay tuned!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I had no idea Azure gives MSDN subscribers a huge free monthly credit - $200 for the first month, and then on the Ultimate subscription level (which is what I get as an MVP) you get  $175 per month thereafter. That starts to really justify the MSDN pricing. You want a lab in the cloud? Free Azure!<br>
Given the free-ness of it, I decided to set up a PowerShell.org in the sky to see how it went. Configuring dual CentOS VMs was a bit of an all-day affair; I have less experience with RHEL (which is what CentOS is based on) and it took me a while to figure out that the built-in firewall was causing all my grief. Fixed now.<br>
Microsoft publishes some pretty good guides for getting a LAMP stack running on CentOS in Azure. Not great guides, but good. They lack a decent guide on getting Passive FTP working - and it&rsquo;s a PITA because Azure only lets you configure incoming ports on a one-at-a-time basis (not ranges), and you can only have 25. So that&rsquo;s kind of a pain. But I got it working, got MySQL installed and working, and I&rsquo;m presently waiting on VaultPress to smush up our latest site backup and spew it onto the Azure server. Remember: you don&rsquo;t pay for bandwidth going <em>into</em> Azure, so I can load the backup in as many times as I want without incurring bandwidth.<br>
This VaultPress thing is neat, if it works. It continually pulls changes from our WordPress installation and backs them up, timestamped, a la Apple Time Machine. Allegedly, if you give them the FTP info on you new server, and you have a base WordPress install working on the new server, they can &ldquo;push&rdquo; your whole site down to the new server. Given my fits and starts with FTP on CentOS today, we&rsquo;ll see how well it works, but I&rsquo;m optimistic. Dunno. It&rsquo;s been saying &ldquo;Testing Connection&rdquo; for a long time now. Sigh.<br>
Anyway, I&rsquo;m starting both VMs in extra-small instances. Part of what I want to play with is whether or not I can upgrade those to bigger instances without breaking the universe. Depends on how CentOS behaves when it suddenly finds itself running on &ldquo;new hardware.&rdquo; We shall see! If it works, then it&rsquo;ll truly be killer in terms of scaling. I also want to see if we get more &ldquo;juice&rdquo; running two load-balanced extra-small instances vs. a small instance (which is technically twice as big as an extra-small). Common logic suggests that more, smaller servers is better - a la every web farm, ever. But it&rsquo;ll be fun to test.<br><strong>Question:</strong> anyone have any Web site load-testing software they&rsquo;re fond of? Mac or Windows is fine, or even both. I&rsquo;ll enlist some folks to help with that, since I know my DSL line&rsquo;s upstream side will chokepoint long before the Azure server does. Ooo, maybe we can have a PowerShell.org botnet that I could control&hellip; bwaa haa haa!<br>
Meantime, Eric Courville, our new volunteer Webmaster, is setting up a similar Azure-based VM set with his own MSDN subscription. In addition to documenting the setup process, we&rsquo;re going to try and do some load-testing and see what kind of instances we need to run in to get solid performance out of the site. PowerShell.org currently peaks at fewer than 50-60 concurrent connections (and even that day was a rare peak), so we&rsquo;ll load test to that number.<br>
Stay tuned!</p>
]]></content:encoded></item><item><title>PowerShell.org's Azure Journey, Part 1</title><link>https://powershell.org/articles/2013-08-19-powershell-orgs-azure-journey-part-1/</link><guid>https://powershell.org/articles/2013-08-19-powershell-orgs-azure-journey-part-1/</guid><pubDate>Mon, 19 Aug 2013 16:19:50 +0000</pubDate><description>&lt;p&gt;When we started PowerShell.org, my company (Concentrated Tech) donated shared hosting space to get the site up and running. We knew it wouldn&amp;rsquo;t be a permanent solution, but it let us start out for free. We&amp;rsquo;re coming to the point where a move to dedicated hosting will be desirable, and we&amp;rsquo;re looking at the options. Azure and Amazon Web Services are priced roughly the same for what we need, so as a Microsoft-centric community Azure&amp;rsquo;s obviously the way to go.&lt;br&gt;
Azure Technical Fellow Mark Russinovich is having someone on his team connect with me to discuss some of the models in which we could use Azure. What makes the discussion interesting is that PowerShell.org runs on a LAMP (Linux, Apache, MySQL, and PHP) stack. We&amp;rsquo;re not looking to change that; WordPress requires PHP, and the Windows builds of PHP typically lack some of the key PHP extensions we use. I&amp;rsquo;m not interested in compiling my own PHP build, either - I want off-the-shelf. WordPress more or less requires MySQL; while there&amp;rsquo;s a SQL Server adapter available, it can&amp;rsquo;t handle plugins that don&amp;rsquo;t use WordPress&amp;rsquo; database abstraction layer, and I just don&amp;rsquo;t want to take the chance of needing such a plugin at some point and not being able to use it.&lt;br&gt;
What&amp;rsquo;s neat about Azure is that it doesn&amp;rsquo;t care. I adore Microsoft for selling a service and not caring what I do with it. Azure runs Linux _just fine. _Huzzah!&lt;br&gt;
So, we&amp;rsquo;ve got two basic models that could work for us. Model 1 is to just buy virtual machines in Azure. We&amp;rsquo;re planning one for the database and another for the Web site itself, so that we can scale-out the Web end if we want to in the future. We&amp;rsquo;re not going to do an availability set; that means we risk some short downtime if Azure experiences hardware problems and needs to move our VM, but we&amp;rsquo;re fine with that because right now we can&amp;rsquo;t afford better availability. We&amp;rsquo;d probably build CentOS machines using Azure&amp;rsquo;s provided base image (again, &lt;em&gt;adore&lt;/em&gt; Microsoft for making this easy for Linux hosting and not just Windows). We know we tend to top out at 250GB of bandwidth a month, and that we need about 1GB of disk space for the Web site. 500MB of space for the database will last us a long time, but we&amp;rsquo;d probably get 1GB for that, too. It&amp;rsquo;s only like $3 a month. We could probably start with Small VM instances and upgrade later if needed. All-in, we&amp;rsquo;re probably looking at about $125/mo, less any prepay discounts.&lt;br&gt;
Model 2 is to just run a _Website. _We still get to pick the kind of instance that hosts our site, so if we went with Small and a single instance, we&amp;rsquo;d be at about $110 including bandwidth and storage. That doesn&amp;rsquo;t include MySQL, though. Interestingly, Microsoft doesn&amp;rsquo;t host MySQL themselves as they do with SQL Azure. Instead, they outsource to ClearDB.com, which provides an Azure-like service for hosted MySQL. Unfortunately, the Azure price calculator doesn&amp;rsquo;t cover the resold ClearDB service. Looking at ClearDB&amp;rsquo;s own pricing, it&amp;rsquo;d probably push us to about $120-$125 a month - or about the same as having our own virtual machines. The difference is that, with Model 2, Microsoft can float our Web site to whatever virtual hosts they need to at the time to balance performance; with Model 1, they can potentially move our entire VM - although they&amp;rsquo;re unlikely to do so routinely, since it&amp;rsquo;d involve taking us offline for a brief period. A super-neat part of this model is its integration with Git: I can run a local test version of the site, and as I make changes and commit them to our GitHub repository, Azure can execute a pull and get the latest version of the site code right from Git. Awesome and automated. I love automated.&lt;br&gt;
An appeal of Model 1 is that I can build out the proposed CentOS environment on my own Hyper-V server, hit it with some test traffic loads, and size the machine appropriately. I can then deploy the VHDs right to Azure, knowing that the instance size I picked will be suitable for the traffic we need to handle. It also give me an opportunity to validate the fact that a dedicated VM will be faster than our current shared hosting system, and to play around with the more advanced caching and optimization options available on a dedicated VM. I can get everything dialed in perfectly, and then deploy.&lt;br&gt;
Azure has other usage models, but these are the two applicable to us. I think it&amp;rsquo;s great that we get these options, and that the pricing is more or less the same regardless. And again, I think it&amp;rsquo;s pure genius that Azure&amp;rsquo;s in the business of &lt;em&gt;making money&lt;/em&gt; for Microsoft, and that they&amp;rsquo;re happy to do so running whatever OS I want them to.&lt;br&gt;
I&amp;rsquo;ll continue this series of posts as we move through the process, just for the benefit of anyone who&amp;rsquo;s interested in seeing Azure-ification from start to finish. Let me know if you have any questions or feedback!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>When we started PowerShell.org, my company (Concentrated Tech) donated shared hosting space to get the site up and running. We knew it wouldn&rsquo;t be a permanent solution, but it let us start out for free. We&rsquo;re coming to the point where a move to dedicated hosting will be desirable, and we&rsquo;re looking at the options. Azure and Amazon Web Services are priced roughly the same for what we need, so as a Microsoft-centric community Azure&rsquo;s obviously the way to go.<br>
Azure Technical Fellow Mark Russinovich is having someone on his team connect with me to discuss some of the models in which we could use Azure. What makes the discussion interesting is that PowerShell.org runs on a LAMP (Linux, Apache, MySQL, and PHP) stack. We&rsquo;re not looking to change that; WordPress requires PHP, and the Windows builds of PHP typically lack some of the key PHP extensions we use. I&rsquo;m not interested in compiling my own PHP build, either - I want off-the-shelf. WordPress more or less requires MySQL; while there&rsquo;s a SQL Server adapter available, it can&rsquo;t handle plugins that don&rsquo;t use WordPress&rsquo; database abstraction layer, and I just don&rsquo;t want to take the chance of needing such a plugin at some point and not being able to use it.<br>
What&rsquo;s neat about Azure is that it doesn&rsquo;t care. I adore Microsoft for selling a service and not caring what I do with it. Azure runs Linux _just fine. _Huzzah!<br>
So, we&rsquo;ve got two basic models that could work for us. Model 1 is to just buy virtual machines in Azure. We&rsquo;re planning one for the database and another for the Web site itself, so that we can scale-out the Web end if we want to in the future. We&rsquo;re not going to do an availability set; that means we risk some short downtime if Azure experiences hardware problems and needs to move our VM, but we&rsquo;re fine with that because right now we can&rsquo;t afford better availability. We&rsquo;d probably build CentOS machines using Azure&rsquo;s provided base image (again, <em>adore</em> Microsoft for making this easy for Linux hosting and not just Windows). We know we tend to top out at 250GB of bandwidth a month, and that we need about 1GB of disk space for the Web site. 500MB of space for the database will last us a long time, but we&rsquo;d probably get 1GB for that, too. It&rsquo;s only like $3 a month. We could probably start with Small VM instances and upgrade later if needed. All-in, we&rsquo;re probably looking at about $125/mo, less any prepay discounts.<br>
Model 2 is to just run a _Website. _We still get to pick the kind of instance that hosts our site, so if we went with Small and a single instance, we&rsquo;d be at about $110 including bandwidth and storage. That doesn&rsquo;t include MySQL, though. Interestingly, Microsoft doesn&rsquo;t host MySQL themselves as they do with SQL Azure. Instead, they outsource to ClearDB.com, which provides an Azure-like service for hosted MySQL. Unfortunately, the Azure price calculator doesn&rsquo;t cover the resold ClearDB service. Looking at ClearDB&rsquo;s own pricing, it&rsquo;d probably push us to about $120-$125 a month - or about the same as having our own virtual machines. The difference is that, with Model 2, Microsoft can float our Web site to whatever virtual hosts they need to at the time to balance performance; with Model 1, they can potentially move our entire VM - although they&rsquo;re unlikely to do so routinely, since it&rsquo;d involve taking us offline for a brief period. A super-neat part of this model is its integration with Git: I can run a local test version of the site, and as I make changes and commit them to our GitHub repository, Azure can execute a pull and get the latest version of the site code right from Git. Awesome and automated. I love automated.<br>
An appeal of Model 1 is that I can build out the proposed CentOS environment on my own Hyper-V server, hit it with some test traffic loads, and size the machine appropriately. I can then deploy the VHDs right to Azure, knowing that the instance size I picked will be suitable for the traffic we need to handle. It also give me an opportunity to validate the fact that a dedicated VM will be faster than our current shared hosting system, and to play around with the more advanced caching and optimization options available on a dedicated VM. I can get everything dialed in perfectly, and then deploy.<br>
Azure has other usage models, but these are the two applicable to us. I think it&rsquo;s great that we get these options, and that the pricing is more or less the same regardless. And again, I think it&rsquo;s pure genius that Azure&rsquo;s in the business of <em>making money</em> for Microsoft, and that they&rsquo;re happy to do so running whatever OS I want them to.<br>
I&rsquo;ll continue this series of posts as we move through the process, just for the benefit of anyone who&rsquo;s interested in seeing Azure-ification from start to finish. Let me know if you have any questions or feedback!</p>
]]></content:encoded></item><item><title>Two PowerShell Books 50% off TODAY ONLY</title><link>https://powershell.org/articles/2013-08-16-two-powershell-books-50-off-today-only/</link><guid>https://powershell.org/articles/2013-08-16-two-powershell-books-50-off-today-only/</guid><pubDate>Fri, 16 Aug 2013 17:59:11 +0000</pubDate><description>&lt;p&gt;&lt;em&gt;PowerShell in Depth&lt;/em&gt; and &lt;em&gt;Learn Windows PowerShell 3 in a Month of Lunches&lt;/em&gt; are on half-price August 25th, 2013.&lt;br&gt;
Use code dotd0825au at &lt;a href="http://www.manning.com/jones2/"&gt;www.manning.com/jones2/&lt;/a&gt;&lt;br&gt;
or&lt;br&gt;
Use code dotd0825au at &lt;a href="http://www.manning.com/jones3/"&gt;www.manning.com/jones3/&lt;/a&gt;&lt;br&gt;
Tell a friend who needs to start learning PowerShell - two great books at 50% off. All print books come with a voucher for free ebook versions (MOBI, EPUB, PDF), and the ebook-only version is also 50% off.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><em>PowerShell in Depth</em> and <em>Learn Windows PowerShell 3 in a Month of Lunches</em> are on half-price August 25th, 2013.<br>
Use code dotd0825au at <a href="http://www.manning.com/jones2/">www.manning.com/jones2/</a><br>
or<br>
Use code dotd0825au at <a href="http://www.manning.com/jones3/">www.manning.com/jones3/</a><br>
Tell a friend who needs to start learning PowerShell - two great books at 50% off. All print books come with a voucher for free ebook versions (MOBI, EPUB, PDF), and the ebook-only version is also 50% off.</p>
]]></content:encoded></item><item><title>Site Maintenance this Weekend (Aug 17-18 2013)</title><link>https://powershell.org/articles/2013-08-16-site-maintenance-this-weekend-aug-17-18-2013/</link><guid>https://powershell.org/articles/2013-08-16-site-maintenance-this-weekend-aug-17-18-2013/</guid><pubDate>Fri, 16 Aug 2013 14:54:19 +0000</pubDate><description>&lt;p&gt;This weekend, we&amp;rsquo;ll be conducting maintenance on PowerShell.org. We have several goals:&lt;br&gt;
**New visual theme. **We&amp;rsquo;ll be installing a new visual theme. While we hope to catch everything, you may run across something goofy-looking. Please use the Community Discussion forum to report that, so we can ask the designers to take a look.&lt;br&gt;
**Performance. &lt;strong&gt;We&amp;rsquo;re going to continue to work on performance, with a goal of getting specified pages to have an &amp;ldquo;A&amp;rdquo; on the Page Test and YSlow tests. That&amp;rsquo;s not the entirety of performance, but it&amp;rsquo;s what we can address now without moving to a different hosting environment (which is planned). During this phase of our maintenance, the site may not function correctly, or certain features may come and go as we test different configurations.&lt;br&gt;
&lt;strong&gt;Cleanup&lt;/strong&gt;&lt;/strong&gt;. **We&amp;rsquo;ll be condensing certain features of the site, rearranging menus, and so on, to provide a better visual experience across a wider variety of devices.&lt;br&gt;
We appreciate your patience!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>This weekend, we&rsquo;ll be conducting maintenance on PowerShell.org. We have several goals:<br>
**New visual theme. **We&rsquo;ll be installing a new visual theme. While we hope to catch everything, you may run across something goofy-looking. Please use the Community Discussion forum to report that, so we can ask the designers to take a look.<br>
**Performance. <strong>We&rsquo;re going to continue to work on performance, with a goal of getting specified pages to have an &ldquo;A&rdquo; on the Page Test and YSlow tests. That&rsquo;s not the entirety of performance, but it&rsquo;s what we can address now without moving to a different hosting environment (which is planned). During this phase of our maintenance, the site may not function correctly, or certain features may come and go as we test different configurations.<br><strong>Cleanup</strong></strong>. **We&rsquo;ll be condensing certain features of the site, rearranging menus, and so on, to provide a better visual experience across a wider variety of devices.<br>
We appreciate your patience!</p>
]]></content:encoded></item><item><title>New PowerShell.org Visual Design Draft, Pt 2</title><link>https://powershell.org/articles/2013-08-15-new-powershell-org-visual-design-draft-pt-2/</link><guid>https://powershell.org/articles/2013-08-15-new-powershell-org-visual-design-draft-pt-2/</guid><pubDate>Thu, 15 Aug 2013 17:09:36 +0000</pubDate><description>&lt;p&gt;Spoke too soon in the morning&amp;rsquo;s updates; my designer buddies worked last night and took their first stab at the forums pages. They also changed their mind about the big black boxes, which I appreciate ;). The forums material is denser now, meaning more info per page, which should please some folks.&lt;br&gt;
Samples below - and comments welcome. Just keep in mind these folks aren&amp;rsquo;t being paid, so be nice ;).&lt;br&gt;
&lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-forum-list.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-forum-list-150x150.png" alt="new-forum-list"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-single-topic.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-single-topic-150x150.png" alt="new-single-topic"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-topic-list.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-topic-list-150x150.png" alt="new-topic-list"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-article.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-article-150x150.png" alt="new-article"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-article-comments.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-article-comments-150x150.png" alt="new-article-comments"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/new-front.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/new-front-150x150.png" alt="new-front"&gt;&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Spoke too soon in the morning&rsquo;s updates; my designer buddies worked last night and took their first stab at the forums pages. They also changed their mind about the big black boxes, which I appreciate ;). The forums material is denser now, meaning more info per page, which should please some folks.<br>
Samples below - and comments welcome. Just keep in mind these folks aren&rsquo;t being paid, so be nice ;).<br><a href="https://powershell.org/wp-content/uploads/2013/08/new-forum-list.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-forum-list-150x150.png" alt="new-forum-list"/><a href="https://powershell.org/wp-content/uploads/2013/08/new-single-topic.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-single-topic-150x150.png" alt="new-single-topic"/><a href="https://powershell.org/wp-content/uploads/2013/08/new-topic-list.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-topic-list-150x150.png" alt="new-topic-list"/><a href="https://powershell.org/wp-content/uploads/2013/08/new-article.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-article-150x150.png" alt="new-article"/><a href="https://powershell.org/wp-content/uploads/2013/08/new-article-comments.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-article-comments-150x150.png" alt="new-article-comments"/><a href="https://powershell.org/wp-content/uploads/2013/08/new-front.png"><img src="https://powershell.org/wp-content/uploads/2013/08/new-front-150x150.png" alt="new-front"/></p><p>Whatcha think? They said they&rsquo;re tweaking the smaller-screen version still, but I&rsquo;ll update this post and add those examples once they&rsquo;re ready. I know getting the forums working on a smartphone is something people have kvetched about, but it&rsquo;s fairly tricky. They said they might just end up <em>not</em> making a smartphone version, but instead focus on dropping unnecessary elements and letting the phone scale the page. The text input box is apparently giving them a lot of grief when it&rsquo;s sized too small. Anyway&hellip;</p>
]]></content:encoded></item><item><title>State of the Org: Website, Games, Summit, and More</title><link>https://powershell.org/articles/2013-08-15-state-of-the-org-website-games-summit-and-more/</link><guid>https://powershell.org/articles/2013-08-15-state-of-the-org-website-games-summit-and-more/</guid><pubDate>Thu, 15 Aug 2013 14:39:23 +0000</pubDate><description>&lt;p&gt;I wanted to share a quick update on PowerShell.org, Inc.&lt;br&gt;
First, a couple of Web designer friends of mine have volunteered to do a visual re-theme of the site. Below is some of their early work, and you&amp;rsquo;re welcome to comment; I&amp;rsquo;ll just remind you that they&amp;rsquo;re &lt;em&gt;volunteers&lt;/em&gt; and doing this _as a favor. _So be nice! You&amp;rsquo;ll notice that one of these reflects the layout a smartphone would use, which trims much of the &amp;ldquo;chrome&amp;rdquo; in favor of the content. They haven&amp;rsquo;t tackled the forums yet - that&amp;rsquo;s harder, and will probably come last.&lt;br&gt;
&lt;a href="https://powershell.org/wp-content/uploads/2013/08/3-001.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/3-001-150x150.png" alt="3-001"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/3-002.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/3-002-150x150.png" alt="3-002"&gt;&lt;/a&gt; &lt;a href="https://powershell.org/wp-content/uploads/2013/08/3-003.png"&gt;&lt;img src="https://powershell.org/wp-content/uploads/2013/08/3-003-150x150.png" alt="3-003"&gt;&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I wanted to share a quick update on PowerShell.org, Inc.<br>
First, a couple of Web designer friends of mine have volunteered to do a visual re-theme of the site. Below is some of their early work, and you&rsquo;re welcome to comment; I&rsquo;ll just remind you that they&rsquo;re <em>volunteers</em> and doing this _as a favor. _So be nice! You&rsquo;ll notice that one of these reflects the layout a smartphone would use, which trims much of the &ldquo;chrome&rdquo; in favor of the content. They haven&rsquo;t tackled the forums yet - that&rsquo;s harder, and will probably come last.<br><a href="https://powershell.org/wp-content/uploads/2013/08/3-001.png"><img src="https://powershell.org/wp-content/uploads/2013/08/3-001-150x150.png" alt="3-001"/><a href="https://powershell.org/wp-content/uploads/2013/08/3-002.png"><img src="https://powershell.org/wp-content/uploads/2013/08/3-002-150x150.png" alt="3-002"/><a href="https://powershell.org/wp-content/uploads/2013/08/3-003.png"><img src="https://powershell.org/wp-content/uploads/2013/08/3-003-150x150.png" alt="3-003"/></p><p>Second, in the last quarter of the year we&rsquo;re planning a move from our current shared hosting plan (my company is actually hosting the site for free) to a more dedicated plan - likely in Azure, since that offers us redundancy without the need to actually pay for two servers. We&rsquo;ll set up a 2-server system with one server dedicated to the database, and the other the Web site, which reflects what we have now under the shared plan. We&rsquo;ll remain on the current LAMP stack, just running inside Azure. That takes a lot of work to set up and test, and the schedule will depend largely on our volunteers&rsquo; time, but it&rsquo;s in the works. The move should help a bit with some of the performance. It&rsquo;s crazy expensive compared to &ldquo;free&rdquo; (around $3600/year max, although obviously it&rsquo;s based on usage so that&rsquo;s kind of a worst-case guess), but we&rsquo;re growing to the point where we need it and it isn&rsquo;t any more expensive than a dedicated server. I love that the Azure folks are smart enough to offer a LAMP stack. Own the back end, who cares what people do with it!<br>
Third, we&rsquo;ve disabled a few site features that were really eating up page load times. Most you won&rsquo;t notice, but the &ldquo;badges&rdquo; functionality is presently turned off. We haven&rsquo;t deleted any data, so we can bring that back, but for right now it&rsquo;s unavailable.<br>
Fourth&hellip; and off of the Web site&hellip; the PowerShell Summit North America 2014 is about 12% sold out. As of today, our 2013 alumni and shareholders no longer have a reserved block; our TechLetter subscribers still have a reserved block through September 15th, at which point everything goes on sale to the public. The velocity of sales has been good, and we should be able to hit our next scheduled payment to the event venue. We <em>are</em> still holding back about 50 slots for 2014Q1, for those of you who <em>can&rsquo;t</em> register until next year. But I wouldn&rsquo;t hold out for those if you don&rsquo;t have to. It does <em>not</em> look, at present, like we&rsquo;ll have many (if any) additional discounted memberships - in order to hit our numbers, it&rsquo;s likely everything will hold to full price. If we do offer any discounts, it&rsquo;ll be absolutely last-minute. Also, our team is getting going on content, and you should see a Call for Topics real soon, now.<br>
Fifth, the PowerShell Summit Europe 2014 is coming along, but not really going anywhere. Ha! By that, I mean we&rsquo;re simply too far out (more than a year) for venues to be able to talk to us. So we&rsquo;re holding tight until September and October this year, when we can start checking pricing and availability. Madrid snuck on to our short-list of cities, along with Munich, Milan, and Amsterdam, due to the presence of a large MS conference facility there. If anyone lives in Europe and speaks Spanish, and wants to be our liaison to communicate with MS Madrid, please contact me (via the Site Info menu above). It&rsquo;d be nice to have someone local who can contact the office and see what we can do there, or at least put us in touch with an evangelist over there who could work on our behalf.<br>
Sixth, don&rsquo;t forget that Mark Schill has announced<a href="http://powershellsaturday.com">PowerShell Saturday 005</a> for Atlanta. Mark&rsquo;s also been tasked to help one or two other organizations put on their own PowerShell Saturday, so if you think you&rsquo;d be interested, please contact him. Having done this four times already, he&rsquo;s got a good grip on how to go about it.<br>
Seventh, we&rsquo;ve got some great new guys acting as editors for the TechLetter, and the September issue will be their first go at it. Wish them luck and give them your support! We&rsquo;re also looking to launch free online TechSession webinars next month; I&rsquo;ll probably run the first one, and there will be a required (and free) registration process, and it may be bumpy. But we&rsquo;re going to try and do those monthly. They&rsquo;ll supplement the new MVA offerings from MS, and get back to the days with TechNet did a whole series of different free webinars. Once we start, please help spread the word - if we&rsquo;re not getting good attendance or recording views, we won&rsquo;t keep doing it.<br>
Eighth, I&rsquo;m unsure if we&rsquo;ll be doing a Winter Games event or not. We had someone volunteer to coordinate it, but I haven&rsquo;t heard any details from them, and I&rsquo;m kinda getting overbooked on my end, which will make it tough to do up whatever Web site they might need. We&rsquo;re going to play this one by ear.<br>
Ninth&hellip; and before I make it to a full strike&hellip; I want to express my deep gratitude for everyone that&rsquo;s helping make this community work. The Forums are obviously a big piece, and it&rsquo;s been fantastic to see so many of you jumping in and volunteering your time to help answer questions. Truly, I feel that this whole thing is finally taking off and that it&rsquo;s a real _community. _Along those lines, in Q4 this year, we&rsquo;re going to announce (so start thinking about it) a PowerShell Heroes award. This will be for folks who have <em>not</em> already received some kind of recognition (like MVP) for helping out in the community, so that we can formally offer them a thank-you. Awards will be by nomination, and will carry no benefits whatsoever (grin). But start thinking of who you&rsquo;d like to thank, and why.<br>
OK - that&rsquo;s probably enough for the morning. Thanks for coming along for the ride, and have a great rest of the week!<br>
Don</p>
]]></content:encoded></item><item><title>PowerShell Great Debate: Can You Have Too Much Help?</title><link>https://powershell.org/articles/2013-08-13-powershell-great-debate-can-you-have-too-much-help/</link><guid>https://powershell.org/articles/2013-08-13-powershell-great-debate-can-you-have-too-much-help/</guid><pubDate>Tue, 13 Aug 2013 14:44:06 +0000</pubDate><description>&lt;p&gt;In The Scripting Games this year, more than a few folks took the time to write detailed comment-based help. Awesome. No debating it - comment-based help _is a good thing. _&lt;br&gt;
But some folks felt that others took it too far. There were definitely scripts where the authors used, for example, the .NOTES section to explain their thinking and approach. Some commenters felt it was excessive, while others have pointed out, &amp;ldquo;wow, what if every programmer gave us some idea what the heck he/she was thinking at the time?&amp;rdquo; Some felt these extensive comments were just at attempt to get a better score by &amp;ldquo;convincing&amp;rdquo; the reviewer of an approach or tactic; others felt, &amp;ldquo;so what?&amp;rdquo;&lt;br&gt;
So let&amp;rsquo;s leave the Games out of this debate - in a &lt;em&gt;production&lt;/em&gt; environment, where do you come down on extensive notes in a script? When is it not enough, and when is it going too far? Where&amp;rsquo;s the value, and where&amp;rsquo;s the annoyance?&lt;br&gt;
[boilerplate greatdebate]&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>In The Scripting Games this year, more than a few folks took the time to write detailed comment-based help. Awesome. No debating it - comment-based help _is a good thing. _<br>
But some folks felt that others took it too far. There were definitely scripts where the authors used, for example, the .NOTES section to explain their thinking and approach. Some commenters felt it was excessive, while others have pointed out, &ldquo;wow, what if every programmer gave us some idea what the heck he/she was thinking at the time?&rdquo; Some felt these extensive comments were just at attempt to get a better score by &ldquo;convincing&rdquo; the reviewer of an approach or tactic; others felt, &ldquo;so what?&rdquo;<br>
So let&rsquo;s leave the Games out of this debate - in a <em>production</em> environment, where do you come down on extensive notes in a script? When is it not enough, and when is it going too far? Where&rsquo;s the value, and where&rsquo;s the annoyance?<br>
[boilerplate greatdebate]</p>
]]></content:encoded></item><item><title>PhillyPoSH 08/01/2013 meeting summary and presentation materials</title><link>https://powershell.org/articles/2013-08-12-phillyposh-08012013-meeting-summary-and-presentation-materials/</link><guid>https://powershell.org/articles/2013-08-12-phillyposh-08012013-meeting-summary-and-presentation-materials/</guid><pubDate>Tue, 13 Aug 2013 04:11:24 +0000</pubDate><description>&lt;ol&gt;
&lt;li&gt;&lt;a href="http://mellositmusings.com/"&gt;John Mello&lt;/a&gt; gave a presentation on Tips and Tricks learned from the 2013 Scripting Games, a copy of his presentation and scripts can be obtained &lt;a href="https://powershell.org/wp-content/uploads/2013/08/PhillyPosh_2013-08-01_ScriptingGamesTipsandTricksLearned.zip"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Various group members contributed to a Script and Tell, scripts and participant names are forthcoming.&lt;/li&gt;
&lt;li&gt;A &lt;a href="http://www.youtube.com/watch?v=mRS2275zUMk&amp;amp;feature=youtu.be"&gt;recording of the meeting is available&lt;/a&gt; on our &lt;a href="https://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg"&gt;YouTube channel&lt;/a&gt;, please note that the recording ends about 5 minutes before our meeting was done.&lt;/li&gt;
&lt;/ol&gt;</description><content:encoded>&lt;![CDATA[<ol><li><a href="http://mellositmusings.com/">John Mello</a> gave a presentation on Tips and Tricks learned from the 2013 Scripting Games, a copy of his presentation and scripts can be obtained<a href="https://powershell.org/wp-content/uploads/2013/08/PhillyPosh_2013-08-01_ScriptingGamesTipsandTricksLearned.zip">here</a></li><li>Various group members contributed to a Script and Tell, scripts and participant names are forthcoming.</li><li>A<a href="http://www.youtube.com/watch?v=mRS2275zUMk&amp;feature=youtu.be">recording of the meeting is available</a> on our<a href="https://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg">YouTube channel</a>, please note that the recording ends about 5 minutes before our meeting was done.</li></ol>
]]></content:encoded></item><item><title>Need Desired State Configuration Modules?</title><link>https://powershell.org/articles/2013-08-12-need-desired-state-configuration-modules/</link><guid>https://powershell.org/articles/2013-08-12-need-desired-state-configuration-modules/</guid><pubDate>Mon, 12 Aug 2013 23:59:59 +0000</pubDate><description>&lt;p&gt;You&amp;rsquo;ve probably been hearing about Desired State Configuration from a number of sources (&lt;a href="http://runasradio.com/default.aspx?showNum=328"&gt;Runas Radio&lt;/a&gt;, the &lt;a href="http://powerscripting.wordpress.com/2013/07/30/episode-236-powerscripting-podcast-mvp-don-jones-on-powershell-desired-state-configuration/"&gt;PowerScripting Podcast&lt;/a&gt;, or the &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B302#fbid=FsVi_S7Re5G"&gt;Channel 9 TechEd video&lt;/a&gt; for example).  If you haven&amp;rsquo;t go check out those previously mentioned resources, I&amp;rsquo;ll wait&amp;hellip;&lt;br&gt;
Ok, now that you have a basic understanding of what Desired State Configuration (DSC) is, I have an announcement.&lt;/p&gt;
&lt;h3 id="powershellorg-is-building-a-repository-of-dsc-modules-for-the-community-to-use-and-contribute-to" class="ps-heading"&gt;PowerShell.Org is building a &lt;a href="http://bit.ly/13fDxns"&gt;repository of DSC modules &lt;/a&gt;for the community to use and contribute to.&lt;a class="ps-heading-anchor" href="#powershellorg-is-building-a-repository-of-dsc-modules-for-the-community-to-use-and-contribute-to" 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;/h3&gt;
&lt;p&gt;As I&amp;rsquo;ve started working with Desired State Configuration, I began building up a repository of modules I would use in configuring my systems.  I started to round them out with some basic documentation and decent logging messages and began pushing them to GitHub.&lt;br&gt;
I&amp;rsquo;ve also seen several others starting to post some DSC modules on Github and elsewhere.  Since we are very early in the Desired State Configuration lifecycle (it&amp;rsquo;s still not RTM yet), I would like our community to come together on a central location for our community contributions.  I reached out to Don and the PowerShell.Org team and they graciously offered to host the contributions on the PowerShell.Org GitHub repository.  What that means is that this effort is no longer under the control of one person (me), but owned by the community, by PowerShell.Org.&lt;br&gt;
There&amp;rsquo;s not much in the repository yet, so if you&amp;rsquo;ve been experimenting with DSC and would like to share your efforts with the community, feel free to send a pull request (if you&amp;rsquo;re into the whole GitHub thing) or file an issue on the GitHub site and we&amp;rsquo;ll figure something out.&lt;br&gt;
There is some basic &lt;a href="https://github.com/PowerShellOrg/DSC#powershell-community-dsc-modules"&gt;&amp;ldquo;Getting Started With Developing DSC Modules&amp;rdquo; information at the GitHub repository&lt;/a&gt; as well.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>You&rsquo;ve probably been hearing about Desired State Configuration from a number of sources (<a href="http://runasradio.com/default.aspx?showNum=328">Runas Radio</a>, the<a href="http://powerscripting.wordpress.com/2013/07/30/episode-236-powerscripting-podcast-mvp-don-jones-on-powershell-desired-state-configuration/">PowerScripting Podcast</a>, or the<a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B302#fbid=FsVi_S7Re5G">Channel 9 TechEd video</a> for example).  If you haven&rsquo;t go check out those previously mentioned resources, I&rsquo;ll wait&hellip;<br>
Ok, now that you have a basic understanding of what Desired State Configuration (DSC) is, I have an announcement.</p><h3 id="powershellorg-is-building-a-repository-of-dsc-modules-for-the-community-to-use-and-contribute-to" class="ps-heading">PowerShell.Org is building a<a href="http://bit.ly/13fDxns">repository of DSC modules</a>for the community to use and contribute to.<a class="ps-heading-anchor" href="#powershellorg-is-building-a-repository-of-dsc-modules-for-the-community-to-use-and-contribute-to" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h3><p>As I&rsquo;ve started working with Desired State Configuration, I began building up a repository of modules I would use in configuring my systems.  I started to round them out with some basic documentation and decent logging messages and began pushing them to GitHub.<br>
I&rsquo;ve also seen several others starting to post some DSC modules on Github and elsewhere.  Since we are very early in the Desired State Configuration lifecycle (it&rsquo;s still not RTM yet), I would like our community to come together on a central location for our community contributions.  I reached out to Don and the PowerShell.Org team and they graciously offered to host the contributions on the PowerShell.Org GitHub repository.  What that means is that this effort is no longer under the control of one person (me), but owned by the community, by PowerShell.Org.<br>
There&rsquo;s not much in the repository yet, so if you&rsquo;ve been experimenting with DSC and would like to share your efforts with the community, feel free to send a pull request (if you&rsquo;re into the whole GitHub thing) or file an issue on the GitHub site and we&rsquo;ll figure something out.<br>
There is some basic<a href="https://github.com/PowerShellOrg/DSC#powershell-community-dsc-modules">&ldquo;Getting Started With Developing DSC Modules&rdquo; information at the GitHub repository</a> as well.</p>
]]></content:encoded></item><item><title>Coming Soon: 55039 "PowerShell Scripting and Toolmaking" Course</title><link>https://powershell.org/articles/2013-08-12-coming-soon-55039-powershell-scripting-and-toolmaking-course/</link><guid>https://powershell.org/articles/2013-08-12-coming-soon-55039-powershell-scripting-and-toolmaking-course/</guid><pubDate>Mon, 12 Aug 2013 15:23:53 +0000</pubDate><description>&lt;p&gt;Later this month, Jason Helmick will be offering a revised &amp;ldquo;PowerShell Scripting and Toolmaking&amp;rdquo; course at &lt;a href="http://interfacett.com"&gt;Interface Technical Training&lt;/a&gt; in Phoenix. This new course carries the Microsoft Courseware Marketplace number 55039 - that&amp;rsquo;s right, this is an official, unofficial course that will be available to all Microsoft training partners!&lt;br&gt;
(Courseware Marketplace offerings are not written or endorsed by Microsoft, but they are equivalent to Official Curriculum in many ways, including being eligible for Software Assurance voucher programs. Marketplace offerings supplement Official offerings by providing courses that Microsoft doesn&amp;rsquo;t have the time or resources to generate themselves.)&lt;br&gt;
This course is based &lt;em&gt;directly&lt;/em&gt; on &lt;em&gt;Learn PowerShell Toolmaking in a Month of Lunches&lt;/em&gt;, and incorporates much of that book&amp;rsquo;s actual text (in fact, a portion of the course&amp;rsquo;s sale price goes to the book publisher, with a portion of &lt;em&gt;that&lt;/em&gt; going to the book authors as royalties). That&amp;rsquo;s combined with a full slide deck, some awesome brand-new labs, lab answer key, &amp;ldquo;starting points&amp;rdquo; (for lab students who fall behind), and a complete inventory of demo scripts for the instructor to use. It walks through a quick PowerShell review, and moves all the way through creating modules, advanced functions, custom views, and much more. It&amp;rsquo;s a pretty handy course, and even dives into creating &amp;ldquo;controller&amp;rdquo; scripts, such as scripts that automate processes or generate HTML reports. We provide a complete 3-VM build guide, and a simple ISO image containing all of the instructor and student files. Students are even welcome to download that ISO themselves for later reference! That URL will be provided in the student manual.&lt;br&gt;
I&amp;rsquo;m especially proud of the labs, and thankful to Mike Robbins and Jason Helmick for debugging them for me. Through the main part of the course, students have &lt;em&gt;three&lt;/em&gt; lab tracks (A, B, and C) to choose from - and overachievers can work on more than one track. Through each module, the labs gradually build from a basic command to a complete, fleshed-out &amp;ldquo;script cmdlet&amp;rdquo; packaged in a module, with a custom view and more. It&amp;rsquo;s extremely realistic, and it means much of the classroom time is spent on hands-on labs, where students will get the most value for their money.&lt;br&gt;
This course is designed to complement Microsoft&amp;rsquo;s official 10961 course, which covers substantially the same material as &lt;em&gt;Learn Windows PowerShell in a Month of Lunches&lt;/em&gt;, meaning 55039 is kind of a &amp;ldquo;sequel&amp;rdquo; course. Training centers are welcome to offer a 5-day accelerated class that combines both courses; that&amp;rsquo;s pretty much the class I teach myself. I don&amp;rsquo;t personally categorize 55039 as &amp;ldquo;advanced;&amp;rdquo; rather, it&amp;rsquo;s more of a specific application of PowerShell - building reusable tools. I do offer an &lt;a href="http://itpro.concentratedtech.com/training"&gt;advanced course of my own&lt;/a&gt;, and there&amp;rsquo;s a chance for that to become a packaged course in the future.&lt;br&gt;
After the beta is complete, the course will be orderable in the Marketplace with a suggested price of $150 per student. It&amp;rsquo;s a full 5-day course, with &lt;em&gt;multiple&lt;/em&gt; lab tracks per module, so I felt that was a pretty fair price, especially since students basically get the &lt;em&gt;Toolmaking&lt;/em&gt; book &amp;ldquo;included&amp;rdquo; in their manual!&lt;br&gt;
If any other trainers would like to know more about the course, they&amp;rsquo;re welcome to &lt;a href="http://concentratedtech.com/contact"&gt;contact me&lt;/a&gt;. We will be selling it directly as well, for trainers who can&amp;rsquo;t access the Marketplace.&lt;br&gt;
Download the table of contents: &lt;a href="https://powershell.org/wp-content/uploads/2013/08/55039-TOC.pdf"&gt;55039-TOC&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Later this month, Jason Helmick will be offering a revised &ldquo;PowerShell Scripting and Toolmaking&rdquo; course at<a href="http://interfacett.com">Interface Technical Training</a> in Phoenix. This new course carries the Microsoft Courseware Marketplace number 55039 - that&rsquo;s right, this is an official, unofficial course that will be available to all Microsoft training partners!<br>
(Courseware Marketplace offerings are not written or endorsed by Microsoft, but they are equivalent to Official Curriculum in many ways, including being eligible for Software Assurance voucher programs. Marketplace offerings supplement Official offerings by providing courses that Microsoft doesn&rsquo;t have the time or resources to generate themselves.)<br>
This course is based <em>directly</em> on <em>Learn PowerShell Toolmaking in a Month of Lunches</em>, and incorporates much of that book&rsquo;s actual text (in fact, a portion of the course&rsquo;s sale price goes to the book publisher, with a portion of<em>that</em> going to the book authors as royalties). That&rsquo;s combined with a full slide deck, some awesome brand-new labs, lab answer key, &ldquo;starting points&rdquo; (for lab students who fall behind), and a complete inventory of demo scripts for the instructor to use. It walks through a quick PowerShell review, and moves all the way through creating modules, advanced functions, custom views, and much more. It&rsquo;s a pretty handy course, and even dives into creating &ldquo;controller&rdquo; scripts, such as scripts that automate processes or generate HTML reports. We provide a complete 3-VM build guide, and a simple ISO image containing all of the instructor and student files. Students are even welcome to download that ISO themselves for later reference! That URL will be provided in the student manual.<br>
I&rsquo;m especially proud of the labs, and thankful to Mike Robbins and Jason Helmick for debugging them for me. Through the main part of the course, students have <em>three</em> lab tracks (A, B, and C) to choose from - and overachievers can work on more than one track. Through each module, the labs gradually build from a basic command to a complete, fleshed-out &ldquo;script cmdlet&rdquo; packaged in a module, with a custom view and more. It&rsquo;s extremely realistic, and it means much of the classroom time is spent on hands-on labs, where students will get the most value for their money.<br>
This course is designed to complement Microsoft&rsquo;s official 10961 course, which covers substantially the same material as <em>Learn Windows PowerShell in a Month of Lunches</em>, meaning 55039 is kind of a &ldquo;sequel&rdquo; course. Training centers are welcome to offer a 5-day accelerated class that combines both courses; that&rsquo;s pretty much the class I teach myself. I don&rsquo;t personally categorize 55039 as &ldquo;advanced;&rdquo; rather, it&rsquo;s more of a specific application of PowerShell - building reusable tools. I do offer an<a href="http://itpro.concentratedtech.com/training">advanced course of my own</a>, and there&rsquo;s a chance for that to become a packaged course in the future.<br>
After the beta is complete, the course will be orderable in the Marketplace with a suggested price of $150 per student. It&rsquo;s a full 5-day course, with <em>multiple</em> lab tracks per module, so I felt that was a pretty fair price, especially since students basically get the <em>Toolmaking</em> book &ldquo;included&rdquo; in their manual!<br>
If any other trainers would like to know more about the course, they&rsquo;re welcome to<a href="http://concentratedtech.com/contact">contact me</a>. We will be selling it directly as well, for trainers who can&rsquo;t access the Marketplace.<br>
Download the table of contents: <a href="https://powershell.org/wp-content/uploads/2013/08/55039-TOC.pdf">55039-TOC</a></p>
]]></content:encoded></item><item><title>My PowerShell Workflow Series on TechNet Magazine</title><link>https://powershell.org/articles/2013-08-12-my-powershell-workflow-series-on-technet-magazine/</link><guid>https://powershell.org/articles/2013-08-12-my-powershell-workflow-series-on-technet-magazine/</guid><pubDate>Mon, 12 Aug 2013 13:51:33 +0000</pubDate><description>&lt;p&gt;As most folks are aware, I&amp;rsquo;ve been writing the &lt;a href="http://technet.microsoft.com/en-us/magazine/ff628337.aspx?sdmr=windowspowershell&amp;amp;sdmi=columns"&gt;&lt;em&gt;Windows PowerShell&lt;/em&gt; column&lt;/a&gt; for Microsoft&amp;rsquo;s _TechNet Magazine _for&amp;hellip; wow, going on 7 years now. For 2013, I was doing a serialized column on PowerShell Workflow, introducing a bit of the technology at a time in each month&amp;rsquo;s article. Eagle-eyed observers will note that the series has &amp;ldquo;paused,&amp;rdquo; with no new articles in July or August.&lt;br&gt;
First, I&amp;rsquo;m sorry for the interruption. Unfortunately, right now Microsoft is re-evaluating and re-positioning TechNet Magazine (perhaps in line with a larger re-considering of the TechNet brand, where they recently discontinued the subscription product), and for the time being the company is sticking with internally generated content for TechNet Magazine. I&amp;rsquo;m hopeful the company will come to a decision soon, and I&amp;rsquo;ll try and keep you posted here.&lt;br&gt;
My past columns (all 77 of them) are still online and accessible, along with hundreds of other articles stretching back almost 8 years.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>As most folks are aware, I&rsquo;ve been writing the <a href="http://technet.microsoft.com/en-us/magazine/ff628337.aspx?sdmr=windowspowershell&amp;sdmi=columns"><em>Windows PowerShell</em> column</a> for Microsoft&rsquo;s _TechNet Magazine _for&hellip; wow, going on 7 years now. For 2013, I was doing a serialized column on PowerShell Workflow, introducing a bit of the technology at a time in each month&rsquo;s article. Eagle-eyed observers will note that the series has &ldquo;paused,&rdquo; with no new articles in July or August.<br>
First, I&rsquo;m sorry for the interruption. Unfortunately, right now Microsoft is re-evaluating and re-positioning TechNet Magazine (perhaps in line with a larger re-considering of the TechNet brand, where they recently discontinued the subscription product), and for the time being the company is sticking with internally generated content for TechNet Magazine. I&rsquo;m hopeful the company will come to a decision soon, and I&rsquo;ll try and keep you posted here.<br>
My past columns (all 77 of them) are still online and accessible, along with hundreds of other articles stretching back almost 8 years.</p>
]]></content:encoded></item><item><title>A Quick #PowerShell #PSHSummit Update (Europe &amp; NA)</title><link>https://powershell.org/articles/2013-08-08-a-quick-powershell-pshsummit-update-europe-na/</link><guid>https://powershell.org/articles/2013-08-08-a-quick-powershell-pshsummit-update-europe-na/</guid><pubDate>Thu, 08 Aug 2013 20:44:11 +0000</pubDate><description>&lt;p&gt;&lt;strong&gt;PowerShell Summit North America 2014&lt;/strong&gt;, April 28-30 (special precon on April 27) is open for registration to our 2013 alumni, shareholders, and to TechLetter subscribers. The alumni block will be released on August 15, and the subscriber block on September 15th; shortly after, sales will be open to the public. If you&amp;rsquo;re a shareholder, alumni, or subscriber, and you didn&amp;rsquo;t get your registration in e-mail, drop me a line (use the Contact link in the Site Info menu). Please only contact me if you&amp;rsquo;re anxious to register right now, so I don&amp;rsquo;t get swamped.&lt;br&gt;
North America will be in Bellevue, WA, adjacent to Microsoft offices up there; we will
investigate
a move East for the 2015 show, just to perhaps spread the love a bit. We know SEA isn&amp;rsquo;t the cheapest travel destination.&lt;br&gt;
North America&amp;rsquo;s &lt;strong&gt;call for topics&lt;/strong&gt; should start fairly soon, and that information will be posted here, along with information on how to submit prospective sessions. I won&amp;rsquo;t be taking the lead on that process, but some of my fellow Board members will be, so watch for their posts.&lt;br&gt;
&lt;strong&gt;PowerShell Summit Europe 2014&lt;/strong&gt; is being tentatively scheduled for September or October 2014. Our city shortlist includes Munich, Milan, and Amsterdam; we&amp;rsquo;re too far out at this point to make inquiries with prospective venues (they usually work only 8-12 months out), but we&amp;rsquo;ve assembled a list to contact over the next couple of months. Venue pricing and availability (and suitability) will be a significant set of factors in the final city selection, and we&amp;rsquo;ll post details right here.&lt;br&gt;
You&amp;rsquo;ll notice a &amp;ldquo;PowerShell Summit&amp;rdquo; post category here on PowerShell.org; that&amp;rsquo;s your one and official source for news and info, with our Summit Page being your one and official source for more static information on both events. You can follow &lt;a href="http://twitter.com/pshsummit"&gt;@PSHSummit&lt;/a&gt; on Twitter, which will be a good way to receive notifications of new posts here, but which will not contain any information not available on this site. We also try to hashtag #PSHSummit on Twitter, if you&amp;rsquo;d like to watch out for that.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><strong>PowerShell Summit North America 2014</strong>, April 28-30 (special precon on April 27) is open for registration to our 2013 alumni, shareholders, and to TechLetter subscribers. The alumni block will be released on August 15, and the subscriber block on September 15th; shortly after, sales will be open to the public. If you&rsquo;re a shareholder, alumni, or subscriber, and you didn&rsquo;t get your registration in e-mail, drop me a line (use the Contact link in the Site Info menu). Please only contact me if you&rsquo;re anxious to register right now, so I don&rsquo;t get swamped.<br>
North America will be in Bellevue, WA, adjacent to Microsoft offices up there; we will
investigate
a move East for the 2015 show, just to perhaps spread the love a bit. We know SEA isn&rsquo;t the cheapest travel destination.<br>
North America&rsquo;s<strong>call for topics</strong> should start fairly soon, and that information will be posted here, along with information on how to submit prospective sessions. I won&rsquo;t be taking the lead on that process, but some of my fellow Board members will be, so watch for their posts.<br><strong>PowerShell Summit Europe 2014</strong> is being tentatively scheduled for September or October 2014. Our city shortlist includes Munich, Milan, and Amsterdam; we&rsquo;re too far out at this point to make inquiries with prospective venues (they usually work only 8-12 months out), but we&rsquo;ve assembled a list to contact over the next couple of months. Venue pricing and availability (and suitability) will be a significant set of factors in the final city selection, and we&rsquo;ll post details right here.<br>
You&rsquo;ll notice a &ldquo;PowerShell Summit&rdquo; post category here on PowerShell.org; that&rsquo;s your one and official source for news and info, with our Summit Page being your one and official source for more static information on both events. You can follow<a href="http://twitter.com/pshsummit">@PSHSummit</a> on Twitter, which will be a good way to receive notifications of new posts here, but which will not contain any information not available on this site. We also try to hashtag #PSHSummit on Twitter, if you&rsquo;d like to watch out for that.</p>
]]></content:encoded></item><item><title>Is this list "Everything" in PowerShell?</title><link>https://powershell.org/articles/2013-08-06-is-this-list-everything-in-powershell/</link><guid>https://powershell.org/articles/2013-08-06-is-this-list-everything-in-powershell/</guid><pubDate>Tue, 06 Aug 2013 20:11:04 +0000</pubDate><description>&lt;p&gt;Soooo&amp;hellip;. it&amp;rsquo;s time for me to start looking at updating my various training materials (books, videos, courses, whatnot) for v4.&lt;br&gt;
I&amp;rsquo;m going to, with at least some of these, take an all-versions approach. I&amp;rsquo;ll teach what&amp;rsquo;s in v2, then cover what v3 added, then cover v4, etc. It&amp;rsquo;ll be easier to maintain over the upcoming years.&lt;br&gt;
For right now, I&amp;rsquo;m trying to assemble an organized topic list of &amp;ldquo;everything&amp;rdquo; the shell does. Now, I need to wrap that in an important caveat: I&amp;rsquo;m aiming at &lt;em&gt;admins&lt;/em&gt;. Not developers. I&amp;rsquo;m not saying devs aren&amp;rsquo;t a great audience, but for this project I need to constrain my scope to just the admin audience. I&amp;rsquo;m also focused mainly on what the shell does _natively, _with only a few diversions into external or underlying technologies. Those are fixed caveats for this project - no exceptions.&lt;br&gt;
Right now I&amp;quot;m kind of chunking the list into what I feel can be taught (by me) in 20-30 minutes, or a book chapter, or something like that. This isn&amp;rsquo;t necessarily how the material will be presented - this is just me organizing my thoughts so as to not miss important stuff.&lt;br&gt;
So, given the list below, what do you feel is missing?&lt;br&gt;
(Numbers are major topics; letters are basically my mental notes about what the topic might include that I might otherwise forget; like I said, this isn&amp;rsquo;t meant to be a real book outline - it&amp;rsquo;s just a topic list)&lt;br&gt;
PowerShell Core&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Soooo&hellip;. it&rsquo;s time for me to start looking at updating my various training materials (books, videos, courses, whatnot) for v4.<br>
I&rsquo;m going to, with at least some of these, take an all-versions approach. I&rsquo;ll teach what&rsquo;s in v2, then cover what v3 added, then cover v4, etc. It&rsquo;ll be easier to maintain over the upcoming years.<br>
For right now, I&rsquo;m trying to assemble an organized topic list of &ldquo;everything&rdquo; the shell does. Now, I need to wrap that in an important caveat: I&rsquo;m aiming at <em>admins</em>. Not developers. I&rsquo;m not saying devs aren&rsquo;t a great audience, but for this project I need to constrain my scope to just the admin audience. I&rsquo;m also focused mainly on what the shell does _natively, _with only a few diversions into external or underlying technologies. Those are fixed caveats for this project - no exceptions.<br>
Right now I"m kind of chunking the list into what I feel can be taught (by me) in 20-30 minutes, or a book chapter, or something like that. This isn&rsquo;t necessarily how the material will be presented - this is just me organizing my thoughts so as to not miss important stuff.<br>
So, given the list below, what do you feel is missing?<br>
(Numbers are major topics; letters are basically my mental notes about what the topic might include that I might otherwise forget; like I said, this isn&rsquo;t meant to be a real book outline - it&rsquo;s just a topic list)<br>
PowerShell Core</p><ol><li>Series Introduction and Lab Setup</li><li>Windows PowerShell Introduction and Requirements</li><li>Finding and Discovering Commands<br>
a. Importing modules and snapins</li><li>Interpreting Command Help</li><li>Running Commands</li><li>Running External Commands: Tips and Tricks<br>
a. $Lastexitcode</li><li>Working with PSProviders and PSDrives</li><li>Variables, Strings, Hashtables, and Core Operators<br>
a. Double quote tricks, subexpressions<br>
b. Here-strings<br>
c. Escapes<br>
d. Variable types<br>
e. Arrays<br>
f. Math operators</li><li>Regular Expression Basics<br>
a. Basic regex language<br>
b. &ldquo;“Match<br>
c. Select-String</li><li>Learning the Pipeline: Exporting and Converting Data</li><li>Understanding Objects in PowerShell</li><li>Core Commands: Selecting, Sorting, Meauring, and More</li><li>How the PowerShell Pipeline Works</li><li>Formatting Command Output</li><li>Comparison Operators and Filtering</li><li>Advanced Operators</li><li>Setting Default Values for Command Parameters</li><li>Enumerating Objects in the Pipeline<br>
a. Working with object methods</li><li>Advanced Date and String Manipulation</li><li>Soup to Nuts: Completing a New Task<br>
PowerShell Remoting</li><li>PowerShell Remoting Basics</li><li>Persistent Remoting: PSSessions</li><li>Implicit Remoting: Using Commands on Another Computer</li><li>Advanced Remoting: Passing Data and Working with Output</li><li>Advanced Remoting: Crossing Domain Boundaries</li><li>Advanced Remoting: Custom Session Configurations</li><li>Web Remoting: PowerShell Web Access<br>
WMI and CIM</li><li>WMI and CIM: WMI, Docs, and the Repository</li><li>WMI and CIM: Using WMI to Commands Query Data</li><li>WMI and CIM: Using CIM Commands to Query Data</li><li>WMI and CIM: Filtering and WMI Query Language</li><li>WMI and CIM: Associations</li><li>WMI and CIM: Working with CIM Sessions</li><li>WMI and CIM: Executing Instance Methods<br>
Jobs</li><li>Background Job Basics: Local, WMI, and Remoting Jobs</li><li>Scheduled Background Jobs<br>
Scripting in PowerShell</li><li>PowerShell Script Security</li><li>Prompting for Input, Producing Output</li><li>Creating Basic Parameterized Scripts</li><li>PowerShell Scripting: Logical Constructs</li><li>PowerShell Scripting: Looping Constructs<br>
a. Break and Continue</li><li>PowerShell Scripting: Basic Functions, Filters, and Pipeline Functions</li><li>PowerShell Scripting: Best Practices<br>
a. Line breaking<br>
b. Splatting<br>
c. Formatting<br>
d. Source Control<br>
e. Etc.</li><li>PowerShell Scripting: From Command to Script to Function to Module</li><li>PowerShell Scripting: Scope</li><li>PowerShell Scripting: Combining Data from Multiple Sources<br>
a. Ordered hashtables<br>
Advanced Functions (&ldquo;Script Cmdlets&rdquo;)</li><li>Advanced Functions: Adding Help</li><li>Advanced Functions: Parameter Attributes</li><li>Advanced Functions: Pipeline Input</li><li>Advanced Functions: Parameter Sets<br>
Advanced Scripting Techniques</li><li>Creating Private Utility Functions and Preference Variables</li><li>Adding Error Capturing and Handling to a Function</li><li>Advanced Error Handling<br>
a. Variety of error capturing options<br>
b. Catching multiple exceptions<br>
c. Etc.</li><li>Error Handling the Old Way: Trap</li><li>Debugging Techniques</li><li>Creating Custom Formatting Views</li><li>Creating Custom Type Extensions</li><li>Working with SQL Server (and other) Databases</li><li>Working with XML Data Files</li><li>Supporting &ldquo;“WhatIf and &ldquo;“Confirm in Functions</li><li>Troubleshooting and Tracing the Pipeline</li><li>Using Object Hierarchies for Complex Output</li><li>Creating a Proxy Function<br>
PowerShell in the Field</li><li>From the Field: Enhanced HTML Reporting</li><li>From the Field: Trend Analysis Reporting</li><li>From the Field: Scraping HTML Pages<br>
PowerShell Workflow</li><li>Introduction to PowerShell Workflow<br>
Desired State Configuration</li><li>Desired State Configuration: The Basics</li><li>Desired State Configuration: Configuration Scripts</li><li>Desired State Configuration: Writing Resources</li><li>Globalizing a Function or Script</li><li>Discovering and Using COM Objects</li><li>Discovering and Using .NET Classes and Instances<br>
Writing Scripts for Other People</li><li>Controller Scripts: Automating Business Processes</li><li>Controller Scripts: A Menu of Tools</li><li>Creating a GUI Tool: The GUI</li><li>Creating a GUI Tool: The Code</li><li>Creating a GUI Tool: The Output</li><li>Creating a GUI Tool: Using Data Tables<br>
Advanced Core Techniques, Tricks, and Tips</li><li>Using Type Accelerators<br>
a. [ADSI]<br>
b. [XML]<br>
c. [VOID]<br>
d. where they&rdquo;™re documented</li><li>The Big Gotchas in PowerShell<br>
a. (from the ebook list)</li><li>Fun with Profiles<br>
a. Profiles and hosts<br>
b. Prompt<br>
c. Colors<br>
d. Get a credential</li><li>Random Tips and Tricks<br>
a. Redirection changing pipelines<br>
b. $$<br>
c. $?<br>
d. Dot sourcing</li></ol>
]]></content:encoded></item><item><title>PowerShell Great Debate: Script or Function?</title><link>https://powershell.org/articles/2013-08-06-powershell-great-debate-script-or-function/</link><guid>https://powershell.org/articles/2013-08-06-powershell-great-debate-script-or-function/</guid><pubDate>Tue, 06 Aug 2013 14:31:41 +0000</pubDate><description>&lt;p&gt;One of the most frequent comments in The Scripting Games this year was along the lines of, &amp;ldquo;you should have submitted this as a function, not a script.&amp;rdquo; Of course, the second-most frequent comment was something like, &amp;ldquo;you shouldn&amp;rsquo;t have submitted this as a function.&amp;rdquo;&lt;br&gt;
Let&amp;rsquo;s be clear: if an assignment explicitly asks for a function, you should write one. What we&amp;rsquo;re debating are the pros and cons of a &lt;em&gt;single tool&lt;/em&gt; being written one way or another. Read that again: _a single tool. _If you&amp;rsquo;re writing a library of tools, it&amp;rsquo;s obvious that writing them as functions for inclusion in a single file (like a script module) is beneficial.&lt;br&gt;
Some argue that any tool is potentially going to be included in a function&amp;hellip; so why not write it that way to begin with? Others argue that functions are a smidge harder to test, so why not just write a script?&lt;br&gt;
This is a debate I don&amp;rsquo;t personally have a strong stake in. I mean, we&amp;rsquo;re literally talking about a _single keyword. _Take &lt;em&gt;any&lt;/em&gt; script, add the &lt;strong&gt;function&lt;/strong&gt; keyword, a function name, and a couple of curly brackets, and you&amp;rsquo;ve got a function. This really shouldn&amp;rsquo;t be a criteria when you&amp;rsquo;re looking at a contest entry&amp;hellip; or even when you&amp;rsquo;re looking at something a colleague offered to you.&lt;br&gt;
Or should it?&lt;br&gt;
[boilerplate greatdebate]&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>One of the most frequent comments in The Scripting Games this year was along the lines of, &ldquo;you should have submitted this as a function, not a script.&rdquo; Of course, the second-most frequent comment was something like, &ldquo;you shouldn&rsquo;t have submitted this as a function.&rdquo;<br>
Let&rsquo;s be clear: if an assignment explicitly asks for a function, you should write one. What we&rsquo;re debating are the pros and cons of a <em>single tool</em> being written one way or another. Read that again: _a single tool. _If you&rsquo;re writing a library of tools, it&rsquo;s obvious that writing them as functions for inclusion in a single file (like a script module) is beneficial.<br>
Some argue that any tool is potentially going to be included in a function&hellip; so why not write it that way to begin with? Others argue that functions are a smidge harder to test, so why not just write a script?<br>
This is a debate I don&rsquo;t personally have a strong stake in. I mean, we&rsquo;re literally talking about a _single keyword. _Take <em>any</em> script, add the <strong>function</strong> keyword, a function name, and a couple of curly brackets, and you&rsquo;ve got a function. This really shouldn&rsquo;t be a criteria when you&rsquo;re looking at a contest entry&hellip; or even when you&rsquo;re looking at something a colleague offered to you.<br>
Or should it?<br>
[boilerplate greatdebate]</p>
]]></content:encoded></item><item><title>PowerShell Great Debate: PowerShell Versions?</title><link>https://powershell.org/articles/2013-08-01-powershell-great-debate-powershell-versions/</link><guid>https://powershell.org/articles/2013-08-01-powershell-great-debate-powershell-versions/</guid><pubDate>Thu, 01 Aug 2013 14:32:38 +0000</pubDate><description>&lt;p&gt;&lt;em&gt;Today&amp;rsquo;s Great Debate is a bonus, offered from former team member June Blender. Take it away, June!&lt;/em&gt;&lt;br&gt;
Like several of the excellent debates in our Great Debate series, this debate issue arose during in Scripting Games 2013 when different judges used different selection criteria to evaluate entries.&lt;br&gt;
Some judges, like me, wanted to see evidence that the scripter had studied all features of the newest version of the Windows PowerShell language and selected the best approach for their solution. Other judges wanted the solutions to work on as many computers as possible.&lt;br&gt;
Outside of the Scripting Games, this issue is very practical and very important. If you&amp;quot;™re writing a script to work on particular computers in your enterprise, you know which versions of Windows PowerShell are installed and which features you can use. But when you write a shared script or functions for a module, your scripts/functions can run in any environment.&lt;br&gt;
What&amp;quot;™s the version best practice?&lt;br&gt;
I think we can all agree that a #Requires statement should appear in any shared script.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><em>Today&rsquo;s Great Debate is a bonus, offered from former team member June Blender. Take it away, June!</em><br>
Like several of the excellent debates in our Great Debate series, this debate issue arose during in Scripting Games 2013 when different judges used different selection criteria to evaluate entries.<br>
Some judges, like me, wanted to see evidence that the scripter had studied all features of the newest version of the Windows PowerShell language and selected the best approach for their solution. Other judges wanted the solutions to work on as many computers as possible.<br>
Outside of the Scripting Games, this issue is very practical and very important. If you"™re writing a script to work on particular computers in your enterprise, you know which versions of Windows PowerShell are installed and which features you can use. But when you write a shared script or functions for a module, your scripts/functions can run in any environment.<br>
What"™s the version best practice?<br>
I think we can all agree that a #Requires statement should appear in any shared script.</p><p><code>#Requires -Version [.]</code>In fact, maybe we need a version property of commands that can be queried by using Get-Command, like the PowerShellVersion property of modules?<br>
But, beyond that, should you restrict yourself to features in the oldest supported version of Windows PowerShell, or the most common version, or can you use features in the newest version, even if your scripts don"™t run on all computers in all enterprises?<br>
Sometimes, the answers are trivial. The simplified syntax in Windows PowerShell 3.0 that omits curly braces {} and &ldquo;$_.&rdquo; is just syntactic sugar for the original syntax. We might decide that it"™s best to avoid it unless you"™re sure that all computers are running at least 3.0.<br>
At the other extreme are features that don"™t have any equivalent in a previous version. What if your module would benefit from using scheduled jobs, CIM commands, or workflows? Must you avoid them?<br>
In the middle are cases where you can use a somewhat equivalent feature. Can you use Get-CimInstance, or are we forever tied to Get-WmiObject? Can you use PSCustomObject or are you committed to Add-Member? Do you need to write Types.ps1xml files when dynamic type data would suffice?</p>
]]></content:encoded></item></channel></rss>