Image Manipulation in PowerShell

The other week, I showed a Get-ProgID function that I used to help someone at Microsoft Research find a good object to talk to images.  A few comments jumped to one of the possible solutions, which is to use the .NET Drawing assembly (which I have to load first).  I wanted to be reasonably sure… Read more

Get closure with GetNewClosure

Have you ever created scriptblocks on the fly, say in a foreach loop, and they totally mess up because they all have the same value? This is something sort of advanced, and typically used when you’re proxying an object. The most basic example would be, taken from ( function add([int]$x) { return { param([int]$y) return… Read more


Everyone needs to get good with Advanced Functions – this is the easiest path to the best semantics for everyone.  In previous posts we’ve shown how you can add a few simple attributes and get a TON of stuff for free.  There is a LOT more to advanced functions.  You can go VERY VERY far… Read more


.cmdletname { font-size:large } .cmdletsynopsis { font-size:medium } .cmdletdescription { font-size:medium } .cmdletparameters { font-size:medium } th { font-size: medium; font-style: italic } table { border: 1 } When I write a PowerShell function, I try to ensure that it follows the PowerShell standard verbs. These verbs actually exist as static properties in a few… Read more

A Module to Create Modules and Advanced Functions

[1/3/09 Update – the original link to the attachment containing this code was broken but is now fixed.  Sorry. jps] It is hard to overstate how important Modules and Advanced Functions are.   If you are a PowerShell user – you need to take the time to learn these new mechanisms and use them as your first choice… Read more


On my personal blog (Media And Microcode), I’ve been posting a series called "Scripting the Web", which introduced a function called Get-MarkupTag. Get-MarkupTag is a very handy little function that coerces individual tag elements of a web page into HTML, so you can scrape data from a webpage. I’ve updated Get-MarkupTag a tiny bit for… Read more

Merry Christmas From PowerShell: The CodeDownloader Module

Twas the night before Christmas, and all through the net PowerShell lovers were wondering exactly what they might get Their readers were ready, their minds were aware That more joy of CTP3 would soon be there A cmdlet, a function?  What has the PowerShell team done? How about a whole module, to share scripts with… Read more


If you’re like me, you’ve got a browser favorites folder that is full of wonderful PowerShell code snippets. Ideally, it would be great to have a way to bring those favorite snippets into PowerShell so that my favorites folder becomes a code library. Doing this presents several challenges. The first (and easiest to solve) is… Read more

PowerShell v2 Pipelining in 73 (make that 53) Characters

I started using Twitter and saw a request from Thomas Lee for help about pipelining in CTP3.  The thing about Twitter is that the messages have to be tiny so I wasn’t sure I could answer using it.  It turns out I can solve this problem AND give a usage example in 73 characters.  Here… Read more


.CmdletName { font-size:large } .CmdletSynopsis { font-size:medium } .CmdletDescription { font-size:medium } .CmdletParameters { font-size:medium } th { font-size: medium; font-style: italic } table { border: 1 } On the PowerShell team, we’re big believers in the Virtuous Cycle. As you learn PowerShell more and more, things should get easier and easier to do. Inline… Read more