I've got a lot of time for Jeffrey Snover. Last year at TechEd 2012 I sat in on his Q&A. He speaks with a lot of common sense; his blog On Heroes highlights this sort of sensibility.

In the broadcast, Jeffrey explained the principles he had in mind when designing PowerShell. The naming of cmdlets was standardized to verb-noun, and therefore all cmdlets have a regular, self describing naming convention. There are a list of permitted verb, so that cmdlets are schema-ised (type get-verb to list of permitted verbs). Jeffrey explained that he didn't want to have to memorize all the cmdlets, and so aliases were born. He also explained about the Get-Help cmdlet, which I'm going to delve into here.

Entering get-help in a PowerShell lists the help topics and how to use the Get-Help cmdlet.

2013-09-04-10_27_11-redphoenix_png

2013-09-04-10_28_27-pre2sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-10_29_52-pre2sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-10_44_06-pre2sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-11_48_44-pre1sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

What I like about the examples is that they've worked really hard on allowing you to explore and expand your own knowledge. One example shows us that some features have help articles that begin with “about_", such as “about_signing” which you will need to know about if you want to run your own modules or scripts on a machine. But if you don't know what topics have “about_” articles, how can you know what they are? The example show us that f you enter “get-help about _*” then you get the whole list of topics that have “about_” articles.

2013-09-04-15_44_13-pre1sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-15_50_59-pre1sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-11_57_47-get-help-help_png

2013-09-04-12_25_28-pre1sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

2013-09-04-12_26_19-get-help-help_png

2013-09-04-12_27_28-pre1sql01-prod-infra-int-remote-desktop-connection-manager-v2_png

There's a whole heap of features for PowerShell beyond the built in cmdlets or scripts that you can write, and this is just a small subset of what you can do. I highly recommend watching the PowerShell video.