Advanced Windows PowerShell Scripting Video Training

Advanced Windows PowerShell Scripting Video Training
Advanced Windows PowerShell Scripting Video Training

Thursday, June 5, 2014

How to list all PowerShell Commands with a ComputerName Parameter

Well, today was a fun one in class.  I completely forgot my own code to enumerate every command that has a ComputerName parameter in it.  It is no secrete that I use this blog for my own repository, so here is the code.


Get-Command | Where {$_.Parameters.Keys -eq "Computername"}

First I execute the cmdlet Get-Command.  Remember, the number of commands that are returned will vary depending on what you have installed on your system.  Each command is an object.  Take a look at this example.

PS C:\> $C = Get-Command -Name Invoke-Command


PS C:\> $C | GM



   TypeName: System.Management.Automation.CmdletInfo


Name                MemberType     Definition                                 

----                ----------     ----------                                 

Equals              Method         bool Equals(System.Object obj)             

GetHashCode         Method         int GetHashCode()                          

GetType             Method         type GetType()                             

ResolveParameter    Method         System.Management.Automation.ParameterMet...

ToString            Method         string ToString()                          

CommandType         Property       System.Management.Automation.CommandTypes...

DefaultParameterSet Property       string DefaultParameterSet {get;}          

Definition          Property       string Definition {get;}                   

HelpFile            Property       string HelpFile {get;}                     

ImplementingType    Property       type ImplementingType {get;}               

Module              Property       psmoduleinfo Module {get;}                 

ModuleName          Property       string ModuleName {get;}                   

Name                Property       string Name {get;}                         

Noun                Property       string Noun {get;}                         

Options             Property       System.Management.Automation.ScopedItemOp...

OutputType          Property       System.Collections.ObjectModel.ReadOnlyCo...

Parameters          Property       System.Collections.Generic.Dictionary[str...

ParameterSets       Property       System.Collections.ObjectModel.ReadOnlyCo...

PSSnapIn            Property       System.Management.Automation.PSSnapInInfo...

RemotingCapability  Property       System.Management.Automation.RemotingCapa...

Verb                Property       string Verb {get;}                         

Visibility          Property       System.Management.Automation.SessionState...

DLL                 ScriptProperty System.Object DLL {get=$this.Implementing...

HelpUri             ScriptProperty System.Object HelpUri {get=$oldProgressPr...



Notice that there is a Parameters property.  This property is an object with a Keys parameter.  It is in this parameter that you will find a list of all parameter names for this command.


No comments: