&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 February 2013 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2013/02/</link><description>Recent content in Articles from February 2013 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2013/02/index.xml" rel="self" type="application/rss+xml"/><item><title>Book offer"“AD Management in a Month of Lunches</title><link>https://powershell.org/articles/2013-02-27-book-offer-ad-management-in-a-month-of-lunches/</link><guid>https://powershell.org/articles/2013-02-27-book-offer-ad-management-in-a-month-of-lunches/</guid><pubDate>Wed, 27 Feb 2013 20:24:14 +0000</pubDate><description>&lt;p&gt;AD Management in a month of lunches is today&amp;quot;™s deal of the day from Manning &amp;ldquo;“ &lt;a href="http://www.manning.com/"&gt;www.manning.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The get 50% off today using code &lt;strong&gt;dotd0227cc. The offer is good for today only&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The same code can be used for 50% off PowerShell in Practice&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2813/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2813/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2813&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>AD Management in a month of lunches is today"™s deal of the day from Manning &ldquo;“<a href="http://www.manning.com/">www.manning.com</a></p><p>The get 50% off today using code<strong>dotd0227cc. The offer is good for today only</strong></p><p>The same code can be used for 50% off PowerShell in Practice</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2813/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2813/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2813&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>Last nights Live Meeting</title><link>https://powershell.org/articles/2013-02-27-last-nights-live-meeting/</link><guid>https://powershell.org/articles/2013-02-27-last-nights-live-meeting/</guid><pubDate>Wed, 27 Feb 2013 20:18:54 +0000</pubDate><description>&lt;p&gt;The sound was awful on last night&amp;quot;™s Live Meeting so I intend to re-record it at the weekend. I&amp;quot;™ll post the recording and scripts once its done.&lt;/p&gt;
&lt;p&gt;I&amp;quot;™m also investigating an alternative delivery mechanism that will hopefully solve the sound issues.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2812/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2812/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2812&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The sound was awful on last night"™s Live Meeting so I intend to re-record it at the weekend. I"™ll post the recording and scripts once its done.</p><p>I"™m also investigating an alternative delivery mechanism that will hopefully solve the sound issues.</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2812/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2812/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2812&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>Filter or LDAP filter</title><link>https://powershell.org/articles/2013-02-27-filter-or-ldap-filter/</link><guid>https://powershell.org/articles/2013-02-27-filter-or-ldap-filter/</guid><pubDate>Wed, 27 Feb 2013 20:16:47 +0000</pubDate><description>&lt;p&gt;Many of the Microsoft AD cmdlets have a &amp;ldquo;“Filter and an &amp;ldquo;“LDAPFilter parameter. So what&amp;rdquo;™s the difference?&lt;/p&gt;
&lt;p&gt;PS&amp;gt; Get-Help Get-ADUser -Parameter *Filter*&lt;/p&gt;
&lt;p&gt;-Filter&lt;br&gt;
Specifies a query string that retrieves Active Directory objects. This string uses the PowerShell Expression&lt;br&gt;
Language syntax. The PowerShell Expression Language syntax provides rich type-conversion support for value types received by the Filter parameter. The syntax uses an in-order representation, which means that the operator is placed between the operand and the value. For more information about the Filter parameter, see about_ActiveDirectory_Filter.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Many of the Microsoft AD cmdlets have a &ldquo;“Filter and an &ldquo;“LDAPFilter parameter. So what&rdquo;™s the difference?</p><p>PS&gt; Get-Help Get-ADUser -Parameter *Filter*</p><p>-Filter<br>
Specifies a query string that retrieves Active Directory objects. This string uses the PowerShell Expression<br>
Language syntax. The PowerShell Expression Language syntax provides rich type-conversion support for value types received by the Filter parameter. The syntax uses an in-order representation, which means that the operator is placed between the operand and the value. For more information about the Filter parameter, see about_ActiveDirectory_Filter.</p><p>-LDAPFilter<br>
Specifies an LDAP query string that is used to filter Active Directory objects. You can use this parameter to run your existing LDAP queries. The Filter parameter syntax supports the same functionality as the LDAP syntax. For more information, see the Filter parameter description and the about_ActiveDirectory_Filter.</p><p>This means you have two ways to approach a problem. Lets think about finding a single user:</p><p>Get-ADUser -LDAPFilter &ldquo;(samAccountName=Richard)&rdquo;</p><p>Get-ADUser -Filter {samAccountName -eq &lsquo;Richard&rsquo;}</p><p>The LDAPFilter uses LDAP query syntax &ldquo;“ attribute and value. Filter uses PowerShell syntax. You could think of the &ldquo;“Filter as a condensed version of</p><p>Get-ADUser -Filter * | where samAccountName -eq &lsquo;Richard&rsquo;</p><p>Use the &ldquo;“Filter parameter because its less typing and you filter early &ldquo;“ especially important if querying across a network.</p><p>You can use multiple attributes in the filters – &amp; implies AND in the LDAP filter</p><p>Get-ADUser -LDAPFilter &ldquo;(&amp;(givenname=Bill)(sn=Green))&rdquo;</p><p>Get-ADUser -Filter {GivenName -eq &lsquo;Bill&rsquo; -and Surname -eq &lsquo;Green&rsquo;}</p><p>The LDAP filter HAS to use the correct attribute name but Filter uses the property name returned by Get-ADUser.</p><p>LDAP filters can get very complicated very quickly. For instance if you want to find the disabled user accounts</p><p>Get-ADUser -LDAPFilter &ldquo;(&amp;(objectclass=user)(objectcategory=user)(useraccountcontrol:1.2.840.113556.1.4.803:=2))&rdquo;</p><p>Get-ADUser -Filter {Enabled -eq $false}</p><p>Alternatively,and in my opinion, its simpler to use Search-ADaccount</p><p>Search-ADAccount -AccountDisabled &ldquo;“UsersOnly</p><p>Which one should you use? The one that best solves your problem. I mix &amp; match to suit the search I&rdquo;™m performing</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2811/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2811/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2811&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>PowerShell.org Forums Etiquette</title><link>https://powershell.org/articles/2013-02-27-powershell-org-forums-etiquette/</link><guid>https://powershell.org/articles/2013-02-27-powershell-org-forums-etiquette/</guid><pubDate>Wed, 27 Feb 2013 17:19:13 +0000</pubDate><description>&lt;p&gt;Folks often ask for some advice on what to do, and what not to do, in the forums. Here are some suggestions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Don&amp;rsquo;t apologize for being a &amp;ldquo;noob&amp;rdquo; or &amp;ldquo;newbie&amp;rdquo; or &amp;ldquo;n00b.&amp;rdquo; There&amp;rsquo;s just no need - nobody will think you&amp;rsquo;re stupid, and the forums are all about asking questions. Just ask.&lt;/li&gt;
&lt;li&gt;Try to avoid using obscure or punctuation aliases (like ? and %) - use command names instead. It makes your post easier for everyone, including n00bs, to follow.&lt;/li&gt;
&lt;li&gt;Use the CODE or POWERSHELL buttons in the forums editor to format PowerShell and other code.&lt;/li&gt;
&lt;li&gt;If your problem is solved, find the little green checkmark button along the top of your message (or one of the replies; it&amp;rsquo;s near the Twitter and Facebook and other buttons), and click it. That helps indicate to everyone else that you found a solution.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t post massive scripts. We&amp;rsquo;re all volunteers, and we don&amp;rsquo;t have time to read all that, nor will we copy, paste, and run it. Post an excerpt, and clearly state what you&amp;rsquo;re having problems with.&lt;/li&gt;
&lt;li&gt;Post error messages, as appropriate. They help.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t ask folks to provide you with a complete script, or to rewrite your script. Again, we&amp;rsquo;re all volunteers - respect that we&amp;rsquo;re taking time to help you, and help us minimize that time.&lt;/li&gt;
&lt;li&gt;Try to ask just one question at a time. Posts with ten questions are a lot harder to help with.&lt;/li&gt;
&lt;li&gt;DO post what you&amp;rsquo;ve tried, what errors you got, and what didn&amp;rsquo;t work. It&amp;rsquo;s a lot easier, sometimes, to correct what you&amp;rsquo;ve already done than to try and write something from scratch.&lt;/li&gt;
&lt;li&gt;If you&amp;rsquo;ve been given a working solution, SAY THANK YOU! Then make sure you know WHY it works&amp;hellip; and ask for an explanation if you don&amp;rsquo;t!&lt;/li&gt;
&lt;li&gt;Take the time to educate yourself. Pick up a book, or a training video, or take a class, or attend a conference. Yes, those take time - but it&amp;rsquo;s time well-spent. If you&amp;rsquo;re continually asking other people to spend time answering questions that are &lt;em&gt;already&lt;/em&gt; answered in every book, video, course, etc&amp;hellip;. well, that&amp;rsquo;s kinda wasting &lt;em&gt;their&lt;/em&gt; time, right? Folks on the forums can help you more effectively if you have a base education first.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Have your own etiquette suggestions? Drop &amp;rsquo;em in the comments!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Folks often ask for some advice on what to do, and what not to do, in the forums. Here are some suggestions.</p><ol><li>Don&rsquo;t apologize for being a &ldquo;noob&rdquo; or &ldquo;newbie&rdquo; or &ldquo;n00b.&rdquo; There&rsquo;s just no need - nobody will think you&rsquo;re stupid, and the forums are all about asking questions. Just ask.</li><li>Try to avoid using obscure or punctuation aliases (like ? and %) - use command names instead. It makes your post easier for everyone, including n00bs, to follow.</li><li>Use the CODE or POWERSHELL buttons in the forums editor to format PowerShell and other code.</li><li>If your problem is solved, find the little green checkmark button along the top of your message (or one of the replies; it&rsquo;s near the Twitter and Facebook and other buttons), and click it. That helps indicate to everyone else that you found a solution.</li><li>Don&rsquo;t post massive scripts. We&rsquo;re all volunteers, and we don&rsquo;t have time to read all that, nor will we copy, paste, and run it. Post an excerpt, and clearly state what you&rsquo;re having problems with.</li><li>Post error messages, as appropriate. They help.</li><li>Don&rsquo;t ask folks to provide you with a complete script, or to rewrite your script. Again, we&rsquo;re all volunteers - respect that we&rsquo;re taking time to help you, and help us minimize that time.</li><li>Try to ask just one question at a time. Posts with ten questions are a lot harder to help with.</li><li>DO post what you&rsquo;ve tried, what errors you got, and what didn&rsquo;t work. It&rsquo;s a lot easier, sometimes, to correct what you&rsquo;ve already done than to try and write something from scratch.</li><li>If you&rsquo;ve been given a working solution, SAY THANK YOU! Then make sure you know WHY it works&hellip; and ask for an explanation if you don&rsquo;t!</li><li>Take the time to educate yourself. Pick up a book, or a training video, or take a class, or attend a conference. Yes, those take time - but it&rsquo;s time well-spent. If you&rsquo;re continually asking other people to spend time answering questions that are<em>already</em> answered in every book, video, course, etc&hellip;. well, that&rsquo;s kinda wasting<em>their</em> time, right? Folks on the forums can help you more effectively if you have a base education first.</li></ol><p>Have your own etiquette suggestions? Drop &rsquo;em in the comments!</p>
]]></content:encoded></item><item><title>Advanced Functions webcast</title><link>https://powershell.org/articles/2013-02-25-advanced-functions-webcast/</link><guid>https://powershell.org/articles/2013-02-25-advanced-functions-webcast/</guid><pubDate>Mon, 25 Feb 2013 19:30:24 +0000</pubDate><description>&lt;p&gt;Quick reminder that the UK PowerShell group is hosting a Live Meeting webcast on PowerShell Advanced functions tomorrow &amp;ldquo;“ details from&lt;/p&gt;
&lt;p&gt;&lt;a href="http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/" title="http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/"&gt;http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2810/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2810/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2810&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Quick reminder that the UK PowerShell group is hosting a Live Meeting webcast on PowerShell Advanced functions tomorrow &ldquo;“ details from</p><p><a href="http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/" title="http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/">http://richardspowershellblog.wordpress.com/2013/02/18/uk-powershell-groupadvanced-functions/</a></p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2810/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2810/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2810&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>PowerShell in Depth"“nearly there</title><link>https://powershell.org/articles/2013-02-25-powershell-in-depth-nearly-there/</link><guid>https://powershell.org/articles/2013-02-25-powershell-in-depth-nearly-there/</guid><pubDate>Mon, 25 Feb 2013 19:26:27 +0000</pubDate><description>&lt;p&gt;PowerShell in Depth is rapidly approaching its publication date &amp;ldquo;“ see &lt;a href="http://www.manning.com/jones2"&gt;www.manning.com/jones2&lt;/a&gt; for details&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2809/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2809/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2809&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>PowerShell in Depth is rapidly approaching its publication date &ldquo;“ see<a href="http://www.manning.com/jones2">www.manning.com/jones2</a> for details</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2809/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2809/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2809&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>New book</title><link>https://powershell.org/articles/2013-02-25-new-book/</link><guid>https://powershell.org/articles/2013-02-25-new-book/</guid><pubDate>Mon, 25 Feb 2013 18:57:21 +0000</pubDate><description>&lt;p&gt;My latest book has been released on the Manning Early Access Program (MEAP). Active Directory Management in a Month of Lunches takes the newcomer to AD through the tasks they need to perform to manage their organization&amp;quot;™s AD.&lt;/p&gt;
&lt;p&gt;it assumes no knowledge of AD and shows how to perform the common management tasks from the GUI (AD Administrative Center &amp;amp; the venerable AD Users &amp;amp; Computers) as well as PowerShell (using the Microsoft cmdlets).&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>My latest book has been released on the Manning Early Access Program (MEAP). Active Directory Management in a Month of Lunches takes the newcomer to AD through the tasks they need to perform to manage their organization"™s AD.</p><p>it assumes no knowledge of AD and shows how to perform the common management tasks from the GUI (AD Administrative Center &amp; the venerable AD Users &amp; Computers) as well as PowerShell (using the Microsoft cmdlets).</p><p>Chapters 1-7 are currently available from<a href="http://www.manning.com%5Csiddaway3/">www.manning.com\siddaway3</a> with more to come soon</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2808/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2808/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2808&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>VERIFIED EFFECTIVE for PowerShell 3.0 Toolmaking now live</title><link>https://powershell.org/articles/2013-02-24-verified-effective-for-powershell-3-0-toolmaking-now-live/</link><guid>https://powershell.org/articles/2013-02-24-verified-effective-for-powershell-3-0-toolmaking-now-live/</guid><pubDate>Sun, 24 Feb 2013 19:10:05 +0000</pubDate><description>&lt;p&gt;&lt;a href="http://donjones.com/verified" title="Creating a Windows 2012 Domain Controller"&gt;It&amp;rsquo;s now available globally&lt;/a&gt;.&lt;br&gt;
I suggest downloading the Program Guide, which includes the agreement and directions for enrolling. There&amp;rsquo;s also a specific guide for the PowerShell 3.0 Toolmaking examination, which you should read prior to paying.&lt;br&gt;
Once you&amp;rsquo;ve paid, and sent in the necessary signed paperwork, you&amp;rsquo;ll get your exam info via e-mail. You can log in at any time to download your exam scenario and begin working. From the time of your first login, the clock starts ticking and you have 24 hours to upload your results. After uploading your results, you&amp;rsquo;ll hear back within 5 business days - these are graded by a human, not a machine, so be patient.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><a href="http://donjones.com/verified" title="Creating a Windows 2012 Domain Controller">It&rsquo;s now available globally</a>.<br>
I suggest downloading the Program Guide, which includes the agreement and directions for enrolling. There&rsquo;s also a specific guide for the PowerShell 3.0 Toolmaking examination, which you should read prior to paying.<br>
Once you&rsquo;ve paid, and sent in the necessary signed paperwork, you&rsquo;ll get your exam info via e-mail. You can log in at any time to download your exam scenario and begin working. From the time of your first login, the clock starts ticking and you have 24 hours to upload your results. After uploading your results, you&rsquo;ll hear back within 5 business days - these are graded by a human, not a machine, so be patient.</p>
]]></content:encoded></item><item><title>Creating a Windows 2012 Domain Controller</title><link>https://powershell.org/articles/2013-02-21-creating-a-windows-2012-domain-controller/</link><guid>https://powershell.org/articles/2013-02-21-creating-a-windows-2012-domain-controller/</guid><pubDate>Thu, 21 Feb 2013 19:50:09 +0000</pubDate><description>&lt;p&gt;I decided to replace one of the DCs in my test environment with a Windows 2012 Server Core machine. Server Core has really come of age in Windows 2012 &amp;ldquo;“ its easy to configure.&lt;/p&gt;
&lt;p&gt;I&amp;rdquo;™ve covered configuring a server before but to recap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rename the machine &amp;ldquo;“ use Rename-Computer&lt;/li&gt;
&lt;li&gt;Set Network &amp;ldquo;“ use Set-NetIPInterface (address) &amp;amp; et-DnsClientServerAddress( dns address) &amp;amp; Rename-netAdapter&lt;/li&gt;
&lt;li&gt;Join to domain &amp;ldquo;“ use Add-Computer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To create the domain controller use the ADDSDeployment module. You&amp;rdquo;™ll only find this on servers where you&amp;rdquo;™ve installed the AD Domain Services feature which you do like this:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I decided to replace one of the DCs in my test environment with a Windows 2012 Server Core machine. Server Core has really come of age in Windows 2012 &ldquo;“ its easy to configure.</p><p>I&rdquo;™ve covered configuring a server before but to recap:</p><ul><li>Rename the machine &ldquo;“ use Rename-Computer</li><li>Set Network &ldquo;“ use Set-NetIPInterface (address) &amp; et-DnsClientServerAddress( dns address) &amp; Rename-netAdapter</li><li>Join to domain &ldquo;“ use Add-Computer</li></ul><p>To create the domain controller use the ADDSDeployment module. You&rdquo;™ll only find this on servers where you&rdquo;™ve installed the AD Domain Services feature which you do like this:</p><p>Install-WindowsFeature -Name AD-Domain-Services -Confirm:$false</p><p>Import the module</p><p>Import-Module ADDSDeployment<br>
Get-Command -Module ADDSDeployment</p><p>Create the Domain Controller. This is the equivalent of running DCPROMO in earlier versions. Even better you don&rdquo;™t need the answer file. Everything is a parameter on the cmdlet.</p><p>Install-ADDSDomain Controller -DomainName &ldquo;manticore.org&rdquo; -InstallDns -Credential (Get-Credential manticore\richard) -ApplicationPartitionsToReplicate *</p><p>Thats it! Just wait for replication to happen.</p><p>You can also demote a domain controller</p><p>$cred = Get-Credential<br>
Uninstall-ADDSDomainController -Credential $cred -RemoveApplicationPartitions -Confirm:$false</p><p>Restart the machine and uninstall AD &amp; DNS</p><p>Uninstall-WindowsFeature -Name AD-Domain-Services, DNS -Confirm:$false<br>
Restart-Computer -ComputerName dc02</p><p>Leave the domain</p><p>$cred = Get-Credential manticore\richard<br>
Remove-Computer -UnjoinDomainCredential $cred -Workgroup Test</p><p>Trash the VM.</p><p>And best of all it works over remoting. You will need to recreate the session for restarts &amp; changes but it is really easy.</p><p>Server Core is now a much friendlier option.</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2807/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2807/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2807&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>CIM cmdlets and remote access</title><link>https://powershell.org/articles/2013-02-18-cim-cmdlets-and-remote-access/</link><guid>https://powershell.org/articles/2013-02-18-cim-cmdlets-and-remote-access/</guid><pubDate>Mon, 18 Feb 2013 22:33:04 +0000</pubDate><description>&lt;p&gt;When you used the WMI cmdlets&lt;/p&gt;
&lt;p&gt;Get-WmiObject -Class Win32_logicalDisk -ComputerName RSLAPTOP01&lt;/p&gt;
&lt;p&gt;You were using DCOM to access the remote machine. Even if you accessed the local machine you were using DCOM.&lt;/p&gt;
&lt;p&gt;This changes in PowerShell v3 when using the CIM cmdlets.&lt;/p&gt;
&lt;p&gt;If you don&amp;quot;™t use a computername&lt;/p&gt;
&lt;p&gt;Get-CimInstance -ClassName Win32_logicalDisk&lt;/p&gt;
&lt;p&gt;You use DCOM to access the local machine.&lt;/p&gt;
&lt;p&gt;If you use &amp;ldquo;“computername&lt;/p&gt;
&lt;p&gt;Get-CimInstance -ClassName Win32_logicalDisk -ComputerName RSLAPTOP01&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You use WSMAN to access the machine named &amp;ldquo;“ irrespective of if it is local or remote&lt;/strong&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>When you used the WMI cmdlets</p><p>Get-WmiObject -Class Win32_logicalDisk -ComputerName RSLAPTOP01</p><p>You were using DCOM to access the remote machine. Even if you accessed the local machine you were using DCOM.</p><p>This changes in PowerShell v3 when using the CIM cmdlets.</p><p>If you don"™t use a computername</p><p>Get-CimInstance -ClassName Win32_logicalDisk</p><p>You use DCOM to access the local machine.</p><p>If you use &ldquo;“computername</p><p>Get-CimInstance -ClassName Win32_logicalDisk -ComputerName RSLAPTOP01</p><p><strong>You use WSMAN to access the machine named &ldquo;“ irrespective of if it is local or remote</strong></p><p>A further complication is that the named machine has to be running WSMAN 3.0 i.e. PowerShell v3 is installed.</p><p>If you try to access a PowerShell v2 (WSMAN 2.0) machine with the CIM cmdlets you will get an error. The way round that is to create a CIMsession using DCOM as the transport protocol. If you want to learn how to do that you&rdquo;™ll have to wait until after my session at the PowerShell Summit in April or buy a copy of PowerShell and WMI from<a href="http://www.manning.com/siddaway2">www.manning.com/siddaway2</a></p><p>I saw a number of people using the CIM cmdlets in the scripting games without thought to connectivity issues like this.</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2806/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2806/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2806&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>UK PowerShell Group"“Advanced functions</title><link>https://powershell.org/articles/2013-02-18-uk-powershell-group-advanced-functions/</link><guid>https://powershell.org/articles/2013-02-18-uk-powershell-group-advanced-functions/</guid><pubDate>Mon, 18 Feb 2013 19:57:08 +0000</pubDate><description>&lt;p&gt;When: Tuesday, Feb 26, 2013 7:30 PM (GMT)&lt;/p&gt;
&lt;p&gt;Where: Virtual&lt;/p&gt;
&lt;p&gt;*&lt;del&gt;*&lt;/del&gt;*&lt;del&gt;*&lt;/del&gt;*&lt;del&gt;*&lt;/del&gt;*&lt;del&gt;*&lt;/del&gt;*~*&lt;/p&gt;
&lt;p&gt;Advanced functions give you ability to create functions that act like cmdlets. Learn how to get the most from this powerful part of the PowerShell functionality&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Richard Siddaway has invited you to attend an online meeting using Live Meeting.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=G79DNP&amp;amp;role=attend&amp;amp;pw=9%24t%23%26PK%238"&gt;Join the meeting.&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Audio Information&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Computer Audio&lt;/strong&gt;&lt;br&gt;
To use computer audio, you need speakers and microphone, or a headset.&lt;br&gt;
&lt;strong&gt;First Time Users:&lt;/strong&gt;&lt;br&gt;
To save time before the meeting, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=90703"&gt;check your system&lt;/a&gt; to make sure it is ready to use Microsoft Office Live Meeting.&lt;br&gt;
&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;br&gt;
Unable to join the meeting? Follow these steps:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>When: Tuesday, Feb 26, 2013 7:30 PM (GMT)</p><p>Where: Virtual</p><p>*<del>*</del>*<del>*</del>*<del>*</del>*<del>*</del>*~*</p><p>Advanced functions give you ability to create functions that act like cmdlets. Learn how to get the most from this powerful part of the PowerShell functionality</p><p><strong>Notes</strong></p><p>Richard Siddaway has invited you to attend an online meeting using Live Meeting.<br><strong><a href="https://www.livemeeting.com/cc/usergroups/join?id=G79DNP&amp;role=attend&amp;pw=9%24t%23%26PK%238">Join the meeting.</a></strong><br><strong>Audio Information</strong><br><strong>Computer Audio</strong><br>
To use computer audio, you need speakers and microphone, or a headset.<br><strong>First Time Users:</strong><br>
To save time before the meeting,<a href="http://go.microsoft.com/fwlink/?LinkId=90703">check your system</a> to make sure it is ready to use Microsoft Office Live Meeting.<br><strong>Troubleshooting</strong><br>
Unable to join the meeting? Follow these steps:</p><ol><li><p>Copy this address and paste it into your web browser:<br><a href="https://www.livemeeting.com/cc/usergroups/join">https://www.livemeeting.com/cc/usergroups/join</a></p></li><li><p>Copy and paste the required information:<br>
Meeting ID: G79DNP<br>
Entry Code: 9$t#&amp;PK#8<br>
Location:<a href="https://www.livemeeting.com/cc/usergroups">https://www.livemeeting.com/cc/usergroups</a></p></li></ol><p>If you still cannot enter the meeting,<a href="http://r.office.microsoft.com/r/rlidLiveMeeting?p1=12&amp;p2=en_US&amp;p3=LMInfo&amp;p4=support">contact support</a></p><p><strong>Notice</strong><br>
Microsoft Office Live Meeting can be used to record meetings. By participating in this meeting, you agree that your communications may be monitored or recorded at any time during the meeting.</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2805/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2805/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2805&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>Filtering</title><link>https://powershell.org/articles/2013-02-18-filtering/</link><guid>https://powershell.org/articles/2013-02-18-filtering/</guid><pubDate>Mon, 18 Feb 2013 19:38:41 +0000</pubDate><description>&lt;p&gt;I&amp;quot;™ve been grading the scripts in the warm up events for the Scripting Games and noticed a lot of people doing this:&lt;/p&gt;
&lt;p&gt;Get-WmiObject -Class Win32_LogicalDisk | where {$_.DriveType -eq 3}&lt;/p&gt;
&lt;p&gt;Ok now it works but there are a couple of things wrong with this approach.&lt;/p&gt;
&lt;p&gt;Firstly, you are ignoring the built in capabilities of the get-wmiobject cmdlet&lt;/p&gt;
&lt;p&gt;PS&amp;gt; Get-Command Get-WmiObject -Syntax&lt;/p&gt;
&lt;p&gt;Get-WmiObject [-Class] [[-Property] ] &lt;strong&gt;[-Filter ]&lt;/strong&gt; [-Amended] [-DirectRead] [-AsJob]&lt;br&gt;
[-Impersonation ] [-Authentication ] [-Locale ]&lt;br&gt;
[-EnableAllPrivileges] [-Authority ] [-Credential
] [-ThrottleLimit ] [-ComputerName&lt;br&gt;
] [-Namespace ] []&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>I"™ve been grading the scripts in the warm up events for the Scripting Games and noticed a lot of people doing this:</p><p>Get-WmiObject -Class Win32_LogicalDisk | where {$_.DriveType -eq 3}</p><p>Ok now it works but there are a couple of things wrong with this approach.</p><p>Firstly, you are ignoring the built in capabilities of the get-wmiobject cmdlet</p><p>PS&gt; Get-Command Get-WmiObject -Syntax</p><p>Get-WmiObject [-Class] [[-Property] ]<strong>[-Filter ]</strong> [-Amended] [-DirectRead] [-AsJob]<br>
[-Impersonation ] [-Authentication ] [-Locale ]<br>
[-EnableAllPrivileges] [-Authority ] [-Credential
] [-ThrottleLimit ] [-ComputerName<br>
] [-Namespace ] []</p><p>Get-WmiObject [[-Class] ] [-Recurse] [-Amended] [-List] [-AsJob] [-Impersonation ]<br>
[-Authentication ] [-Locale ] [-EnableAllPrivileges] [-Authority ] [-Credential</p><p>] [-ThrottleLimit ] [-ComputerName ] [-Namespace ] []</p><p>Get-WmiObject -Query [-Amended] [-DirectRead] [-AsJob] [-Impersonation ] [-Authentication<br>
] [-Locale ] [-EnableAllPrivileges] [-Authority ] [-Credential
]<br>
[-ThrottleLimit ] [-ComputerName ] [-Namespace ] []</p><p>Get-WmiObject [-Amended] [-AsJob] [-Impersonation ] [-Authentication ]<br>
[-Locale ] [-EnableAllPrivileges] [-Authority ] [-Credential
] [-ThrottleLimit ]<br>
[-ComputerName ] [-Namespace ] []</p><p>Get-WmiObject [-Amended] [-AsJob] [-Impersonation ] [-Authentication ]<br>
[-Locale ] [-EnableAllPrivileges] [-Authority ] [-Credential
] [-ThrottleLimit ]<br>
[-ComputerName ] [-Namespace ] []</p><p>Notice the filter parameter in the first parameter set.</p><p>When you run Get-WMIObject in effect you are running a WQL query</p><p>&ldquo;SELECT * FROM Win32_LogicalDisk&rdquo;</p><p>if you move the filter into the query it changes to</p><p>&ldquo;SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3&rdquo;</p><p>This is coded in the cmdlet as</p><p>Get-WmiObject -Class Win32_LogicalDisk -Filter &ldquo;DriveType = 3″</p><p>Why is this better?</p><p>Because you are doing less work against the WMI repository &ldquo;“ therefore more efficient.</p><p>Also if you are running against a remote machine filtering in the WMI query means you bring less data back across the network which makes you whole process more efficient.</p><p>Bottom line &ldquo;“ filter as early as you sensibly can and preferably on the remote machine.</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2804/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2804/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2804&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>"Verified Effective" About Ready to Go Live</title><link>https://powershell.org/articles/2013-02-18-verified-effective-about-ready-to-go-live/</link><guid>https://powershell.org/articles/2013-02-18-verified-effective-about-ready-to-go-live/</guid><pubDate>Mon, 18 Feb 2013 17:01:32 +0000</pubDate><description>&lt;p&gt;Before the verification exam becomes available to the public, I need ONE OR TWO people to be the first through the complete program. This is not a &amp;ldquo;beta;&amp;rdquo; the exam is finalized and you will have to pay for your verification. The first one or two people will be semi-automated as I nail down the final payment integration bits, and then we&amp;rsquo;ll throw it open to the public.&lt;br&gt;
If you&amp;rsquo;re interested, contact me at don at Concentrated Tech.com. First come, first served.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Before the verification exam becomes available to the public, I need ONE OR TWO people to be the first through the complete program. This is not a &ldquo;beta;&rdquo; the exam is finalized and you will have to pay for your verification. The first one or two people will be semi-automated as I nail down the final payment integration bits, and then we&rsquo;ll throw it open to the public.<br>
If you&rsquo;re interested, contact me at don at Concentrated Tech.com. First come, first served.</p>
]]></content:encoded></item><item><title>PhillyPoSH 02/07/2013 meeting summary and presentation materials</title><link>https://powershell.org/articles/2013-02-16-phillyposh-02072013-meeting-summary-and-presentation-materials/</link><guid>https://powershell.org/articles/2013-02-16-phillyposh-02072013-meeting-summary-and-presentation-materials/</guid><pubDate>Sun, 17 Feb 2013 02:04:19 +0000</pubDate><description>&lt;p&gt;&lt;a href="http://jdhitsolutions.com/"&gt;Jeff Hicks&lt;/a&gt; (Microsoft MVP and &lt;a href="http://www.manning.com/search/results?cx=008207406337866288189%3Avej9zumcdec&amp;amp;cof=FORID%3A9&amp;amp;ie=UTF-8&amp;amp;q=Jeffery+Hicks&amp;amp;sa=Search"&gt;Author&lt;/a&gt;) gave a presentation on &amp;ldquo;Getting Started with PowerShell Advanced Functions&amp;rdquo;. You can download the presentation and example scripts &lt;a href="https://powershell.org/wp-content/uploads/2013/02/PhillyPosh_2013-02-07_Presentations.zip"&gt;here&lt;/a&gt; and watch a recording of the presentation below on our &lt;a href="http://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg?feature=watch"&gt;YouTube channel&lt;/a&gt;.&lt;br&gt;
[youtube_sc url=&amp;ldquo;http://www.youtube.com/watch?v=77VbOO14DFE&amp;amp;feature=youtu.be&amp;rdquo;]&lt;br&gt;
You can keep up with Jeff at his &lt;a href="http://jdhitsolutions.com/blog/"&gt;blog&lt;/a&gt;, on &lt;a href="https://twitter.com/jeffhicks"&gt;Twitter, &lt;/a&gt;and on &lt;a href="http://gplus.to/JeffHicks"&gt;Google Plus&lt;/a&gt;&lt;br&gt;
We would also like to thank &lt;a href="http://www.interfacett.com/"&gt;Interfacett&lt;/a&gt; and &lt;a href="https://powershell.org/"&gt;Powershell.org&lt;/a&gt; for providing funding for this meeting!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><a href="http://jdhitsolutions.com/">Jeff Hicks</a> (Microsoft MVP and<a href="http://www.manning.com/search/results?cx=008207406337866288189%3Avej9zumcdec&amp;cof=FORID%3A9&amp;ie=UTF-8&amp;q=Jeffery+Hicks&amp;sa=Search">Author</a>) gave a presentation on &ldquo;Getting Started with PowerShell Advanced Functions&rdquo;. You can download the presentation and example scripts<a href="https://powershell.org/wp-content/uploads/2013/02/PhillyPosh_2013-02-07_Presentations.zip">here</a> and watch a recording of the presentation below on our<a href="http://www.youtube.com/channel/UCAc_ow5FIJtRpvew__9Iqzg?feature=watch">YouTube channel</a>.<br>
[youtube_sc url=&ldquo;http://www.youtube.com/watch?v=77VbOO14DFE&amp;feature=youtu.be&rdquo;]<br>
You can keep up with Jeff at his<a href="http://jdhitsolutions.com/blog/">blog</a>, on<a href="https://twitter.com/jeffhicks">Twitter, </a>and on<a href="http://gplus.to/JeffHicks">Google Plus</a><br>
We would also like to thank<a href="http://www.interfacett.com/">Interfacett</a> and<a href="https://powershell.org/">Powershell.org</a> for providing funding for this meeting!</p>
]]></content:encoded></item><item><title>PowerShell Workflow"“the complete series</title><link>https://powershell.org/articles/2013-02-13-powershell-workflow-the-complete-series/</link><guid>https://powershell.org/articles/2013-02-13-powershell-workflow-the-complete-series/</guid><pubDate>Wed, 13 Feb 2013 19:34:04 +0000</pubDate><description>&lt;p&gt;The series of articles on PowerShell workflows that are appearing on the Scripting Guy blog is now complete.&lt;/p&gt;
&lt;p&gt;The articles in the series that have been published are:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/26/powershell-workflows-the-basics.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/26/powershell-workflows-the-basics.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/02/powershell-workflows-restrictions.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/02/powershell-workflows-restrictions.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/09/powershell-workflows-nesting.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/09/powershell-workflows-nesting.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/16/powershell-workflows-job-engine.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/16/powershell-workflows-job-engine.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/23/powershell-workflows-restarting-the-computer.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/23/powershell-workflows-restarting-the-computer.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/30/powershell-workflows-using-parameters.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/30/powershell-workflows-using-parameters.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx" title="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx" title="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The series is complete for now but as workflow is such a new topic expect more on it in the future.&lt;/p&gt;
&lt;p&gt;Until then Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2803/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2803/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2803&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The series of articles on PowerShell workflows that are appearing on the Scripting Guy blog is now complete.</p><p>The articles in the series that have been published are:</p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/26/powershell-workflows-the-basics.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/26/powershell-workflows-the-basics.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/02/powershell-workflows-restrictions.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/02/powershell-workflows-restrictions.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/09/powershell-workflows-nesting.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/09/powershell-workflows-nesting.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/16/powershell-workflows-job-engine.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/16/powershell-workflows-job-engine.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/23/powershell-workflows-restarting-the-computer.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/23/powershell-workflows-restarting-the-computer.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/30/powershell-workflows-using-parameters.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/30/powershell-workflows-using-parameters.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx" title="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/06/powershell-workflows-design-considerations.aspx</a></p><p><a href="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx" title="http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx">http://blogs.technet.com/b/heyscriptingguy/archive/2013/02/13/powershell-workflows-a-practical-example.aspx</a></p><p>The series is complete for now but as workflow is such a new topic expect more on it in the future.</p><p>Until then Enjoy!</p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2803/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2803/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2803&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>Winter Scripting Camp: The Post Mortem</title><link>https://powershell.org/articles/2013-02-11-winter-scripting-camp-the-post-mortem/</link><guid>https://powershell.org/articles/2013-02-11-winter-scripting-camp-the-post-mortem/</guid><pubDate>Mon, 11 Feb 2013 21:51:59 +0000</pubDate><description>&lt;p&gt;Ok, aftermath time. In Winter Scripting Camp I saw some very cool stuff, but I know folks want to learn from this event too, so I want to call out some stuff that I didn&amp;rsquo;t like so much, and explain why. I&amp;rsquo;m keeping these brief - if you&amp;rsquo;d like a longer explanation, hit me up in the &lt;a href="https://powershell.org/discuss/"&gt;PowerShell Q&amp;amp;A forum&lt;/a&gt;. BTW, none of the discussion below implies anything about the grade I awarded the entry. I considered a much broader range of criteria and opinions in awarding grades.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Ok, aftermath time. In Winter Scripting Camp I saw some very cool stuff, but I know folks want to learn from this event too, so I want to call out some stuff that I didn&rsquo;t like so much, and explain why. I&rsquo;m keeping these brief - if you&rsquo;d like a longer explanation, hit me up in the<a href="/discuss/">PowerShell Q&amp;A forum</a>. BTW, none of the discussion below implies anything about the grade I awarded the entry. I considered a much broader range of criteria and opinions in awarding grades.</p><h2 id="" class="ps-heading"><a class="ps-heading-anchor" href="#" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>My -f Nitpick</p><p>This bugged me a wee bit. I know, it&rsquo;s a nit:</p><p><code>Write-Warning ("{0} not online" -f $computer)</code>I&rsquo;d personally have done:</p><p><code>Write-Warning "$computer not online"</code>Personal preference; the latter is easier to read. I don&rsquo;t like using -f unless I actually need its formatting capability.</p><h2 id="my-preference-is-no-preference" class="ps-heading">My Preference is No Preference<a class="ps-heading-anchor" href="#my-preference-is-no-preference" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Next up, a script with this:</p><p><code>#$script:DebugPreference = "Continue" # debug msgs on $script:DebugPreference =  "SilentlyContinue" # debug msgs off</code>This only bugged me because this was in a script that contained a function; the function implemented [CmdletBinding()]. That means the function would suppress Write-Debug by default, and enable it when run with -Debug. Never a need to mess with those preference variables in an advanced function.</p><h2 id="redundant-code" class="ps-heading">Redundant Code<a class="ps-heading-anchor" href="#redundant-code" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I noticed this:</p><p><code>END{Clear-Variable -Name obj}</code>Nothing wrong with that, but it&rsquo;s redundant. The variable $obj was created inside the function; PowerShell deletes the variable when its enclosing scope is destroyed. So the END block is just unnecessary code and an unnecessary step - forcing the shell to delete something before removing the scope, which would have deleted it anyway.</p><h2 id="no-examples" class="ps-heading">No Examples?<a class="ps-heading-anchor" href="#no-examples" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Another one: The author took a great deal of time to put in detailed usage examples for their command. But didn&rsquo;t do so in comment-based help&hellip; which seems odd, because they&rsquo;d added comment-based help already. That made the examples impossible to see unless you opened the script, which kinda defeats the point :(.</p><h2 id="i-got-your-silentlycontinue-right-here" class="ps-heading">I Got Your SilentlyContinue Right Here&hellip;<a class="ps-heading-anchor" href="#i-got-your-silentlycontinue-right-here" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>This is a huge concern for me, and it<strong>is</strong> something I deducted points for.<strong>Please don&rsquo;t misuse</strong><em>-ErrorAction SilentlyContinue</em><strong>and be very judicious</strong> with<em>$ErrorActionPreference=&lsquo;SilentlyContinue&rsquo;</em>. The former is appropriate when<em>you don&rsquo;t care if there&rsquo;s an error,</em> like deleting a file that doesn&rsquo;t exist. You get an error, but who cares, because mission accomplished, right? Don&rsquo;t just suppress errors. I get really bugged at SilentlyContinue on Get-WmiObject statements, for example. It&rsquo;s bad coding. The latter example<em>will make me fail your script entirely</em> if you just chuck it in at the top of a script. You&rsquo;re suppressing every error the script might generate, and it makes me wonder what you&rsquo;re hiding. Messing with $ErrorActionPreference is appropriate only when you need to suppress/handle a specific error that might be raised by a method or something else that doesn&rsquo;t have an -ErrorAction parameter. I saw some egregious overuse of this, and it&rsquo;s a bad, bad, bad, bad, bad coding practice.<br>
Sadly, some of my fellow judges disagree with me on this and think that<em>-ErrorAction SilentlyContinue</em> is merited. That&rsquo;s fine; that&rsquo;s why we have multiple judges looking at each entry. I say, if you&rsquo;re not going to<em>handle</em> an error, don&rsquo;t<em>suppress</em> it. Otherwise whoeever is running your command will be, like, &ldquo;did anything just happen, or not?&rdquo; Either let the default error messages shine through, or come up with your own alternative.<br>
I&rsquo;m gonna get a class of whiskey. Be right back.</p><h2 id="consistency" class="ps-heading">Consistency!<a class="ps-heading-anchor" href="#consistency" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Ah, that&rsquo;s better. Next up is this:</p><p><code>[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string[]]$ComputerNames</code>Try to stay consistent with PowerShell&rsquo;s own naming. Look at Get-WmiObject. What parameter does it use to accept computer names? -ComputerName. Not -ComputerNames. So your commands should all use -ComputerName, even if they&rsquo;re accepting more than one computer name. Keep your public interface - your parameter and command names - consistent.</p><h2 id="youre-not-an-accumulator" class="ps-heading">You&rsquo;re Not an Accumulator<a class="ps-heading-anchor" href="#youre-not-an-accumulator" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p><code>begin {         $results = @()     } process { $results += # whatever } end {         $results | Format-Table -AutoSize     }</code>Ouch. Don&rsquo;t like to see this. The purpose of the pipeline is to accumulate output - you shouldn&rsquo;t be building internal arrays to do that. And you also shouldn&rsquo;t ever, ever, ever, ever, almost ever use a Format command in your function. When you do that, you&rsquo;re preventing me from piping the output of your command to a CSV, or to XML, or into a GridView, or anyplace else. You&rsquo;ve made your command non-reusable outside of your original scenario, a very poor programming practice. Just use Write-Output to write objects to the pipeline, and let the shell handle it from there.</p><h2 id="args0" class="ps-heading">$Args[0]<a class="ps-heading-anchor" href="#args0" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Look, if you&rsquo;re going to accept parameters,<em>document them</em> in a Param() block. So they have names and I can figure them out. $ComputerName I understand; what does $args[0] contain? I can&rsquo;t glance and tell - I have to follow the logic if your script, which means it isn&rsquo;t self-documenting, which means I&rsquo;m sad.</p><h2 id="write-host" class="ps-heading">Write-Host<a class="ps-heading-anchor" href="#write-host" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>I will not be kind to you if you use Write-Host as a means of producing output from your script, unless your script/command is named &ldquo;Show-XXXXX,&rdquo; indicating its only sad purpose in life is to display information on the screen and never anyplace else.</p><h2 id="dont-overthink" class="ps-heading">Don&rsquo;t OVERTHINK<a class="ps-heading-anchor" href="#dont-overthink" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Too many people started treating this like a certification exam, unfortunately, and we&rsquo;re going to be making some changes to the real Games to address that. A lot of folks just frankly overthought things. In one case, we were really just looking for something like:</p><p><code>Get-WmiObject -ClassName Win32_Volume -ComputerName (Get-Content names.txt) | Select-Object -Property DeviceID,@{n='FreeSpace(GB)';e={$PSItem.FreeSpace / 1GB -as [int]}}</code>(That isn&rsquo;t the exact answer to an event - it&rsquo;s an illustration). In many cases we got multi-line scripts that created a dozen variables, suppressed errors (grr), pinged computers&hellip; sometimes, less is more. Again, I&rsquo;m not saying anyone got down-checked for all the extra work, but guys and gals<em>try not to overthink this.</em> As I said, we&rsquo;re going to implement changes in the way scenarios are created for the real Games, because we want you all using creative approaches and worrying less about ticking off marks in a list. &ldquo;Did I add error handling? Did I ping the computers? What am I missing? What secret thing are they looking for that I forgot?&rdquo; Relax a little!</p><h2 id="up-next" class="ps-heading">Up Next&hellip;<a class="ps-heading-anchor" href="#up-next" aria-label="Link to this section" title="Link to this section"><i class="fas fa-link" aria-hidden="true"/></a></h2><p>Now&hellip; what&rsquo;s coming up for the real Scripting Games? Some changes, based on what we learned during Camp. Stay tuned.</p>
]]></content:encoded></item><item><title>Want to be VERIFIED EFFECTIVE for PowerShell? Here's what to expect.</title><link>https://powershell.org/articles/2013-02-05-want-to-be-verified-effective-for-powershell-heres-what-to-expect/</link><guid>https://powershell.org/articles/2013-02-05-want-to-be-verified-effective-for-powershell-heres-what-to-expect/</guid><pubDate>Tue, 05 Feb 2013 20:24:27 +0000</pubDate><description>&lt;p&gt;We&amp;rsquo;re well into our beta for the VERIFIED EFFECTIVEâ„¢ Windows PowerShell 3.0 Toolmaker exam, and expect the program to go live in March or April of 2013. There&amp;rsquo;s a good bit of information on the &lt;a href="http://donjones.com/verified"&gt;program home page&lt;/a&gt; that you should review if you&amp;rsquo;re interested in getting verified.&lt;/p&gt;
&lt;p&gt;[As a note, once the program goes live, it&amp;rsquo;ll be available to anyone worldwide - although the exam will only be available in English for the foreseeable future; we don&amp;rsquo;t have the resources at this time to offer localized versions]
I should point out first that we&amp;rsquo;re doing this program through my company, rather than directly through PowerShell.org, mainly because of some legalities. My company (Concentrated Tech) has the insurance and other items in place needed to do something like this, and I didn&amp;rsquo;t want PowerShell.org, Inc., to have to pay for those things. That said, a &lt;em&gt;lot&lt;/em&gt; of folks have been involved in vetting and designing the exam scenarios. Another advantage of using Concentrated Tech is that the company is set up to do a lot of the interviewing and statistical analysis needed to make a relevant exam.
The cost is the second thing I&amp;rsquo;ll discuss: at $150/person, I know it&amp;rsquo;s not cheap. But at least two human beings look at each person&amp;rsquo;s work - there&amp;rsquo;s no machine grading - and they gotta get paid. We also need to recoup some of the substantial investment that went into the exam design. Over a 3-year period, it&amp;rsquo;ll hopefully be about break-even. We&amp;rsquo;ll see.
On to the exam itself. There are a variety of &amp;ldquo;forms&amp;rdquo; for the exam, meaning everyone isn&amp;rsquo;t getting the same assignment. That said, the approach for each form is pretty much the same. You&amp;rsquo;ll get 2-3 &amp;ldquo;assignments&amp;rdquo; to complete, all of which involve writing scripts and/or commands. You get a specified amount of time to complete your assignments.
(as an aside, making multiple different exams that all test substantially the same skills is really tough, which is one reason we did a lot of testing and statistical analysis - to ensure the equivalency of each form - as part of the development process).
Some assignments are straightforward: write a script that does this, this, and that. You&amp;rsquo;re given a bunch of criteria and just have to spew out the commands. There&amp;rsquo;s room for creativity - so long as you (a) meet all the criteria and (b) comply with the stated best practices, you pass. &amp;ldquo;Extra&amp;rdquo; stuff doesn&amp;rsquo;t count against you, and the exact approach you use isn&amp;rsquo;t graded - so long as you achieve all of the results and comply with all of the stated criteria.
The &amp;ldquo;main&amp;rdquo; assignment in each form is harder. You&amp;rsquo;re given a shell transcript, and you&amp;rsquo;re asked to look at it and duplicate the tools you see used in it. For example:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We&rsquo;re well into our beta for the VERIFIED EFFECTIVEâ„¢ Windows PowerShell 3.0 Toolmaker exam, and expect the program to go live in March or April of 2013. There&rsquo;s a good bit of information on the<a href="http://donjones.com/verified">program home page</a> that you should review if you&rsquo;re interested in getting verified.</p><p>[As a note, once the program goes live, it&rsquo;ll be available to anyone worldwide - although the exam will only be available in English for the foreseeable future; we don&rsquo;t have the resources at this time to offer localized versions]
I should point out first that we&rsquo;re doing this program through my company, rather than directly through PowerShell.org, mainly because of some legalities. My company (Concentrated Tech) has the insurance and other items in place needed to do something like this, and I didn&rsquo;t want PowerShell.org, Inc., to have to pay for those things. That said, a<em>lot</em> of folks have been involved in vetting and designing the exam scenarios. Another advantage of using Concentrated Tech is that the company is set up to do a lot of the interviewing and statistical analysis needed to make a relevant exam.
The cost is the second thing I&rsquo;ll discuss: at $150/person, I know it&rsquo;s not cheap. But at least two human beings look at each person&rsquo;s work - there&rsquo;s no machine grading - and they gotta get paid. We also need to recoup some of the substantial investment that went into the exam design. Over a 3-year period, it&rsquo;ll hopefully be about break-even. We&rsquo;ll see.
On to the exam itself. There are a variety of &ldquo;forms&rdquo; for the exam, meaning everyone isn&rsquo;t getting the same assignment. That said, the approach for each form is pretty much the same. You&rsquo;ll get 2-3 &ldquo;assignments&rdquo; to complete, all of which involve writing scripts and/or commands. You get a specified amount of time to complete your assignments.
(as an aside, making multiple different exams that all test substantially the same skills is really tough, which is one reason we did a lot of testing and statistical analysis - to ensure the equivalency of each form - as part of the development process).
Some assignments are straightforward: write a script that does this, this, and that. You&rsquo;re given a bunch of criteria and just have to spew out the commands. There&rsquo;s room for creativity - so long as you (a) meet all the criteria and (b) comply with the stated best practices, you pass. &ldquo;Extra&rdquo; stuff doesn&rsquo;t count against you, and the exact approach you use isn&rsquo;t graded - so long as you achieve all of the results and comply with all of the stated criteria.
The &ldquo;main&rdquo; assignment in each form is harder. You&rsquo;re given a shell transcript, and you&rsquo;re asked to look at it and duplicate the tools you see used in it. For example:</p><p><code>PS C:\&gt; 'localhost' | Do-Something -confirm -verbose VERBOSE: Checking for status.txt VERBOSE: Status.txt exists, will append status to it VERBOSE: Pinging localhost VERBOSE: localhost responds Performing action "Do-Something" on "localhost". Continue?</code>That transcript should tell you that the command Do-Something accepts strings from the pipeline, supports the ShouldProcess mechanism, and outputs certain verbose status messages. You typically see each command used in several ways within the transcript, and each way reveals more about how that command works. Your job is to re-create the command, so that it produces the same results as shown in the transcript.<br>
We&rsquo;ve tried to use this approach to make the exam as objective as possible. If we can run the same commands using your code, and get the same output, then you probably pass. We then run a check on the &ldquo;best practices&rdquo; section (which is given to you in your assignment packet) to make sure you didn&rsquo;t deviate.<br>
There&rsquo;s a tiny little bit of unstated stuff. Like, if you hand in awfully-formatted code, you just take a terribly long-winded approach that could have been vastly simplified, you write code that takes 12x longer to run than it could or should&hellip; if you do<em>enough</em> of those wrong things in your assignment, you won&rsquo;t pass. We discussed these &ldquo;soft&rdquo; things a lot.<br>
For example, we didn&rsquo;t want to add a best practice, &ldquo;your code must run as efficiently as possible.&rdquo; That would let us explicitly ding someone who took a too-slow approach&hellip; but that kind of statement also makes people start to obsess and overthink the assignment. We don&rsquo;t care if your code runs 1s longer than our model solution. We care if it runs 10m longer. That&rsquo;s hard to state&hellip; and frankly, if someone has to<em>tell</em> you not to write crappy, slow code&hellip; you shouldn&rsquo;t be &ldquo;certified.&rdquo;<br>
So you<em>can</em> fail on unstated things&hellip; but you&rsquo;d have to be pretty egregious about it. Two humans grading you would have to be in agreement, and in a case like that our internal policy is to get a third judge to agree with the decision.<br>
Hopefully some of you are excited about this program and can&rsquo;t wait to start. Now, for some more logistics - this is stated elsewhere, but just so you&rsquo;re clear:<br>
You get started by paying, and submitting a signed Program License Agreement and a copy of a government-issued photo ID. We do store that, offline, for our records. It isn&rsquo;t in a database anywhere. Once we have those items, we enroll you and you receive an enrollment e-mail.<br>
The e-mail contains basic instructions for logging into our system and obtaining your Assignment Packet. Once you log in, your 24-hour countdown starts. From that point, you have a specified number of hours to download the Packet, read it, construct your script(s), ZIP them, and upload the ZIP file to us. You get one upload - once you do that, your answer is locked and we start grading.<br>
Allow about 5 business days for grading - longer if we&rsquo;re swamped, although if that&rsquo;s the case we&rsquo;ll let you know. After grading, you&rsquo;ll get a pass/fail e-mail. We don&rsquo;t send you commentary on why - the goal of this isn&rsquo;t to make you a better person, it&rsquo;s to see if you&rsquo;ve got the skills or not. If you fail, you can re-take after a 3-month wait (that helps prevent someone from slamming through all of our exam variations in a short period of time and cheating).<br>
I know one thing that will frustrate some folks is that we don&rsquo;t provide any feedback. That&rsquo;s very common in exam situations - Microsoft certification exams don&rsquo;t provide item-by-item feedback, either. So, for folks who<em>want</em> feedback, you can get that. We haven&rsquo;t come up with a full program yet, but you&rsquo;ll be able to purchase time with an expert, and you&rsquo;ll get a scenario similar to (but not exactly like) one of the exam assignments. You can work on your answer for as long as you like, and then sit down in LiveMeeting or Skype or whatever with the expert, who will go over your work with you. If you did a great job, you&rsquo;re still<em>not verified</em> - you have to take the exam for that. But if you&rsquo;re unsure, it&rsquo;s a way to have a small &ldquo;trial run&rdquo; that gives you some feedback on how you did. It can also be a good distance-learning experience, for someone who&rsquo;s so inclined.<br>
Anyway&hellip; there&rsquo;s the VERIFIED EFFECTIVE program in a nutshell.</p>
]]></content:encoded></item><item><title>Scripting Games warm up</title><link>https://powershell.org/articles/2013-02-05-scripting-games-warm-up/</link><guid>https://powershell.org/articles/2013-02-05-scripting-games-warm-up/</guid><pubDate>Tue, 05 Feb 2013 19:47:01 +0000</pubDate><description>&lt;p&gt;As a warm up for this years Scripting Games a two event Winter Scripting Camp has been organised. Details from &lt;a href="https://powershell.org/games/" title="https://powershell.org/games/"&gt;https://powershell.org/games/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2802/"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2802/" alt=""&gt;&lt;/a&gt;&lt;img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;amp;blog=16267735&amp;amp;%23038;post=2802&amp;amp;%23038;subd=richardspowershellblog&amp;amp;%23038;ref=&amp;amp;%23038;feed=1" alt=""&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>As a warm up for this years Scripting Games a two event Winter Scripting Camp has been organised. Details from<a href="https://powershell.org/games/" title="https://powershell.org/games/">https://powershell.org/games/</a></p><p><a href="http://feeds.wordpress.com/1.0/gocomments/richardspowershellblog.wordpress.com/2802/"><img src="http://feeds.wordpress.com/1.0/comments/richardspowershellblog.wordpress.com/2802/" alt=""/><img src="http://stats.wordpress.com/b.gif?host=richardspowershellblog.wordpress.com&amp;blog=16267735&amp;%23038;post=2802&amp;%23038;subd=richardspowershellblog&amp;%23038;ref=&amp;%23038;feed=1" alt=""/>
]]></content:encoded></item><item><title>VERIFIED EFFECTIVE PowerShell "certification" program now ready for beta</title><link>https://powershell.org/articles/2013-02-02-verified-effective-powershell-certification-program-now-ready-for-beta/</link><guid>https://powershell.org/articles/2013-02-02-verified-effective-powershell-certification-program-now-ready-for-beta/</guid><pubDate>Sat, 02 Feb 2013 23:43:15 +0000</pubDate><description>&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; As of 4th February, we&amp;rsquo;re full up for the beta. Check back later this year for the program launch.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m ready to begin a formal beta test of the new VERIFIED EFFECTIVEâ„¢ examination program, which we&amp;rsquo;d previously referred to as &amp;ldquo;PowerShell Verified.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Participation in the beta will be free, and if you pass it &amp;ldquo;counts.&amp;rdquo; If you&amp;rsquo;re interested, please &lt;a href="http://donjones.com/verified/ProgramGuide.pdf"&gt;download the Program Guide&lt;/a&gt; before February 10th, 2013.
You must agree to perform you examination on February 11th or 12th
. Complete the Program License Agreement found in the Guide, and return it, with photo ID, as indicated. Be sure to indicate either Feb 11th or 12th as your desired exam date. Materials will be sent to you via e-mail, and you will have 24 hours to complete the assignment. A qualified candidate should need no more than 4-5 hours.&lt;br&gt;
We&amp;rsquo;ve &lt;a href="http://donjones.com/verified"&gt;posted a complete set of information about the program&lt;/a&gt; in general and the PowerShell exam in particular.&lt;br&gt;
At this time, I can only accept participants who are USA residents (more on that below). International expansion will happen when the program formally launches later this year. &lt;strong&gt;I will only be accepting 2-3 beta participants.&lt;/strong&gt; If you submit your Program License Agreement but don&amp;rsquo;t hear back the same day, then you weren&amp;rsquo;t selected for participation.&lt;br&gt;
The final examination will be $150, and will be a human-graded assignment not a machine-graded exam. A certificate for passing scores will be delivered electronically, and you may order a physical certificate for a nominal fee.&lt;br&gt;
The first exam will be &lt;strong&gt;PowerShell 3.0 Toolmaking&lt;/strong&gt;. You should be able to pass if you know how to write advanced functions, including dealing with pipeline input, ShouldProcess support, and parameter attributes and validation. You will also need to know how to create custom formatting views and type extensions, and how to create script and manifest modules. You will need to be familiar with Windows PowerShell remoting and remoting configuration, and know how to create custom remoting endpoints (session configurations) having a specified configuration. You also need to know how to write proxy functions. You should know how to connect to SQL Server databases from within PowerShell, and how to issue queries to retrieve and manipulate database data. Note that not all of these topics may be included on every examination, but you should be prepared to perform all of them.&lt;br&gt;
I look forward to hearing from you!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><strong>NOTE:</strong> As of 4th February, we&rsquo;re full up for the beta. Check back later this year for the program launch.</p><p>I&rsquo;m ready to begin a formal beta test of the new VERIFIED EFFECTIVEâ„¢ examination program, which we&rsquo;d previously referred to as &ldquo;PowerShell Verified.&rdquo;</p><p>Participation in the beta will be free, and if you pass it &ldquo;counts.&rdquo; If you&rsquo;re interested, please<a href="http://donjones.com/verified/ProgramGuide.pdf">download the Program Guide</a> before February 10th, 2013.
You must agree to perform you examination on February 11th or 12th
. Complete the Program License Agreement found in the Guide, and return it, with photo ID, as indicated. Be sure to indicate either Feb 11th or 12th as your desired exam date. Materials will be sent to you via e-mail, and you will have 24 hours to complete the assignment. A qualified candidate should need no more than 4-5 hours.<br>
We&rsquo;ve<a href="http://donjones.com/verified">posted a complete set of information about the program</a> in general and the PowerShell exam in particular.<br>
At this time, I can only accept participants who are USA residents (more on that below). International expansion will happen when the program formally launches later this year.<strong>I will only be accepting 2-3 beta participants.</strong> If you submit your Program License Agreement but don&rsquo;t hear back the same day, then you weren&rsquo;t selected for participation.<br>
The final examination will be $150, and will be a human-graded assignment not a machine-graded exam. A certificate for passing scores will be delivered electronically, and you may order a physical certificate for a nominal fee.<br>
The first exam will be<strong>PowerShell 3.0 Toolmaking</strong>. You should be able to pass if you know how to write advanced functions, including dealing with pipeline input, ShouldProcess support, and parameter attributes and validation. You will also need to know how to create custom formatting views and type extensions, and how to create script and manifest modules. You will need to be familiar with Windows PowerShell remoting and remoting configuration, and know how to create custom remoting endpoints (session configurations) having a specified configuration. You also need to know how to write proxy functions. You should know how to connect to SQL Server databases from within PowerShell, and how to issue queries to retrieve and manipulate database data. Note that not all of these topics may be included on every examination, but you should be prepared to perform all of them.<br>
I look forward to hearing from you!</p>
]]></content:encoded></item><item><title>Winter Scripting Camp Opened to the Public</title><link>https://powershell.org/articles/2013-02-01-winter-scripting-camp-opened-to-the-public/</link><guid>https://powershell.org/articles/2013-02-01-winter-scripting-camp-opened-to-the-public/</guid><pubDate>Fri, 01 Feb 2013 22:45:39 +0000</pubDate><description>&lt;p&gt;&lt;em&gt;Everything&amp;rsquo;s been going pretty smoothly, so we&amp;rsquo;ve decided to open Winter Scripting Camp to everyone! Read everything below carefully for the best camping experience!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Scripting Camp is a precursor to the Scripting Games, which will kick off in late April. During Camp, you&amp;rsquo;ll have the opportunity to participate in two events. We aren&amp;rsquo;t offering any prizes, but we will announce winners in the PowerShell.org blog, on Twitter, and so on. Camp is really a way for us to kick the tires on our new software platform.&lt;br&gt;
If you want to participate, here&amp;rsquo;s how:&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p><em>Everything&rsquo;s been going pretty smoothly, so we&rsquo;ve decided to open Winter Scripting Camp to everyone! Read everything below carefully for the best camping experience!</em></p><p>Scripting Camp is a precursor to the Scripting Games, which will kick off in late April. During Camp, you&rsquo;ll have the opportunity to participate in two events. We aren&rsquo;t offering any prizes, but we will announce winners in the PowerShell.org blog, on Twitter, and so on. Camp is really a way for us to kick the tires on our new software platform.<br>
If you want to participate, here&rsquo;s how:</p><ul><li>Start by visiting the Games home page. There, you&rsquo;ll find our competitor&rsquo;s guide, which includes best practices and scoring information. You&rsquo;ll also find instructions for providing feedback. Be sure to check back there frequently, as it&rsquo;s also where we&rsquo;ll be posting news and updates.</li><li>You will need a Microsoft Live account in order to sign-in and participate.</li><li>Visit<a href="http://thescriptinggames.com">TheScriptingGames.com</a> to join in.</li></ul><p>The first event runs Feb 1 to Feb 5; the second Feb 8 to Feb 12. You get one submission per entry, so make it count, and make sure it&rsquo;s in on time.<br>
The new platform isn&rsquo;t entirely feature-complete, but you should be able to get in and see your event, along with your scores from our judges. For Camp, we aren&rsquo;t committing to doing multiple scores per entry - again, this is mainly about testing the software.<br>
We are definitely interested in your feedback. For example, the schedule reflects that of the actual Games. Unlike prior years, we will be having non-overlapping events. You&rsquo;ll have about five days to review the event details and submit an entry - better reflecting the time pressures of a production environment. There will be a discussion forum on PowerShell.org for your feedback - please let us know what you think!</p>
]]></content:encoded></item></channel></rss>