Ok… I was playing. I’ll admit it.

When you do GET-HELP on some cmdlets, especially ones with a LARGE abundance of available parameters, they might appear a little daunting.

I used to do a little trick by copying the output under “SYNTAX” on the GET-HELP. I would then paste it into my favorite Word processor (Microsoft Word 2010 naturally) and do two quick Search/Replace operations to pull the lines together and then split based upon the display of the brackets “[]” in the display.

That little trick would give me a nice viewable and easy to understand list of the parameters available.

I am now more comfortable with sticking my fingers under the hood (and not getting burned or snipped by spinning Radiator fans) with Powershell and decided there HAD to (I mean with a big giant Heaping CAPITAL H) HAD TO be a Powershell way.

I played with the properties exposed from GET-HELP. I made the incorrect presumption the output was string. Then I forgot Rule 1 in Powershell.

“All output is an Object”

Turned out the Object in question had some interesting properties available, namely one called “SYNTAX”. On a whim, I wondered if the Syntax NoteProperty was the “How to use Powershell Syntax” from GET-HELP. So I popped it open



“Jumpin’ June Bugs!” I screamed out. It was! So again another “GET-MEMBER” to see what this might yield.



“SyntaxItem” now…. but it was a NoteProperty. I wanted to see just what it would expose. So a quick “SELECT-OBJECT” out of my sleeve later

(GET-HELP GET-QADUSER).Syntax | SELECT-OBJECT –ExpandProperty SyntaxItem


“AHA! There’s the tricky fellow hiding inside!” So another piece to open up with SELECT-OBJECT…

(GET-HELP GET-QADUSER).Syntax | SELECT-OBJECT –ExpandProperty SyntaxItem | SELECT-OBJECT –ExpandProperty parameter


WHOOOOOOSH!!! The screen filled with the familiar “Detailed” data from help. But again, I learned … run a GET-MEMBER to see what the object is exposing….

(GET-HELP GET-QADUSER).Syntax | SELECT-OBJECT –ExpandProperty SyntaxItem | SELECT-OBJECT –ExpandProperty parameter | GET-MEMBER


I took a shot that “Name” might be the parameter name, so yet one more SELECT-OBJECT and the fingers crossed…

(GET-HELP GET-QADUSER).Syntax | SELECT-OBJECT –ExpandProperty SyntaxItem | SELECT-OBJECT –ExpandProperty parameter | SELECT-OBJECT name


JACKPOT! I had it! An easier way to view the names! Now to make this into something useful! A regular script to pull the data out. The only parameter I was really supplying would be the results of a GET-HELP on any Cmdlet I had.

——– Begin Script ——–


($HelpData).Syntax | SELECT-OBJECT –ExpandProperty SyntaxItem | SELECT-OBJECT –ExpandProperty parameter | SELECT-OBJECT name

——- EndScript ——-

So most of the time I’m ok reading with a GET-HELP, but now for those cmdlets with more parameters than I can imagine, I can at least get them out in a nice clean list to see what I can work with. Now to find out all I have to do is run my script like so


To get all the parameters in a nice list from GET-CHILDITEM. I’m thinking this should make working with the WPF stuff a little easier. Now those, THOSE have some parameters Smile

Remember, the Power of Shell is in YOU

The Energized Tech