Episode 38 – PoshCode and PowerShellPlus

A Podcast about Windows PowerShell.

Listen:

In This Episode

Today on the PowerScripting Podcast we have a special roundtable with guests Joel Bennett and Mark Schill. We also have the usual cornucopia of of news, tips, and resources. We'll also be announcing the winner of our /n Software contest from show 36.

News

This segment is brought to you by iTripoli!
"Admin Script Editor (which recently received Windows IT Pro's top award) provides a true integrated scripting environment for PowerShell.  The guys at iTripoli haven't done a great job getting the word out about Admin Script Editor so to make up for it they are offering a 50% competitive discount.  Go to adminscripteditor.com to find out if you qualify."

Community Roundtable

This segment is brought to you by Quest.
Do you have what it takes to be the ultimate script warrior? Find out with Quest’s PowerPack Challenge ’08.

Quest Software is sponsoring a PowerShell Scripting contest where you can test your skills and get paid. Just create some cool PowerShell scripts using Quest’s PowerGUI and then post them to our site. You’ll get a score and our celebrity judges will weigh in as well.

Do you have the muscle to bring home the prize? Check out the details here.

[This segment mostly revolves around a discussion of PoshCode.org, the script repository for PowerShell which aims to match CPAN or PEAR in scope. After an introduction to PoshCode and an update on the site activity, we launch into a discussion of the future of the tool.]

PoshCode Requirements List

The "use" requirements

  1. Host snippets of code
  2. Host scripts with multiple functions (including a way to search on verb/noun which will find all the functions in a script)
  3. Host script modules -- which may contain multiple files (need ui for multiple files, and download for "all at once")
  4. Easy in, easy out. (low barrier to entry to contribute, multiple ways to download, view, browse, sort, filter)
  5. Compiled Modules would require source code to be uploaded and PoshCode online would compile
    • I don't think we want to get into compiling things on the server ... let them compile them themselves (we'd have to require *proj files after all) (Joel)
    • I'm not actually sure we want to do this at all, it's a deep overlap with every other source control service ...
    • This may be v2 stuff (hal)
  6. Users would be able to select from a list of approved licenses to be applied to their scripts.
    • License information would be prepended into script upon download
    • licenses:
      • CC-By (Attribution)
      • CC-PD (Public Domain)
      • GPL (sucks [says Hal])
      • MS-PL
  7. Repository would have the following fields: Description, Usage, PSVersion,  and Version History
    • Fields would be inserted as comments into the scripts when retrieved.
    • Dependency on other scripts would be controlled by a link to the other script(s).
    • Tags would be used to signify requirements on external dependencies. ex. "VMWare ESX 3.5", "AD 2003", etc.
    • Well we do need a version field for specifing PS version.
      • We should ask that users be explicit about versions by using the #requires -version n.n header in their scripts/modules. (oisin)
    • Comments
  8. Published WCF interface for external use.
  9. Repository would designed so that users can host their own repositories.
  10. RSS fallback

Resources

  • Installing DotNetNuke with PowerShell - "I started building a series of PowerShell scripts for simplifying the process. Although there are installers available for DotNetNuke, they are often out of date and are fairly rigid in how they perform the install. Using PowerShell provides a lot of advantages over a traditional installation program. I have complete control over the installation in an interactive environment and can change any one of dozens of parameters that control the installation."
  • PowerShell Team Blog : V2 Interview: Universal Code Execution Model - "At TechEd, I did an interview with Kevin Remde where I discussed the V2 Universal Code Execution model in detail. You can see it at: Universal Code Execution Model (UCEM)—a vision of how PowerShell scripts can run anywhere, anytime in just the right semantics."
  • Dmitry posted about a SQL Reporting Services PowerPack for PowerGui

Tips

Contest

Winners for the /n software Netcmdlets contest are:

  1. Steve Hiner - Wrote a wrapper for Send-Email script to send email using Gmail's SMTP server
  2. Mark Schill - Sent in two entries, the one we've chosen to highlight is his Twitter IM client bot thingy. It uses Send-IM and Get-Http
  3. Quintus - A script to download an ESPN podcast using the Get-Rss cmdlet

We will be posting the scripts over the next week, so watch the site for those.

Gotcha

  • Downgrading from PS v2 to v1 causes the snapins installed from v2 to quit functioning--even if they are compatible with v1.  A reinstall of the snapin will fix.

We would like to thank Joel and Mark for coming on the show. We’d also like to thank Ye11owbeard, JPayleck, and BrandonF for helping us test the UStream channel.

Don’t forget to follow us on twitter (halr9000, jonwalz), UStream, and Facebook!

About the Author

Jonathan Walz

Since March 2007, Jonathan Walz has been the co-host and technical brains for the PowerScripting Podcast. Conceived as a radio show for the PowerShell community, the podcast is the longest-lived PowerShell show in existence, and has featured dozens of weekly guests.