PowerShell Productivity Hacks: How I use Get-Command
If you've been using PowerShell for very long at all, then you should already be familiar with
Get-Command
and Get-Help.
While I like to say that Get-Command
is for finding commands and Get-Help
is for learning how to
use those commands once you've found them, there is overlap between these two commands depending on
how you use them.
I believe in following the best practice of not using aliases or positional parameters in any code that I save or share with others, but in this blog article, I'm going to show how things work in the real world. I will provide the full cmdlet and parameter names and then show what I really type since the code is not shared or saved at that point in time.
Who really wants to read pages and pages of help information for a command when much of it is
irrelevant to what you're trying to accomplish? Once I've found a PowerShell command to accomplish
the task at hand, I use Get-Command
with the Syntax
parameter to quickly determine how to use
it.
1Get-Command -Name Get-NetAdapter -Syntax
2gcm Get-NetAdapter -Syntax
All of the syntax that's returned means something. Square brackets means optional unless it's two square brackets together and that means it accepts more than one value.
I can see that Get-NetAdapter has three parameter sets.
In the first parameter set, I can tell that the Name
parameter isn't mandatory because the
parameter and the type of value it accepts are both completely enclosed in square brackets.
Within those, I can tell that the Name
parameter is positional because it's surrounded by its own
set of square brackets.
When the Name
parameter is used positionally, it must be in the first position since it's listed
first.
The Name
parameter accepts a datatype of string because that's what follows the name of the
parameter.
Also, it accepts an array of strings because two square brackets follow the datatype for that particular parameter.
Notice that switch parameters such as IncludeHidden
don't have a datatype after them.
If a switch parameter is specified, it's on or true and if it's not specified, it's off or false.
Depending on what's being done, a switch parameter such as Confirm
might be on by default. To turn
it off, you can specify -Confirm:$false
without the quotes. Also, to use a switch parameter in a
hash table when splatting, set the value using the Boolean $true or $false. Example: Confirm = $false
.
If for some reason, I need to know more about a particular parameter, I'll view the help for that particular parameter instead of all of the full help for the entire command.
1help Get-NetAdapter -Parameter Name
µ