The Admin Development Model and Send-Snippet

One of the things that motivated us to develop PowerShell was the belief that we (Microsoft) had been doing a poor job supporting the Admin Development Model.  All the effort seemed to have gone into treating Admins as GUI-only users or as though they were developers that couldn’t handle the complexity of parenthesis.  I never quite understood… Read more

Sad State of Blogging Software

The state of blogging software is pretty sad.  I must be a harder problem than I can imagine (of course there are other explainations but I’ll be gracious and go with that one for now.) I started a entry, got distracted and posted another blog entry.  The next day, I came to my computer and noticed that I… Read more

DIY: Ternary operator

<Changed DYI => DIY.  jps>   At Microsoft, “to ship is to choose”.  One of the things we were very disappointed in not being able to ship in V1.0 is a ternary operator. Here is a description of a ternary operator from Wikipedia: Many programming languages that use C-like syntax feature a ternary operator, ?:; unqualified, “ternary… Read more

Use Copy-Property to Make it Easier to Write, Read,and Review Scripts

<Updated script on 1/1/2007 to reflect fixes suggested by James Manning>  Dennis Verwiej is doing some great PowerShell work over at his blog Just PowerShell It at .   Recently he posted a blog entry Import Citrix Published Application in which he Imports a CSV file (previously exported) and then calls a few APIs to recreate the published application. … Read more

Documenting TRAP and THROW

We pride ourselves about being a bit overboard when it comes to Error handling.  That is why our sparse (non-existing?) documentation of THROW and TRAP handling is both ironic and sad.  10,000 apologizes for that, we’ll fix it in the next release.  In the mean time, it’s Don Jones amd Jeffery Hicks to the rescue.  Don and… Read more

Mandelbrot One-liner

WaiKin Wong sent me a Mandelbrot one-liner: $i=$j=$r=$x=$y=[float]-16; while(($y++) -lt 15) {for($x=0; ($x++) -lt 84; write-host (” .:-;!/>`)|&IH%*#”[$k -band 15]) -nonewline){$i=$k=$r=[float]0;do{$j=$r*$r-$i*$i-2+$x/25;$i=2*$r*$i+$y/10;$r=$j} while (($j*$j+$i*$i) -lt 11 -band ($k++) -lt 111)}” “} This produces the following results:   :::::::::::::————————————————::::::::::::::::::::::::::::::::——————————————————–::::::::::::::::::::::::———————————-;;;;;;;;;;;——————-::::::::::::::::::—————————–;;;;;;;;;;;;;;;;;;;;;;;;—————:::::::::::::—————————;;;;;;;;;;;;;!!!/-%//!!!;;;;;;;;—————::::::::::————————;;;;;;;;;;;;;!!!!//>)I#&H /!!!;;;;;;;;————–::::::::——————–;;;;;;;;;;;;;!!!!!!//>)|&:# &)>//!!!!;;;;;;;————–::::::—————-;;;;;;;;;;;;;!!!!!!////>>)&-    /-&>>///!!!!;;;;;————–:::::————;;;;;;;;;;;;!!!!!!!//>)|H))|&&H      %I||)>>>>#/!!;;;;;————-::::——–;;;;;;;;;;!!!!!!!!!!///>>|%-   &             .H%I#H >!!;;;;;————-:::—–;;;;;;;;;!!!!///////////>>)&:%-                      H)>/!!;;;;;————-::-;;;;;;;;;;!!!!/>&&)>>))))>>))|&*.                        *&I>/!!;;;;————–:;;;;;;;;!!!!!//>>|I.-!H#;% I&&I>                           #|>/!!;;;;;————–;;;;;!!!!!///>>)|H%-;                                       I//!!;;;;;————–!!!!/////>>>)|%*:##           #                            |>/!!!;;;;;;————-                                                        .I|>//!!!;;;;;;————-!!!!/////>>>)|%*:##           #                            |>/!!!;;;;;;————-;;;;;!!!!!///>>)|H%-;                                       I//!!;;;;;————–;;;;;;;;!!!!!//>>|I.-!H#;%… Read more

Editing your Profile file

$hay has a new scripting blog at .  His first blog entry Restart your engine – The PowerShell Way, talks about how he frequently edits his PowerShell profile file and then restarts his session.  In his directions he says: 2: type: Notepad $profile to open your profile file I looked at this and thought about… Read more

PowerShell Essentials Package

A number of people have asked me about PowerShell IDEs and about how to get started with PowerShell.  Here is something to consider – Sapien is offering a special price on a package of components focused on PowerShell.  The package includes Tools (PrimalScript Professional), Snippets (reusable PowerShell code segments), and Learning (Don Jones’ Windows PowerShell: TFM… Read more

Resolve to blog your automation

In response to my entry Philosophy of Automation, Tim Long blogged a response where he advanced the idea that people should make a New Year’s Resolution to start a blog (if you have already).  That is a great idea.  I would follow on and further encourage you to set up a system to remind yourself… Read more


In my previous blog about the Philosophy of Automation, I encouraged everyone to share their automation even when it was small.  Here I’ll follow that advice. I find myself doing quite a bit of blogging and commenting on other people’s blogs.  I am often struck by the sorry state of blogging software.  I could go on… Read more